我正在尝试在“选项”中添加来宾,以自动将Google表格中的时间表添加到日历中。我看过视频(当其他人问这个问题时,它不会讨论这个问题,也不会导致任何答案),而且我对了解CalendarApp信息的帮助还不够了解。有人可以帮忙吗?(仅供参考,我每次运行时也希望停止重复事件),这是我的脚本:
function addEvents(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var cal = CalendarApp.getCalendarById("c_kdaqhj8lkd7u68s8thinbnjpik@group.calendar.google.com");
var events = cal.getEvents(new Date ("02/8/2019 12:00 AM"), new Date("02/28/2019 11:59 PM"));
for (var i=0;i<events.length;i++){
var ev = events[i];
ev.deleteEvent();
}
var data = ss.getRange("A2:F"+ lr).getValues();
for(var i = 0;i<data.length;i++){
cal.createEvent(data[i][0], data[i][1], data[i][2], guests:"data[i][3]", "data[i][4]", {description:data[i][5]});
}
}
你的主要问题是你没有将其包含guests
在与description相同的JavaScript对象中,并且该guests
字符串必须是包含逗号分隔值的字符串。以下脚本具有自我解释的注释,还检查在尝试插入事件的日期和时间是否已经存在事件,以避免重复事件:
function addEvents(){
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lr = ss.getLastRow();
var cal = CalendarApp.getCalendarById("YOURCALENDARID");
var data = ss.getRange("A2:F"+ lr).getValues();
for(var i = 0;i<data.length;i++){
// According to the documentation if no event was found on those date times it will return null
// However if you delete an event this will return an empty array so we also have to check against that
if(cal.getEvents(data[i][1], data[i][2])==null || cal.getEvents(data[i][1], data[i][2]).length==0 ){
// Options must be a Javascript object and specifically the paramter guests is a string so your data must be integrated
// in such a string
cal.createEvent(data[i][0], data[i][1], data[i][2],{guests: ''+data[i][3]+','+data[i][4]+'', description:data[i][5]});
}
}
}
createEvent(title,title,startTime,endTime,options),请不要提供有关选项的信息,options
尤其guests
是选项内的信息。