Básicamente consiste de una clase que sirve para leer los datos del RTC, guardar un nuevo valor y hacer read y write de 1 byte en la EEPROM.
Integra opciones para desactivar el SET del RTC y toda la funcionalidad de la EEPROM si se desea ahorrar espacio de programa.
https://bitbucket.org/naguissa/arduino-rtclib/overview
Un ejemplo de uso sería:
#include
#include
RTCLib rtc;
unsigned int pos;
void setup() {
 Serial.begin(9600);
 Serial.println("Serial OK");
//Â Max position: 32767
 for(pos = 0; pos < 1000; pos++) {
   rtc.eeprom_write(pos, (unsigned char) pos % 256);
 }
// Only used once, then disabled
//Â rtc.set(0, 8, 17, 1, 5, 4, 15);
 // RTCLib::set(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year)
 pos = 0;
}
void loop() {
 rtc.refresh();
 Serial.println();
 Serial.print("RTC DateTime: ");
 Serial.print(rtc.year());
 Serial.print('/');
 Serial.print(rtc.month());
 Serial.print('/');
 Serial.print(rtc.day());
 Serial.print(' ');
 Serial.print(rtc.hour());
 Serial.print(':');
 Serial.print(rtc.minute());
 Serial.print(':');
 Serial.print(rtc.second());
 Serial.print(" DOW: ");
 Serial.print(rtc.dayOfWeek());
 Serial.print(" ---- ");
 Serial.print(pos);
 Serial.print(": ");
 Serial.print(rtc.eeprom_read(pos));
 Serial.println();
 pos++;
 pos %= 1000;
 delay(99);
}