SuperAPI AI 工具集

google-calendar-automation

办公与效率

查看项目

更新于 10-15 11:27

技能介绍

用途

Google Calendar Automation 是一个基于 Rube MCP(Composio)的技能,用于自动化 Google Calendar 的各类工作流,包括事件创建、日程安排、可用性检查、参会者管理以及日历浏览。它通过 Composio 的 Google Calendar 工具包与 Google 日历交互。

主要能力

1. 创建与管理事件

用于创建、更新或删除日历事件。典型工具调用顺序为:

  • GOOGLECALENDAR_LIST_CALENDARS:识别目标日历 ID(前置步骤)
  • GOOGLECALENDAR_GET_CURRENT_DATE_TIME:获取带正确时区的当前时间(可选)
  • GOOGLECALENDAR_FIND_FREE_SLOTS:预约前检查可用性(可选)
  • GOOGLECALENDAR_CREATE_EVENT:创建事件(必需)
  • GOOGLECALENDAR_PATCH_EVENT:更新事件的特定字段
  • GOOGLECALENDAR_UPDATE_EVENT:完整替换更新事件
  • GOOGLECALENDAR_DELETE_EVENT:删除事件

关键参数:calendar_id(主日历用 'primary')、start_datetime(ISO 8601 格式 'YYYY-MM-DDTHH:MM:SS',不接受自然语言)、timezone(IANA 时区名,如 'America/New_York')、event_duration_hour(小时,0+)、event_duration_minutes(分钟,仅限 0-59)、summary(事件标题)、attendees(邮箱地址数组,非姓名)、location(地点文本)。

注意事项:分钟数最大为 59,超过 1 小时应使用 event_duration_hour;时区缩写如 'EST'、'PST' 无效;参会者仅接受邮箱地址;Google Meet 链接创建默认为 true,个人 Gmail 账户可能失败(有优雅降级);组织者默认自动加入参会者,除非设置 exclude_organizer=true。

2. 列出与搜索事件

用于查找或浏览日历事件。工具顺序:

  • GOOGLECALENDAR_LIST_CALENDARS:获取可用日历(前置)
  • GOOGLECALENDAR_FIND_EVENT:按标题/关键词和时间范围搜索(必需)
  • GOOGLECALENDAR_EVENTS_LIST:列出时间范围内的事件
  • GOOGLECALENDAR_EVENTS_INSTANCES:列出重复事件的实例

关键参数:query/q(自由文本搜索,匹配标题、描述、地点、参会者)、timeMin / timeMax(带时区偏移的 RFC3339 格式)、singleEvents(true 时展开重复事件)、orderBy('startTime' 需 singleEvents=true,或 'updated')、maxResults(每页最多 2500)。

注意事项:UTC 时间戳(以 'Z' 结尾)与本地日期不对齐,应使用本地时区偏移;省略 timeMin/timeMax 会扫描整个日历导致缓慢;响应中的 pageToken 表示有更多结果,需分页直到其消失;orderBy='startTime' 需要 singleEvents=true。

3. 管理参会者与邀请

用于添加、移除或更新事件参会者。

工具顺序:GOOGLECALENDAR_FIND_EVENT 或 GOOGLECALENDAR_EVENTS_LIST 查找事件(前置)→ GOOGLECALENDAR_PATCH_EVENT 添加参会者(替换整个参会者列表)→ GOOGLECALENDAR_REMOVE_ATTENDEE 按邮箱移除特定参会者。

关键参数:event_id(唯一标识符,非事件标题)、attendees(完整参会者邮箱列表)、attendee_email(要移除的邮箱)、send_updates('all'、'externalOnly' 或 'none')。

注意事项:event_id 是技术标识符而非标题,必须先搜索获取;PATCH_EVENT 的 attendees 字段替换整个列表,需包含现有参会者以免被删除;参会者姓名无法解析,始终使用邮箱;可用 GMAIL_SEARCH_PEOPLE 将姓名解析为邮箱。

4. 检查可用性与忙碌状态

用于查找可用时间段或检查忙碌时段。

工具顺序:GOOGLECALENDAR_LIST_CALENDARS 识别要检查的日历(前置)→ GOOGLECALENDAR_GET_CURRENT_DATE_TIME 获取当前时间(可选)→ GOOGLECALENDAR_FIND_FREE_SLOTS 查找空闲区间(必需)→ GOOGLECALENDAR_FREE_BUSY_QUERY 获取原始忙碌时段(备用)→ GOOGLECALENDAR_CREATE_EVENT 预约确认的时段。

关键参数:items(要检查的日历 ID 列表)、time_min/time_max(查询区间,省略则默认当天)、timezone(IANA 时区)、calendarExpansionMax(最多日历数 1-50)、groupExpansionMax(每组最多成员数 1-100)。

注意事项:Google Calendar freeBusy API 每次查询最多约 90 天;过长的范围或不可访问的日历会返回空或无效结果;仅至少具有 freeBusyReader 权限的日历可见;空闲时段响应可能归一化为 UTC('Z'),需检查偏移;FREE_BUSY_QUERY 需要带时区的 RFC3339 时间戳。

使用方式

前置条件

  • 必须连接 Rube MCP(RUBE_SEARCH_TOOLS 可用)
  • 通过 RUBE_MANAGE_CONNECTIONS 建立 googlecalendar 工具包的活跃连接
  • 始终先调用 RUBE_SEARCH_TOOLS 获取当前工具架构

安装设置

  1. 获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务器。无需 API 密钥,添加端点即可工作。
  2. 确认 RUBE_SEARCH_TOOLS 有响应,验证 Rube MCP 可用。
  3. 使用 toolkit googlecalendar 调用 RUBE_MANAGE_CONNECTIONS。
  4. 若连接非 ACTIVE,按返回的授权链接完成 Google OAuth。
  5. 确认连接状态为 ACTIVE 后再运行任何工作流。

常见模式

  • ID 解析:日历名 → calendar_id 通过 GOOGLECALENDAR_LIST_CALENDARS;事件标题 → event_id 通过 GOOGLECALENDAR_FIND_EVENT 或 GOOGLECALENDAR_EVENTS_LIST;参会者姓名 → 邮箱通过 GMAIL_SEARCH_PEOPLE。
  • 时区处理:始终使用 IANA 时区标识符;用 GOOGLECALENDAR_GET_CURRENT_DATE_TIME 获取用户时区的当前时间;查询本地日期事件时使用带本地偏移的时间戳而非 UTC。
  • 分页:GOOGLECALENDAR_EVENTS_LIST 返回 nextPageToken,需迭代直到其消失;GOOGLECALENDAR_LIST_CALENDARS 也分页,使用 page_token。

适用场景

适用于需要通过 AI 助手自动化管理 Google 日历日程的用户,例如批量创建与更新会议、搜索与浏览事件、管理参会者邀请、查找空闲时段并自动预约会议时间等场景。

限制与已知问题

  • 不支持自然语言日期,所有日期必须为 ISO 8601 或 RFC3339 格式。
  • UTC 时间戳与本地日期不对齐,过滤时需注意时区。
  • 事件时长分钟数最大为 59,更长时长需用小时表示。
  • 仅支持 IANA 时区标识符,'EST'、'PST' 等缩写无效。
  • 事件 ID 是不透明的,必须搜索获取,不可猜测或构造。
  • 参会者必须使用邮箱地址,姓名无法直接使用。
  • PATCH 会替换整个参会者列表。
  • Google Meet 在个人账户上可能失败(有优雅降级)。
  • 高频搜索可能触发 403/429 限流,需在调用之间节流。