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

如何通过Google Calendar API恢复已删除的重复日程实例?

恢复Google Calendar已删除重复日程实例的正确实现方案

问题根因

  • 已删除的重复日程实例默认状态为cancelled,属于父级重复日程下的例外实例,直接对父日程调用PATCH修改状态既不会作用到单个被删实例,也会触发权限错误
  • 返回forbidden通常为两个原因:
    1. OAuth授权凭证缺少https://www.googleapis.com/auth/calendar.events或https://www.googleapis.com/auth/calendar的必要编辑权限scope,只读scope无法修改日程状态
    2. 调用PATCH接口时传入的是父级重复日程的ID,而非被删除的单个实例的专属ID,谷歌日历不允许通过修改父日程状态恢复子实例

正确操作步骤

步骤1:获取已删除的单个实例ID

调用Events.list接口,传入以下参数:

  • eventId:父级重复日程的ID
  • showDeleted:设置为True
  • timeMin、timeMax:限定待恢复实例所在的时间范围,缩小检索范围
    返回结果中状态为cancelled的条目对应的id,就是待恢复的单个实例专属ID

步骤2:调用接口恢复实例

不要使用PATCH接口,直接调用Events.update接口,传入上一步拿到的单个实例ID,请求体仅需包含以下内容即可:

{
  "status": "confirmed"
}

步骤3:前置权限校验

  • 确认申请的OAuth scope至少包含https://www.googleapis.com/auth/calendar.events,如果操作的是他人共享的日历,需要确认当前账号有该日历的编辑权限
  • 如果使用服务账号调用接口,需要确认已经开启全域委托,且模拟的目标用户对该日历有编辑权限

常见踩坑说明

不要通过修改父级重复日程的字段恢复实例,所有修改必须作用到被删除的单个实例本身
调用Events.get接口查询单个实例时,必须加上showDeleted=True参数,否则会直接返回404,误以为实例已经被永久删除

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 18:15:00