在Google日历上检索并标记假期

时间:2016-08-31 20:30:53

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

我正在接收来自客户的黑色日期信息,需要在Google日历上标记它们。

客户只需检查表单上的假日,并且需要在日历上将其突出显示为关闭日期。

Google日历脚本似乎没有提供请求公共假日日期的方法。有没有办法这样做?

1 个答案:

答案 0 :(得分:1)

如何在App脚本中使用Calendar API获取公共假期

1.根据您希望查看的国家/地区的公众假期,获取您的calendarId here

2.使用App Script文档提供的代码fetching list of Events

function listNext10Events() {
      var calendarId = 'en.indian#holiday@group.v.calendar.google.com'; //I'm fetching Indian public holidays
      var now = new Date();
      var events = Calendar.Events.list(calendarId, {
        timeMin: now.toISOString(),
        singleEvents: true,
        orderBy: 'startTime',
        maxResults: 10 //set number of holidays you'd like to see, 10 for now
      });
      if (events.items && events.items.length > 0) {
        for (var i = 0; i < events.items.length; i++) {
          var event = events.items[i];
          if (event.start.date) {
            // All-day event.
            var start = parseDate(event.start.date);
            Logger.log('%s (%s)', event.summary, start.toLocaleDateString());
          } else {
            var start = parseDate(event.start.dateTime);
            Logger.log('%s (%s)', event.summary, start.toLocaleString());
          }
        }
      } else {
        Logger.log('No events found.');
      }
  }



 function parseDate(string) {
      var parts = string.split('T');
      parts[0] = parts[0].replace(/-/g, '/');
      return new Date(parts.join(' '));
 }
  1. 要成功执行此操作,请在App Script和Google Developer Console中启用Calendar API。
  2. Enabling advanced services

    要使用高级Google服务,请按以下说明操作:

    一个。在脚本编辑器中,选择Resources&gt;高级Google服务......

    湾在出现的对话框中,单击要使用的服务旁边的开/关开关。

    ℃。在对话框的底部,单击Google Developers Console的链接。

    d。在控制台中,单击过滤器框并键入API名称的一部分(例如,“日历”),然后在看到名称后单击该名称。

    即在下一个屏幕上,单击“启用API”。

    保存项目并运行

    查看日志以查看公众假期。