谷歌的工作表日历邀请和编辑事件



场景:我希望几个用户将标题、日期、描述等添加到他们通过google meet举行的讨论活动的日历中。这一切都应该通过谷歌表单上的触发器来处理。如果在谷歌工作表中编辑了一个事件,那么也应该编辑日历中的事件。我找到了一些代码,对它进行了轻微的编辑,它在某种程度上起了作用。

工作原理:创建活动并邀请客人,因此创建谷歌会议(只要邀请1位客人(。编辑事件也适用于

不起作用的是:如果两个事件的时间冲突,例如,事件一在14:00-15:00之间运行,事件二在14:30-15:30之间运行,则只将事件二添加到日历中。

有人能帮助我们如何添加重叠事件吗?

function create_calendar() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var index = 2;
var lastRow = sheet.getLastRow();
for (;index <= lastRow; index++){

var taskTitle = sheet.getRange(index, 1, 1, 1).getValue();
var taskDesc = sheet.getRange(index, 2, 1, 1).getValue();
var location = sheet.getRange(index, 3, 1, 1).getValue();
var startDate = sheet.getRange(index, 4, 1, 1).getValue();
var endDate = sheet.getRange(index, 5, 1, 1).getValue();
var guests = sheet.getRange(index, 6, 1, 1).getValue();

var type = sheet.getRange(index, 7, 1, 1).getValue();
var onCalendar = sheet.getRange(index, 8, 1, 1).getValue();
var status = sheet.getRange(index, 9, 1, 1).getValue();

var sendInvites = true;
if (onCalendar == 'Yes' && startDate && endDate && status != 'Done')
{
var events =  CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").getEvents(startDate, endDate);
delete_events(events);
var calendar = CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").createEvent(taskTitle, 
                startDate, 
                endDate,
                {description: taskDesc, 
                  location: location, 
                  guests: guests, 
                  sendInvites: sendInvites}
                );
}

}// End of for Loop

}// End of CalendarTest Function

试试这个:

const ss=SpreadsheetApp.getActive();
const sheet=ss.getSheetByName('Events');
const startRow=1;
let vA=sheet.getRange(startRow,1,sheet.getLastRow()-startRow+1,9).getValues();
vA.forEach(function(r,i){
var taskTitle = r[0];
var taskDesc =r[1]; 
var location =r[2];
var startDate =r[3];
var endDate =r[4];
var guests =r[5];
var type =r[6];
var onCalendar =r[7];
var status =r[8];
var sendInvites = true;
if (onCalendar=='Yes' && startDate && endDate && status != 'Done')
{
CalendarApp.getCalendarById("INSERT CALENDAR ID HERE").createEvent(taskTitle, startDate, endDate,{description:taskDesc,location:location,guests:guests,sendInvites:sendInvites});
}
});

参考:

  • createEvent(title,startTime,endTime,options(

最新更新