【问题标题】:Replacement needed for eventdelete function to delete google calendar eventeventdelete 功能需要替换以删除谷歌日历事件
【发布时间】:2020-04-19 10:13:08
【问题描述】:

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

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

我在新云端硬盘中创建了一个新的 Google 用户帐户、新的 Google 日历和新的电子表格。 将脚本复制到调整 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();
    } 
} 

【问题讨论】:

  • var EventID = “把实际的事件放在这里”;
  • 对不起。没有正确解释。我已经编辑了这个问题。假设 eventID 包含变量的 @google.com 部分。
  • event.deleteEventSeries()
  • Event.deleteEventSeries() 也是无效的
  • void是什么意思

标签: google-apps-script


【解决方案1】:

我认为您混淆了 OOP 的一些基础知识。 您的代码失败是正常的,因为类 CalendarApp 没有名为 deleteEventSeries() 的函数。您可以尝试在the reference for the class 中查找。

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

因此,要删除该事件系列,您确实需要调用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();

} 

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

var a = eventSeries.deleteEventSeries();

>>> a == null // True

【讨论】:

  • 拉瑟欣。非常感谢。不知道我是如何从以前的版本中改变它的。并澄清类问题。
  • 这解决了您的问题吗?如果是这样,请考虑upvoting/accepting the answer,以便其他遇到相同问题的人可以从中受益。
猜你喜欢
  • 2011-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多