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

如何通过API实现订阅他人Google Calendar日历的操作流程

用Google Calendar API订阅他人日历的实现方法

你描述的「打开Google Calendar→设置→添加日历→订阅日历→输入对方邮箱」的UI操作,完全可以通过编程实现,官方文档中对应的接口是 CalendarList: insert,你之前没找到是因为Google没有把这个接口单独归类到「订阅」相关的入口,而是放在了个人日历列表的管理接口分类下。

核心实现逻辑

UI里的订阅操作本质是把目标日历的资源ID添加到你自己的日历列表中,两种场景的处理逻辑和UI完全一致:

  • 如果目标日历是公开状态,调用接口后会直接完成订阅,日历会立即出现在你的日历列表中
  • 如果目标日历是非公开状态,调用接口后会自动向对方发送访问申请,对方同意后你即可正常查看日历内容

调用前提

  1. 首先需要在Google Cloud控制台启用Google Calendar API,配置OAuth2授权凭证
  2. 请求的授权范围至少需要 https://www.googleapis.com/auth/calendar (修改日历的权限)

调用示例

通用HTTP请求示例

POST https://www.googleapis.com/calendar/v3/users/me/calendarList
Content-Type: application/json
Authorization: Bearer {你的OAuth2访问令牌}

{
  "id": "要订阅的日历ID/对方Google账号邮箱"
}

Python官方客户端示例

from googleapiclient.discovery import build
from google.oauth2.credentials import Credentials

# 替换为你自己的授权凭证初始化逻辑
creds = Credentials.from_authorized_user_file('token.json', ['https://www.googleapis.com/auth/calendar'])
service = build('calendar', 'v3', credentials=creds)

# 执行订阅操作
calendar_list_entry = {
    'id': 'target-user@gmail.com' # 替换为要订阅的日历ID,默认日历直接填对方邮箱即可
}
created_entry = service.calendarList().insert(body=calendar_list_entry).execute()
print(f"订阅完成,日历名称:{created_entry['summary']}")

注意事项

  • 如果要订阅的不是对方的默认主日历,需要提前拿到对应日历的具体ID才能完成订阅,不能直接使用对方的账号邮箱
  • 调用接口后如果返回404错误,说明你输入的日历ID不存在,或者对方没有将该日历设置为可被搜索/申请访问

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:48:01