此代码使用高级日历服务,您必须在脚本编辑器菜单中启用它:ressources/advanced Google Services ***
function ChangeEvent(){
var calendarId = 'primary';
var eventId = 'omv6###########e8jbs';
var event = Calendar.Events.get(calendarId, eventId);
Logger.log('old recurrence = '+event.recurrence);
event.recurrence = '';
Calendar.Events.patch(event,calendarId,eventId);
Logger.log('new recurrence = '+event.recurrence);
}
EDIT
根据您的评论,
请注意,高级日历 API 使用的 ID 略有不同,因为它不包含 @google.com。您应该在使用之前删除最后一部分。
例子 :
[16-02-19 07:22:59:739 CET] [email protected] /cdn-cgi/l/email-protection
[16-02-19 07:22:59:740 CET] ba4a1dub73uqsvhld3abh15f38
使用一些字符串方法来获取我们需要的结果:
Logger.log(event.getId());// event is the event you get using calendarApp
var advancedID = event.getId().substring(0,event.getId().indexOf('@'));
Logger.log(advancedID);// this ID is for advanced service
}
工作示例:
首先使用calendarApp创建一个重复5天的事件(所以我们处于您的真实情况)使用createEventRec()
检查日历上的活动是否符合预期
然后使用changeEvent()
并检查结果
function createEventRec(){
var cal = CalendarApp.getDefaultCalendar();
var recurrence = CalendarApp.newRecurrence().addDailyRule().times(5);
var event = cal.createEventSeries('Dinner with Mary', new Date(),new Date(new Date().getTime()+3600000), recurrence);
Logger.log(event.getId());
PropertiesService.getScriptProperties().setProperty('ID',event.getId());
}
function ChangeEventRecurrence(){
var calendarId = 'primary';
var ID = PropertiesService.getScriptProperties().getProperty('ID');
var advancedID = ID.substring(0,ID.indexOf('@'));
Logger.log(advancedID);
var event = Calendar.Events.get(calendarId, advancedID);
Logger.log('old recurrence = '+event.recurrence);
event.recurrence = '';
Calendar.Events.patch(event,calendarId,advancedID);
Logger.log('new recurrence = '+event.recurrence);
}