Google日历ID授权/配置

时间:2019-11-04 13:46:24

标签: google-apps-script settings

我有一个工作组,每周有几个约会。我想通过Google表单将他们的日程安排整合到Google工作表中,而不是将计划的约会自动保存到每个事件的每个所有者中。

我编写了自动代码,创建并同步了计划的表单和工作表,但是在途中遇到了一个障碍:我无权通过应用程序(或更具体地说,通过日历ID)。

是否有任何配置授权可以允许我这样做?

或者作为一种可选的解决方案,我可以在Google日历中使用任何方法让我的合作伙伴作为来宾参加我自己的日历中安排的活动吗?

现在我正在使用此方法:

CalendarApp.getCalendarById(calendarID).createEventFromDescription(description);

1 个答案:

答案 0 :(得分:1)

第一个选项

与来宾在日历上创建活动。这将在您的日历中创建一个事件,并添加您要作为邀请对象的电子邮件。

function createEvent() {

  var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'example@mail.com'}, 
  ],
  'reminders': {
    'useDefault': "False",
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10},
    ],
  }
}


Calendar.Events.insert(event, "your calendar id");

}

我从documentation得到了这个例子。

第二个选项

提交表单时,获得对用户日历的写权限。这可以通过将Calendar ACL规则与onSubmit() trigger结合起来并将代码附加到表单来完成:

  

警告:这将为用户所有日历的事件提供阅读访问权限

function onSubmit(){

  var rule = {
    "role": "writer",
    "scope": {
      "type": "user",
      "value": "your_email"
    }
  }

  Calendar.Acl.insert(rule, "primary"); //"primary" is the id of each user's main calendar

}

用户将必须接受权限,否则您将无法访问其日历。然后,您必须像在“第一个”选项中那样创建事件。

有关ACL规则here的更多信息(如果它们来自您的域或组)

相关问题