Sample DS3231 Set Time Error

When I try to compile this sample program I get the following error.
I have spent hours trying to fix it with no hope at all.
This is from the Arduino samples file. I need HELP ?

’RTC’ was not declared in this scope

#include <Wire.h>
#include <Time.h>
#include <DS1307RTC.h>

const char *monthName[12] = {
“Jan”, “Feb”, “Mar”, “Apr”, “May”, “Jun”,
“Jul”, “Aug”, “Sep”, “Oct”, “Nov”, “Dec”

tmElements_t tm;

void setup() {
bool parse=false;
bool config=false;

// get the date and time the compiler was run
if (getDate(DATE) && getTime(TIME)) {
parse = true;
// and configure the RTC with this info
if (RTC.write™) {
config = true;

while (!Serial) ; // wait for Arduino Serial Monitor
if (parse && config) {
Serial.print(“DS1307 configured Time=”);
Serial.print(", Date=");
} else if (parse) {
Serial.println(“DS1307 Communication Error :-{”);
Serial.println(“Please check your circuitry”);
} else {
Serial.print(“Could not parse info from the compiler, Time=”");
Serial.print("", Date="");

void loop() {

bool getTime(const char *str)
int Hour, Min, Sec;

if (sscanf(str, “%d:%d:%d”, &Hour, &Min, &Sec) != 3) return false;
tm.Hour = Hour;
tm.Minute = Min;
tm.Second = Sec;
return true;

bool getDate(const char *str)
char Month[12];
int Day, Year;
uint8_t monthIndex;

if (sscanf(str, “%s %d %d”, Month, &Day, &Year) != 3) return false;
for (monthIndex = 0; monthIndex < 12; monthIndex++) {
if (strcmp(Month, monthName[monthIndex]) == 0) break;
if (monthIndex >= 12) return false;
tm.Day = Day;
tm.Month = monthIndex + 1;
tm.Year = CalendarYrToTm(Year);
return true;

Neither the compiler nor I see where the RTC object is declared.

Installing the DS1307RTC.h library from the Arduino IDE, the example compiles for me. Are you sure you have the right library? I imagine there are several.

Hello gfvalvo !
All I can say is "WOW" that was quick and thank you so much for your help.
I just did an "Update" to the library and now it complies past that error. :slight_smile:

BUT now I have another error. Typical of my luck even though you did not have a problem at all.

Error below -- on line 12 --why does this happen to me, most of the time when I use other's code ??

'tmElements_t' does not name a type

snip -----------------------------------------
const char *monthName[12] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"

tmElements_t tm;

void setup() {
bool parse=false;
bool config=false;

end snip ------------------

Use the library manager of the IDE to find and install a library called Time by Michael Margolis v1.6.0

Documentation for this library is here

That library defines the tmElements_t which is a structure

typedef struct  { 
  uint8_t Second; 
  uint8_t Minute; 
  uint8_t Hour; 
  uint8_t Wday;   // day of week, sunday is day 1
  uint8_t Day;
  uint8_t Month; 
  uint8_t Year;   // offset from 1970; 
} 	tmElements_t, TimeElements, *tmElementsPtr_t;