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

调用Google Calendar API清空非主日历事件返回400错误如何解决

问题根因

你遇到的400 Invalid Value报错是因为Google Calendar API的calendars.clear接口有使用限制:该接口仅支持清空用户自身的主日历(调用时calendarId固定传primary即可),所有非主日历(包括你使用的后缀为@group.calendar.google.com的群组日历、自建辅助日历等)都不支持调用该接口,因此你传入非主日历ID会直接返回参数无效错误。

解决方案

如果需要清空非主日历的所有事件,可选择以下两种方案:

方案1:删除重建日历(操作更简便,适合不需要保留原日历ID、共享配置的场景)

先删除目标日历,再新建一个配置完全相同的日历即可,示例代码如下:

# 删除原非主日历
service.calendars().delete(calendarId="你的非主日历ID").execute()
# 创建新日历,配置和原日历保持一致
new_calendar = {
    "summary": "原日历名称",
    "timeZone": "原日历时区"
}
service.calendars().insert(body=new_calendar).execute()

方案2:遍历删除所有事件(适合需要保留原日历ID、原有共享权限配置的场景)

先拉取目标日历的全量事件,再逐个删除事件即可,示例代码如下:

page_token = None
while True:
    # 分页拉取日历所有事件
    events = service.events().list(
        calendarId="你的非主日历ID",
        pageToken=page_token
    ).execute()
    # 逐个删除事件
    for event in events["items"]:
        service.events().delete(
            calendarId="你的非主日历ID",
            eventId=event["id"]
        ).execute()
    page_token = events.get("nextPageToken")
    if not page_token:
        break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:54:03