事件删除功能需要替换才能删除谷歌日历事件



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

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

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

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();
} 
} 

我认为您混淆了OOP的一些基本原理。您的代码失败是正常的,因为类CalendarApp没有名为deleteEventSeries()的函数。你可以试着在该类的参考资料中找到。

您想要删除的实际上是通过调用Calendar对象中的方法getEventSeriesById检索到的对象,该对象的类型为CalendarEventSeries

因此,要删除事件系列,您确实需要调用方法deleteEventSeries(),但需要使用CalendarEventSeries对象,而不是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

最新更新