0

我想删除选定的日历事件,但 eventdelete 功能现在在新脚本中无效。

我将谷歌脚本附加到包含全天活动详细信息的谷歌电子表格中。协作者使用菜单运行脚本来创建或删除谷歌日历中的事件。该脚本循环并选择相关事件,包括其存储的谷歌日历 EventID,并在谷歌日历中删除或创建它。这一切都很好。

我在新的云端硬盘中创建了一个新的谷歌用户帐户、新的谷歌日历和新的电子表格。将脚本复制到调整 CalendarID 等的新工作表后,它失败了。 EventDelete 现在是一个 Void 函数错误消息是TypeError: CalendarApp.deleteEventSeries is not a function。检查列表该功能deleteEventSeries现在是无效的。我已经测试了代码并且能够编辑描述,因此代码按预期工作,但我找不到删除日历中的谷歌日历事件的函数/方法。

function DeleteCalendarEvents() {
    var CalID = "myUserName@gmail.com" 
    var cal =CalendarApp.getCalendarById(CalID);
    // I have removed code which loops each row in a google spreadsheet
    //   and selects events marked delete grabbing its stored eventID. 

    {     
    var EventID = ("The event ID eg scrambledLettersNumbers@google.com");                                          
    var event = cal.getEventSeriesById(EventID);
    CalendarApp.deleteEventSeries();
    } 
} 
4

1 回答 1

0

我认为您混淆了 OOP 的一些基础知识。您的代码失败是正常的,因为 CalendarApp 类没有调用函数deleteEventSeries()。您可以尝试在该类的参考资料中查找。

您要删除的实际上是您通过调用类型为getEventSeriesById的对象中的方法检索到的对象。CalendarCalendarEventSeries

因此,要删除该事件系列,您确实需要调用该方法deleteEventSeries(),但您需要使用CalendarEventSeriesobject not CalendarApp

function DeleteCalendarEvents() {
    var CalID = "myUserName@gmail.com" 
    var cal =CalendarApp.getCalendarById(CalID);

    var eventSeriesID = "<Id of the event Series>";                                          
    var eventSeries = cal.getEventSeriesById(eventSeriesID);
    eventSeries.deleteEventSeries();

} 

正如您在评论中所建议的那样,这些功能并未被弃用。返回类型void只是意味着该函数不会返回任何有意义的变量,因为您刚刚删除了该事件。

var a = eventSeries.deleteEventSeries();

>>> a == null // True
于 2020-04-20T10:15:45.743 回答