This module has both a real time clock that's optionally backed up by a coin cell battery (CR2032, included) and also a 32K EEPROM (memory that retains when power is off), all accessible using I2C.
It's internal clock is temperature compensated and the manufacturer claims time accuracy of 2 parts per million (something like 1 minute per year) if you keep it in the range of 0 to 40 degrees C. There are numerous tutorials and Arduino libraries available to interace to this chip, a quick search for "DS3231 AT24C32 library" will pull a bunch up.
Great for that 3D printed alarm clock you always wanted to build! The real time clock reports hours, minutes, seconds, day, month and year. It is good up to the year 2100 and it knows how to account for leap years, etc. This greatly simplifies your code.