向活动添加多个日历ID和与会者电子邮件



我有一个脚本,可以根据我们的谷歌工作表时间表自动化我们的日历。它确实可以将事件添加到特定的日历中,但我想将单个日历添加到脚本中,并自动添加一个谷歌组作为事件的访客,这样通知就会像普通的谷歌日历事件一样发出。

function scheduleShifts() {
/**
Task 1) Open the Event Calendar.
**/
var spreadsheet = SpreadsheetApp.getActive();
var calendarID = spreadsheet.getRange("C2").getValue();
var eventCal = CalendarApp.getCalendarById(calendarID);
/**
Task 2) Pull each shift information into the code, in
a form that the code can understand. 
**/
var signups = spreadsheet.getRange("A5:C100").getValues();
/**
[
[11/9/2019 0:00:00,11/10/2019 0:00:00,Werdah On-Call],
[11/10/2019 0:00:00,11/11/2019 0:00:00,Lucas On-Call],
[11/16/2019 0:00:00,11/17/2019 0:00:00,Aiden On-Call],
[11/17/2019 0:00:00,11/18/2019 0:00:00,Werdah On-Call],
[11/23/2019 0:00:00,11/24/2019 0:00:00,Mayra On-Call],
[11/24/2019 0:00:00,11/25/2019 0:00:00,Kyle On-Call],
[11/30/2019 0:00:00,12/1/2019 0:00:00,Cavan On-Call],
[12/1/2019 0:00:00,12/2/2019 0:00:00,Adam On-Call],
[12/7/2019 0:00:00,12/8/2019 0:00:00,Hillary On-Call],
[12/8/2019 0:00:00,12/9/2019 0:00:00,Melissa Pino On-Call],
[12/14/2019 0:00:00,12/15/2019 0:00:00,Kristi On-Call],
[12/15/2019 0:00:00,12/16/2019 0:00:00,Kevin On-Call],
[12/21/2019 0:00:00,12/22/2019 0:00:00,Alice On-Call],
[12/22/2019 0:00:00,12/23/2019 0:00:00,Carro On-Call],
[12/28/2019 0:00:00,12/29/2019 0:00:00,Sruthi On-Call],
[12/29/2019 0:00:00,12/30/2019 0:00:00,Tara On-Call]
]  
**/
/**
Task 3) Do the work!
**/
for (x=0; x<signups.length; x++) {
var shift = signups[x];
var startTime = shift[0];
var endTime = shift[1];
var oncall = shift[2];
eventCal.createEvent(oncall, startTime, endTime);
}
}
/**
Task 4) Make it easy to ue.
**/
function onOpen(){
var ui = SpreadsheetApp.getUi();
ui.createMenu('Sync to Calendar')
.addItem('Schedule shifts now','scheduleShifts')
.addToUi();
}

您要做的是将事件创建代码更改为使用createEvent(title, startTime, endTime, options)函数。

有了这个,你可以添加一个对象作为第四个参数,如下所示:

{
"guests": "email1,email2,email3,groupsemail,etc",
"sendInvites": true,
"description": "Maybe you want to add more details? Up to you"
}

因此,请确保编辑eventCal.createEvent(oncall, startTime, endTime);以获得额外的参数。

此外,您可能需要创建一个要自动添加的电子邮件列表,以及一个用于将姓名和电子邮件绑定在一起的键值对。

祝你好运!