Question

I have a small Google Apps Script that processes a date column in a spreadsheet and generates entries in a Calendar (birthdays).

Work is fine, but when adding reminders to the (recently-created) CalendarEvent, an error is thrown :

Service error: CalendarApp: Mismatch: etags = ["GUQKRgBAfip7JGA6WhJb"], version = [63489901413]

I've tried to perform 1 second sleep after creating event (wait for changes to be done in calendar), but no luck on this...

BTW, events are created succesfully, only reminders cannot be added.

PD: the calendar is one I own, but not my primary calendar.

Here is part of the code:

  try
  {                
    birthday = new Date(Data[i][BirthColumn]);        
    birthday.setFullYear(today.getFullYear());                                  
    birthday.setUTCHours(12);

    birthlist += Data[i][NameColumn] + " --> " + birthday + "\n";

    calendarevent = cal.createAllDayEventSeries("¡Cumpleaños " + Data[i][NameColumn] + "!", birthday, CalendarApp.newRecurrence().addYearlyRule().times(YearsInAdvance));

    if (calendarevent == null)          
      success = false;
    else
    {
      //This sentence fails every single time.
      calendarevent.addEmailReminder(0);
      calendarevent.addPopupReminder(0);
      calendarevent.addSmsReminder(0);
    }    
  }  
  catch (ee)
  {         
     var row = i + 1;
     success = false;

    errlist += "Error on row " + row + ": check name and birth date. Exception Error: " + ee.message + "\n";                
  }  
Was it helpful?

Solution 2

This is a known issue See comment nr 67 for a working workaround : the trick is to re-call the event for every item you want to add (reminder, popup...) using cal.getEventSeriesById(eventID) after you get the Id simply with .getId() I use it in some scripts and it solved the issue for me.

OTHER TIPS

This is the portion of the code I finally change to make it work, as Serge insas suggest me before:

    if (calendarevent == null)          
      success = false;
    else
    {
      cal.getEventSeriesById(calendarevent.getId()).addEmailReminder(0);          
      cal.getEventSeriesById(calendarevent.getId()).addPopupReminder(0);
      cal.getEventSeriesById(calendarevent.getId()).addSmsReminder(0);
    }   
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top