【问题标题】:Retrieve and mark holidays on Google Calendar在 Google 日历上检索和标记假期
【发布时间】:2016-08-31 20:30:53
【问题描述】:

我正在从客户那里获取不适用日期信息,需要在谷歌日历上标记它们。

客户只需检查表单上的假期,并需要在他们的日历上将其突出显示为休息日。

Google 日历脚本似乎没有提供请求公共假期日期的方法。有什么办法吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    2.使用fetching list of Events上的App Script docs提供的代码:

    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。

    Enabling advanced services:

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

    一个。在脚本编辑器中,选择资源 > 高级 Google 服务...。

    b.在出现的对话框中,点击您要使用的服务旁边的开/关开关。

    c。在对话框底部,点击 Google Developers Console 的链接。

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

    e。在下一个屏幕上,单击启用 API。

    保存项目并运行

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

    【讨论】:

    • 我尝试了这种方法,但在让日历工作时遇到了问题。当我启用 api 时,它说我应该创建凭据。我忽略了它并尝试了。但它不起作用。
    • 我的回答中的哪一部分你卡住了?我已经完美地完成了我的工作
    • 我们使用var events = Calendar.Events.list(...检索事件的部分。我在执行记录中收到以下错误:Execution failed: Access Not Configured. Calendar API has not been used in project 60727xxxxx8 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/calendar/overview?project=60727xxxxx8 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry
    • 转到谷歌开发控制台并启用日历 API,就这么简单:)
    • 是的,我做到了,但它不起作用。实际上,当我打开开发人员的控制台时,它会打开我的私人 gmail 帐户而不是我的公司帐户,并且显示为 You do not have sufficient permissions to view this page. 。当我切换到公司帐户时,我在其中找不到项目。无论如何,我尝试从公司帐户启用 api,但仍然失败。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多