How should I use ds3231 rtc with Arduino to wake it up at a certain time on a certain date so that my power consumption is low
You can program the DS3231 to pull INT low at a specified time. Connect that to any interrupt on the Arduino and put it to sleep. It will wake up at the programmed time.
You can use a low cost PCF8563 RTC module and some other components to reduce a projects battery consumption to less than 0.001uA, its controlled via I2C, here is a prototype;
More details here;