You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google脚本deleteEventSeries函数失效,需替换以删除日历事件

解决Google脚本中删除日历事件的TypeError问题

你遇到的问题核心是Google Apps Script的CalendarApp接口更新了——CalendarApp.deleteEventSeries()这个静态方法已经被弃用,现在删除事件的正确姿势是调用事件对象自身的delete方法,而不是通过CalendarApp类直接调用。

问题出在哪

你代码里的这一行完全不符合当前的API规范:

CalendarApp.deleteEventSeries();

不仅这个方法已经被移除,而且你也没有传入要删除的事件对象,自然会触发TypeError。

修正后的解决方案

不管是单事件还是重复事件系列,只要成功获取到对应的事件实例,直接调用它的delete()方法就可以完成删除操作。

调整后的代码示例

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

  // (这里保留你遍历表格行、筛选标记删除事件、获取存储EventID的代码)
  
  var EventID = "The event ID eg scrambledLettersNumbers@google.com";
  // 根据事件类型选择获取方式:重复事件系列用getEventSeriesById,单事件用getEventById
  var event = cal.getEventSeriesById(EventID); 
  // 单事件替换为:var event = cal.getEventById(EventID);

  // 先判断事件是否存在,避免空对象调用报错
  if (event) {
    event.delete(); // 调用事件对象的delete方法完成删除
    Logger.log("事件已成功删除");
  } else {
    Logger.log("未找到对应事件,请检查EventID是否正确");
  }
}

额外要注意的点

  • 重新授权:新账户复制脚本后,第一次运行需要重新授权,确保脚本拥有Google日历的编辑权限。
  • EventID验证:确认表格里存储的EventID格式正确(重复事件ID通常带@google.com后缀,单事件是一串纯字符ID)。
  • 异常处理:加入if (event)的判断能避免因事件已被删除、ID错误导致的空对象调用异常。

内容的提问来源于stack exchange,提问作者Sandy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 11:57:32