使用Google Apps Script管理Google Calendar recurring event时遇无效事件ID错误求助
Google Calendar与Apps Script会议室管理:重复事件ID处理问题
项目背景
我们基于Google Apps Script开发的会议室管理工具,需要实现以下功能:
- 遍历关联的会议室日历
- 识别次日的所有会议安排
- 通过邮件和Slack向会议组织者发送通知,请求确认或释放会议室
- 兼容处理重复事件(recurring event)与非重复事件
问题描述
处理重复事件时出现异常:
- 用户点击邮件通知里的确认/释放链接时,偶尔会触发Invalid Event ID错误
- 根因是重复事件的实例特定ID(带时间戳)与基础重复事件ID不匹配
已采取措施
我们尝试通过基础事件ID加实例开始时间生成重复事件实例的唯一ID,代码逻辑如下:
let instanceId; if (event.isRecurringEvent() && !eventUid.includes("_R")) { instanceId = `${eventUid}_${startTimeFormatted}@google.com`; } else if (eventUid.includes("_R")) { instanceId = `${eventUid.split("_R")[0]}_${startTimeFormatted}@google.com`; }
但该方案在部分边缘场景(如修改后的重复事件、已删除的事件实例)下依然失效
求助需求
希望得到以下方向的指导:
- 通过Apps Script管理重复事件及其实例特定ID的最佳实践
- 关于重复事件ID生成与处理机制的官方文档解读
- 避免或解决Invalid Event ID错误的具体方案
内容的提问来源于stack exchange,提问作者Asaad Larhlimi
相关产品推荐
相关产品推荐

