我正在构建一个Google Apps脚本代码,用于将日历中的事件写入电子表格。 我想使用的日历不是我的默认日历,我希望按名称获取此日历。 但是,该方法不起作用...... getCalendarById确实有效,但由于此脚本适用于非初始化用户,我需要按名称获取日历...
感谢您的进一步帮助!
var cal = CalendarApp.getCalendarsByName("Test 21");
// var cal = CalendarApp.getDefaultCalendar();
var sheet = SpreadsheetApp.getActiveSheet();
var events = cal.getEvents(new Date("January 1, 2012"), new Date("December 31, 2030"));
for (var i=0;i<events.length;i++) {
var details=[[events[i].getTitle(), events[i].getDescription(), events[i].getStartTime(), events[i].getEndTime()]];
var row=i+1;
var range=sheet.getRange(row,1,1,4);
range.setValues(details);
}
}
当我启动脚本时,我收到错误: TypeError:在Calendar中找不到方法getEvents。 (第22行)
答案 0 :(得分:2)
你注意到getCalendarsByName
中的's'了吗?这意味着此方法返回一个日历对象数组,因为可能有许多具有相同名称的日历。
如果您认为最有可能只有一个日历带有您输入的名称,那么您可以决定只获得第一个日历。
要做到这一点,只需像这样定义Cal
var cal = getCalendarByName(name string)[0]