CalendarApp.getCalendarById(email)为我组织中的某些人返回null

时间:2019-07-12 16:46:48

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

我在Google Apps脚本中使用CalendarApp.getCalendarById(email)。这对于我自己的日历以及组织中的其他人来说都很好。但是,对于许多其他人,甚至对那些我拥有完全查看特权的人,此操作都失败(返回null)。

我该如何返回他们的日历?

2 个答案:

答案 0 :(得分:1)

您必须订阅该人的Google日历才能使其正常工作。您可以通过选择:

添加日历>订阅日历

然后输入此人的电子邮件地址。

这意味着它们的日历必须始终在Google日历的“其他日历”部分中可见。


另一种替代方法是使用没有此要求的高级日历API!

答案 1 :(得分:0)

这是我写的一个自动订阅所有用户的函数。您只需要提供电子邮件列表。

  var emails = [] // list all emails here

  emails.forEach((email) => {
    try {
      CalendarApp.subscribeToCalendar(email)
      Logger.log("Email: %s, Timezone: %s", email, CalendarApp.getCalendarById(email).getTimeZone())
    } catch (e) {
      Logger.log("this email failed: %s", email)
    }
  })
}