2 回答
TA贡献1712条经验 获得超3个赞
您需要注意传递给函数的值。它们被列为“参数”,并在下面链接的方法的文档中清楚地描述。
addWeeklyExclusion()
不接受任何值,但您试图向其传递一个日期。setRecurrence(recurrence, startTime, endTime)
需要一个EventRecurrence对象,但您要向它传递一个数组。
每个事件系列都有一个recurrence
,并且recurrence
可能有多个例外。无需创建重复数组。
function createRecurringEvent() {
const Tstart = new Date('December 5, 2020 04:00:00 PM EST');
const Tstop = new Date('December 5, 2020 05:00:00 PM EST');
const CEUntil = new Date('January 10, 2021');
const recurrence = CalendarApp.newRecurrence()
const rule = recurrence.addWeeklyRule().until(CEUntil);
const exceptions = [ 'December 5, 2020', 'December 26, 2020' ];
exceptions.forEach(function(exception) {
rule.addDateExclusion(new Date(exception));
});
CalendarApp.getDefaultCalendar().createEventSeries(
'Recurring Event',
Tstart,
Tstop,
recurrence
);
}
TA贡献1829条经验 获得超6个赞
在迭戈的大力帮助下,我的代码得以运行。
这是更新事件的相关代码片段,将异常排除在一系列事件之外:
var exceptions = record[26].split(',');
var event = calIndoorHall.getEventSeriesById(CEId);
var recurrence = CalendarApp.newRecurrence();
var rule = recurrence.addWeeklyRule().until(CEUntil);
exceptions.forEach(function(exception) {
rule.addDateExclusion(new Date(exception.toString()));
});
event.setRecurrence(recurrence, Tstart, Tstop);
看着这段代码的美丽简洁,我希望自己在 JS/GAS 方面能更流利一些。我想,这是(更多)练习的问题。
添加回答
举报