无法找到功能

时间:2014-03-18 16:59:09

标签: javascript google-apps-script

我创建了一个小型测试函数,试图找出如何根据关键字删除多个事件。

我在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>

1 个答案:

答案 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