1

我正在构建一个 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:在日历中找不到方法 getEvents。(第 22 行)

4

1 回答 1

2

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

为此,只需像这样定义 Cal

var cal  = getCalendarByName(name string)[0]
于 2013-03-22T21:24:45.473 回答