我创建了一个小型测试函数,试图找出如何根据关键字删除多个事件。
我在2014年1月24日发布了两个名为'5D - 1'的事件和一个名为'5D - 2'的事件
function testDelete(){
var calId = "<id>";
var cal = CalendarApp.getCalendarById(calId);
var date = new Date('1/24/2014/');
var Events = cal.getEventsForDay(date, {search: '5D'});
Events.deleteEventSeries();
};
但是我收到了这个错误:
TypeError: Cannot find function deleteEventSeries in object CalendarEvent,CalendarEvent. (line 36, file "Code")
这对我没有任何意义。为什么不能找到这个功能呢?根据{{3}},它看起来应该有效。
我唯一能想到的是对象'CalendarEvent,CalendarEvent'不算作事件(我试过)或作为事件系列,我必须逐个删除事件。< / p>
答案 0 :(得分:1)
返回的对象是当天所有事件的数组。如果您知道只有一个具有该名称的事件,您只需使用此代码:
function testDelete(){
var calId = "h22nevo15tm0nojb6ul4hu7ft8@group.calendar.google.com";
var cal = CalendarApp.getCalendarById(calId);
var date = new Date('2/21/2014/');
var Events = cal.getEventsForDay(date, {search: 'test event'});
Events[0].deleteEvent();// get first result from the search
};
如果你使用了recurence,请告诉我,代码会有所不同......
编辑:这是eventSeries的代码和多个结果:
function testDeleteSerie(){
var calId = "h22nevo15tm0nojb6ul4hu7ft8@group.calendar.google.com";
var cal = CalendarApp.getCalendarById(calId);
var date = new Date('2/22/2014/');
var events = cal.getEventsForDay(date, {search: 'test event'});
for(var n in events){
var eventId = events[n].getId();
var eventSerie = cal.getEventSeriesById(eventId);
eventSerie.deleteEventSeries();
}
}
另请注意,有一个很好的工具可以删除我使用Romain Vialard Library开发的日历中的重复项(此工具可以执行的其他操作;)随时have a look to it on his webSite