Google Apps脚本 - 问题getCalendarsByName然后是getEvents

时间:2013-01-12 12:13:49

标签: google-apps-script

我正在构建一个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行)

1 个答案:

答案 0 :(得分:2)

你注意到getCalendarsByName中的's'了吗?这意味着此方法返回一个日历对象数组,因为可能有许多具有相同名称的日历。 如果您认为最有可能只有一个日历带有您输入的名称,那么您可以决定只获得第一个日历。

要做到这一点,只需像这样定义Cal

var cal  = getCalendarByName(name string)[0]