1

我有一个小的 Google Apps 脚本,它处理电子表格中的日期列并在日历(生日)中生成条目。

工作正常,但是在向(最近创建的)CalendarEvent 添加提醒时,会引发错误:

服务错误:CalendarApp:不匹配:etags = ["GUQKRgBAfip7JGA6WhJb"],版本 = [63489901413]

我试图在创建事件后执行 1 秒睡眠(等待在日历中完成更改),但没有运气......

BTW,事件创建成功,只能添加提醒。

PD:日历是我拥有的,但不是我的主日历。

以下是部分代码:

  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";                
  }  
4

2 回答 2

2

这是我最终更改以使其工作的代码部分,正如 Serge insas 之前建议我的那样:

    if (calendarevent == null)          
      success = false;
    else
    {
      cal.getEventSeriesById(calendarevent.getId()).addEmailReminder(0);          
      cal.getEventSeriesById(calendarevent.getId()).addPopupReminder(0);
      cal.getEventSeriesById(calendarevent.getId()).addSmsReminder(0);
    }   
于 2012-11-30T14:02:12.723 回答
1

这是一个已知问题cal.getEventSeriesById(eventID),请参阅评论 nr 67 以了解有效的解决方法:诀窍是在您获得 Id 后.getId() 使用它 重新调用您要添加的每个项目(提醒、弹出...)的事件一些脚本,它为我解决了这个问题。

于 2012-11-29T20:01:04.857 回答