我的目标是自动同步谷歌日历和谷歌电子表格。每次将事件添加到日历中时,都应该将行添加到google电子表格中。我编写了一个脚本,将即将发生的事件列表加载到google电子表格中。这段代码运行正常,每次运行脚本时都会添加10个事件的列表。然而,我想要的是自动运行这个脚本时,一个事件是通过谷歌日历创建的,我想避免重复的事件。这种事件侦听器有什么功能可用?
function listUpcomingEvents() {
var calendarId = 'alueducation.com_rtjgosrsgo9f4c6hqm5urebs68@group.calendar.google.com';
var optionalArgs = {
timeMin: (new Date()).toISOString(),
showDeleted: false,
singleEvents: true,
maxResults: 10,
orderBy: 'startTime'
};
var response = Calendar.Events.list(calendarId, optionalArgs);
var events = response.items;
if (events.length > 0) {
for (i = 0; i < events.length; i++) {
var event = events[i];
var when = event.start.dateTime;
if (!when) {
when = event.start.date;
}
Logger.log('%s (%s)', event.summary, when);
addEventToSheet(event.summary, when);
}
} else {
Logger.log('No upcoming events found.');
}
}
function addEventToSheet(sumarry, date) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.appendRow([sumarry, date]);
}
简短回答
使用时间驱动触发器
<标题>在这个时候谷歌应用程序脚本不能绑定一个脚本到谷歌日历。另一种选择是使用绑定到电子表格或独立脚本,因此此时不可能在创建与表单响应提交相反的事件时触发脚本。
<标题>引用- 脚本类型触发器和事件