如何将谷歌日历与谷歌电子表格同步?

时间:2016-10-15 13:02:35

标签: google-apps-script google-sheets google-api google-calendar-api

我的目标是自动将Google日历与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]);
}

1 个答案:

答案 0 :(得分:1)

简短回答

使用时间驱动器触发器

解释

目前,Google Apps脚本无法将脚本绑定到Google日历。替代方案是使用有界电子表格或独立脚本,因此在创建事件时,与表单响应提交相反,此时无法触发脚本。

参考