Google 应用制作工具日历示例。 getCalendarByName 而不是 getDefaultCalendar

Google App Maker Calendar Sample. getCalendarByName instead of getDefaultCalendar

我是 Google App Maker 的新手,正在尝试构建我自己的日历示例自定义版本。在示例中,代码通过 getDefaultCalendar 获取默认日历。我有另一个要获取的日历(按名称或 ID)。使用 getCalendarByName 并对其进行调试后,它会找到日历,但是当我将它与 getEvents 一起使用时,它不会填充到示例应用程序中。

下面的代码来自日历示例。

/**
* Gets Calendar events.
* @param {Query} query - data query with parameters.
* @return {Array<Event>} events from Calendar.
*/
function getEvents_(query) {
var startDate = query.parameters.StartDate;
startDate.setHours(0, 0, 0, 0);

var endDate = query.parameters.EndDate;
endDate.setDate(endDate.getDate() + 1);
endDate.setHours(0, 0, 0, 0);

if (startDate.getTime() > endDate.getTime()) {
return [];
}

var results = [];
var events = 
CalendarApp.getDefaultCalendar().getEvents(startDate,endDate);

events.forEach(function(item) {
var event = app.models.Events.newRecord();
event.StartDate = item.getStartTime();
event.EndDate = item.getEndTime();
event.Title = item.getTitle();
event.Color = item.getColor();
results.push(event);
});

return results;
}

该函数是 getCalendarsByNames,因此它 return 是一个日历数组。如果您知道您只会得到一个正确的结果,您只需将代码更改为:

CalendarApp.getCalendarsByName('email@gmail.com')[0].getEvents(startDate,endDate);

getCalendarById 会 return 一个单独的日历,因此您可以直接使用它。