问题描述
问题:在 Google 表格中运行 Google 应用脚本时收到错误:“异常:您在短时间内创建或删除了太多日历或日历事件。请稍后再试。”
我有一个与谷歌日历集成的谷歌应用程序脚本。当向电子表格添加一行时,它会创建一个事件。如果编辑了该行中的任何内容,它会更新原始事件(绑定到相同的事件 ID)。
非常感谢您的帮助。
function exportEvents() {
var space = " - "
var sheet = SpreadsheetApp.getActiveSheet();
var headerRows = 1; // Number of rows of header info (to skip)
var range = sheet.getDatarange();
var data = range.getValues();
var calId = "ID";
var cal = Calendarapp.getCalendarById(calId);
for (i=0; i<data.length; i++) {
if (i < headerRows) continue; // Skip header row(s)
var row = data[i];
var date = new Date(row[5]); // Scheduled Publication Date
var numb = row[2];
var title = numb +space+ row[0];
var loc = row[3];
var desc = "Content 1: "+row[1] +"\n" +
"\nContent 2 "+row[6]+ "\n" +
"\nContent 3: "+row[9]+"\n" +
"\nContent 4: "+row[7]+"\n" +
"\nContent 5 (If Drafted): "+row[4]+"\n" +
"\nRunning List"
//Further code can be added to allow for additional records
var id = row[8]; // eventId Hidden
// Check if event already exists,update it if it does
try {
var event = cal.getEventSeriesById(id);
}
catch (e) {
// do nothing - we just want to avoid the exception when event doesn't exist
}
if (!event) {
//cal.createEvent(title,new Date("march 3,2010 08:00:00"),2010 09:00:00"),{description:desc,location:loc});
var newEvent = cal.createallDayEvent(title,date,{location:loc}).getId();
row[9] = newEvent; // Update the data array with event ID
}
else {
event.setTitle(title);
event.setLocation(loc);
event.setDescription(desc);
// event.setTime(tstart,tstop); // cannot setTime on eventSeries.
// ... but we CAN set recurrence!
var recurrence = Calendarapp.newRecurrence().addDailyRule().times(1);
event.setRecurrence(recurrence,date);
}
}
// Record all event IDs to spreadsheet
range.setValues(data);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)