我有一个小型Google Apps脚本,用于处理电子表格中的日期列,并在日历(生日)中生成条目。
工作正常,但在向(最近创建的)CalendarEvent添加提醒时,会引发错误:
服务错误:CalendarApp:不匹配:etags = [“GUQKRgBAfip7JGA6WhJb”],版本= [63489901413]
我在创建事件后尝试执行1秒睡眠(等待在日历中进行更改),但是没有运气......
顺便说一句,事件是成功创建的,只能添加提醒。
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";
}
答案 0 :(得分: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);
}
答案 1 :(得分:1)
这是known issue
请参阅注释nr 67以获取有效的解决方法:诀窍是在使用cal.getEventSeriesById(eventID)
获取ID后,使用.getId()
为要添加的每个项目(提醒,弹出...)重新调用事件}
我在一些脚本中使用它,它解决了我的问题。