Google App Maker日历示例。使用getCalendarByName代替getDefaultCalendar

时间:2018-12-20 18:17:13

标签: google-app-maker

我是Google App Maker的新手,正在尝试构建自己的自定义版本的Calendar示例。在示例中,代码通过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;
}

1 个答案:

答案 0 :(得分:0)

该函数是带有getCalendarsByName的{​​{1}},因此它返回日历数组。如果您知道只会得到一个正确的结果,则只需将代码更改为:

s

CalendarApp.getCalendarsByName('email@gmail.com')[0].getEvents(startDate,endDate); 会自行返回日历,因此您可以改用日历。