我想编写一个Google Apps脚本,以检查重复发生的事件是否存在任何冲突,然后再将其从Google表格发送到Google日历。
我可以使用以下方法查看第一天的约会:
var ConTimes = calendarAll.getEvents(startDate, endDate, {search: roomNumber});
Logger.log('Conflicting Times: ' + ConTimes.length);
Logger.log('Conflicting dates: ' + ConTimes);
如果长度大于0,则说明存在冲突;如果长度大于0,则表明存在冲突。但是,此脚本不会检查任何重复发生的事件。
如果有一个简单的脚本可以搜索带有特定单词的所有Calendar事件,然后返回当前Calendar事件和我想安排的重复事件之间的重叠事件数,那就太好了。我想这个理想的脚本将类似于我用来添加重复事件的脚本:
var recurrence = CalendarApp.newRecurrence().addWeeklyRule().onlyOnWeekdays(weekdays).times(times);
var eventSeries = calendarSingle.createEventSeries(newEventTitle, startDate, endDate, recurrence);
在电子表格中,我有以下几列:例如行数据:
我确定我可以写一个长脚本,该脚本将为我提供接下来4周内星期一,星期三和星期五的所有日期,然后检查每个日期是否有冲突,但这很昂贵。有没有人知道Google是否编写了用于搜索重复发生的代码?
谢谢。 +++++++++一些澄清说明+++++++++++ 我不确定我是否足够清楚地解释了这一点,所以这里是一个示例,说明如何编写并生成昂贵的代码:
var startDate=Mon Jul 23 2018 07:22:11 GMT-0400 (EDT);
var endDate=Mon Jul 23 2018 08:22:11 GMT-0400 (EDT);
var times=4;
var recurringDays="MONDAY, WEDNESDAY, FRIDAY";
var room = "5071";
if (recurringDays == "MONDAY, WEDNESDAY, FRIDAY") {
for (var i = 1; i < times; i++) {
//Note: this assumes the first weekday and the start date are the same
// Then what is the date of the first Monday
var MondayStartDate = startDate;
var MondayEndDate = endDate;
var ConTimes = calendarAll.getEvents(startDate, endDate, {search: room});
Logger.log('Conflicting Times: ' + ConTimes.length);
//and what are the dates of the first Wednesday
var WednesdayStartDate = startDate.setDate(startDate.getDate()+2);
var WednesdayEndDate = endDate.setDate(endDate.getDate()+2);
var ConTimes = calendarAll.getEvents(startDate, endDate, {search: room});
Logger.log('Conflicting Times: ' + ConTimes.length);
//and what is the date of the first Friday
var FridayStartDate = startDate.setDate(startDate.getDate()+2);
var FridayEndDate = endDate.setDate(endDate.getDate()+2);
var ConTimes = calendarAll.getEvents(startDate, endDate, {search: room});
Logger.log('Conflicting Times: ' + ConTimes.length);
var Back2MonStartDate = startDate.setDate(startDate.getDate()+3);
var Back2MonEndDate = endDate.setDate(endDate.getDate()+3);
} }
该脚本生成的日志如下所示:
我必须为每一天的组合(例如“ MONDAY,WEDNESDAY,FRIDAY”)编写for循环脚本,并每天运行getEvents搜索。
实际上,我可以从日志文件中找到日历中哪一天的日期有冲突(例如,第三个“ 2”是开始日期之后的第一个星期五。
如果没有明显更短的Google Apps脚本会减少getEvents搜索的次数,那么我想这个脚本就是我需要编写的。
感谢您的帮助。