谷歌日历自动化技能Skill google-calendar-automation

这个技能利用Rube MCP和Composio工具包,自动化谷歌日历的事件管理,包括创建、调度、可用性检查和参与者管理。适用于集成日历功能的应用程序开发、批量处理日程,提升工作效率。关键词:谷歌日历自动化,Rube MCP,事件创建,空闲时段查找,参与者管理,API集成,云服务工具。

GCP 0 次安装 0 次浏览 更新于 3/16/2026

名称: 谷歌日历自动化 描述: 通过Rube MCP (Composio)自动化谷歌日历事件、日程安排、可用性检查和参与者管理。程序化创建事件、查找空闲时段、管理参与者和列出日历。 要求: mcp: [rube]

通过Rube MCP的谷歌日历自动化

通过Composio的谷歌日历工具包,自动化谷歌日历工作流,包括事件创建、日程安排、可用性检查、参与者管理和日历浏览。

前提条件

  • Rube MCP必须连接(RUBE_SEARCH_TOOLS可用)
  • 通过RUBE_MANAGE_CONNECTIONS与工具包googlecalendar建立活跃的谷歌日历连接
  • 始终先调用RUBE_SEARCH_TOOLS以获取当前工具模式

设置

获取Rube MCP:在客户端配置中添加https://rube.app/mcp作为MCP服务器。无需API密钥——只需添加端点即可工作。

  1. 确认Rube MCP可用,通过验证RUBE_SEARCH_TOOLS响应
  2. 使用工具包googlecalendar调用RUBE_MANAGE_CONNECTIONS
  3. 如果连接未激活,请遵循返回的认证链接完成谷歌OAuth
  4. 在运行任何工作流前,确认连接状态显示为活跃

核心工作流

1. 创建和管理事件

使用时机:用户想要创建、更新或删除日历事件

工具序列

  1. GOOGLECALENDAR_LIST_CALENDARS - 识别目标日历ID [前提]
  2. GOOGLECALENDAR_GET_CURRENT_DATE_TIME - 获取当前时间及正确时区 [可选]
  3. GOOGLECALENDAR_FIND_FREE_SLOTS - 预订前检查可用性 [可选]
  4. GOOGLECALENDAR_CREATE_EVENT - 创建事件 [必需]
  5. GOOGLECALENDAR_PATCH_EVENT - 更新现有事件的特定字段 [替代]
  6. GOOGLECALENDAR_UPDATE_EVENT - 完整替换更新事件 [替代]
  7. GOOGLECALENDAR_DELETE_EVENT - 删除事件 [可选]

关键参数

  • calendar_id:使用’primary’表示主日历,或特定日历ID
  • start_datetime:ISO 8601格式 ‘YYYY-MM-DDTHH:MM:SS’(不接受自然语言)
  • timezone:IANA时区名称(例如’America/New_York’,不接受’EST’或’PST’)
  • event_duration_hour:小时数(0+)
  • event_duration_minutes:分钟数(0-59;切勿使用60+)
  • summary:事件标题
  • attendees:电子邮件地址数组(不接受名称)
  • location:事件位置的自由文本

常见陷阱

  • start_datetime必须是ISO 8601;自然语言如’tomorrow’被拒绝
  • event_duration_minutes最大为59;使用event_duration_hour=1代替event_duration_minutes=60
  • timezone必须是IANA标识符;缩写如’EST’、'PST’无效
  • attendees只接受电子邮件地址,不接受名称;先解析名称
  • 谷歌Meet链接创建默认为真;个人Gmail账户可能失败(优雅降级)
  • 组织者自动添加为参与者,除非exclude_organizer=true

2. 列出和搜索事件

使用时机:用户想要查找或浏览日历上的事件

工具序列

  1. GOOGLECALENDAR_LIST_CALENDARS - 获取可用日历 [前提]
  2. GOOGLECALENDAR_FIND_EVENT - 通过标题/关键词和时间边界搜索 [必需]
  3. GOOGLECALENDAR_EVENTS_LIST - 列出时间范围内的事件 [替代]
  4. GOOGLECALENDAR_EVENTS_INSTANCES - 列出重复事件的实例 [可选]

关键参数

  • query / q:自由文本搜索(匹配摘要、描述、位置、参与者)
  • timeMin:下限(RFC3339带时区偏移,例如’2024-01-01T00:00:00-08:00’)
  • timeMax:上限(RFC3339带时区偏移)
  • singleEvents:true以将重复事件扩展为实例
  • orderBy:‘startTime’(需要singleEvents=true)或’updated’
  • maxResults:每页结果数(最大2500)

常见陷阱

  • 时区警告:UTC时间戳(以’Z’结尾)不与本地日期对齐;使用本地时区偏移代替
  • 示例:'2026-01-19T00:00:00Z’在PST中覆盖2026-01-18 4pm到2026-01-19 4pm
  • 省略timeMin/timeMax扫描整个日历,可能较慢
  • 响应中的pageToken表示更多结果;分页直到缺失
  • orderBy='startTime'要求singleEvents=true

3. 管理参与者和邀请

使用时机:用户想要添加、删除或更新事件参与者

工具序列

  1. GOOGLECALENDAR_FIND_EVENTGOOGLECALENDAR_EVENTS_LIST - 查找事件 [前提]
  2. GOOGLECALENDAR_PATCH_EVENT - 添加参与者(替换整个参与者列表) [必需]
  3. GOOGLECALENDAR_REMOVE_ATTENDEE - 通过电子邮件删除特定参与者 [必需]

关键参数

  • event_id:唯一事件标识符(不透明字符串,非事件标题)
  • attendees:参与者电子邮件完整列表(PATCH替换整个列表)
  • attendee_email:要删除的电子邮件
  • send_updates:‘all’、‘externalOnly’或’none’

常见陷阱

  • event_id是技术标识符,非事件标题;始终先搜索获取ID
  • PATCH_EVENT的attendees字段替换整个列表;包括现有参与者以避免删除
  • 参与者名称无法解析;始终使用电子邮件地址
  • 在管理参与者前,使用GMAIL_SEARCH_PEOPLE解析名称到电子邮件

4. 检查可用性和繁忙状态

使用时机:用户想要查找可用时间段或检查繁忙时段

工具序列

  1. GOOGLECALENDAR_LIST_CALENDARS - 识别要检查的日历 [前提]
  2. GOOGLECALENDAR_GET_CURRENT_DATE_TIME - 获取当前时间及时区 [可选]
  3. GOOGLECALENDAR_FIND_FREE_SLOTS - 查找日历间的空闲间隔 [必需]
  4. GOOGLECALENDAR_FREE_BUSY_QUERY - 获取原始繁忙时段以计算间隙 [备用]
  5. GOOGLECALENDAR_CREATE_EVENT - 预订确认时段 [必需]

关键参数

  • items:要检查的日历ID列表(例如[‘primary’])
  • time_min/time_max:查询间隔(省略时默认为当前日期)
  • timezone:IANA时区,用于解释简单时间戳
  • calendarExpansionMax:最大日历数(1-50)
  • groupExpansionMax:每组最大成员数(1-100)

常见陷阱

  • 最大跨度约90天,受谷歌日历freeBusy API限制
  • 非常长的范围或不可访问的日历导致空/无效结果
  • 只有至少freeBusyReader访问权限的日历可见
  • 空闲时段响应可能标准化为UTC(‘Z’);检查偏移
  • GOOGLECALENDAR_FREE_BUSY_QUERY需要带时区的RFC3339时间戳

常用模式

ID解析

  • 日历名称 -> calendar_idGOOGLECALENDAR_LIST_CALENDARS枚举所有日历
  • 事件标题 -> event_idGOOGLECALENDAR_FIND_EVENTGOOGLECALENDAR_EVENTS_LIST
  • 参与者名称 -> 电子邮件GMAIL_SEARCH_PEOPLE

时区处理

  • 始终使用IANA时区标识符(例如’America/Los_Angeles’)
  • 使用GOOGLECALENDAR_GET_CURRENT_DATE_TIME获取用户时区的当前时间
  • 查询本地日期的事件时,使用带本地偏移的时间戳,非UTC
  • 示例:PST使用’2026-01-19T00:00:00-08:00’,非’2026-01-19T00:00:00Z’

分页

  • GOOGLECALENDAR_EVENTS_LIST返回nextPageToken;迭代直到缺失
  • GOOGLECALENDAR_LIST_CALENDARS也分页;使用page_token

已知陷阱

  • 自然语言日期:不支持;所有日期必须是ISO 8601或RFC3339
  • 时区不匹配:UTC时间戳不与本地日期过滤对齐
  • 时长限制event_duration_minutes最大59;使用小时表示更长时长
  • 仅IANA时区:‘EST’、‘PST’等无效;使用’America/New_York’
  • 事件ID不透明:始终搜索获取event_id;切勿猜测或构造
  • 参与者作为电子邮件:不能使用名称;用GMAIL_SEARCH_PEOPLE解析
  • PATCH替换参与者:数组中包含所有期望参与者,非仅新参与者
  • 会议限制:谷歌Meet在个人账户上可能失败(优雅降级)
  • 速率限制:高容量搜索可能触发403/429;在调用间节流

快速参考

任务 工具标识 关键参数
列出日历 GOOGLECALENDAR_LIST_CALENDARS max_results
创建事件 GOOGLECALENDAR_CREATE_EVENT start_datetime, timezone, summary
更新事件 GOOGLECALENDAR_PATCH_EVENT calendar_id, event_id, 要更新的字段
删除事件 GOOGLECALENDAR_DELETE_EVENT calendar_id, event_id
搜索事件 GOOGLECALENDAR_FIND_EVENT query, timeMin, timeMax
列出事件 GOOGLECALENDAR_EVENTS_LIST calendarId, timeMin, timeMax
重复实例 GOOGLECALENDAR_EVENTS_INSTANCES calendarId, eventId
查找空闲时段 GOOGLECALENDAR_FIND_FREE_SLOTS items, time_min, time_max, timezone
繁忙查询 GOOGLECALENDAR_FREE_BUSY_QUERY timeMin, timeMax, items
移除参与者 GOOGLECALENDAR_REMOVE_ATTENDEE event_id, attendee_email
获取当前时间 GOOGLECALENDAR_GET_CURRENT_DATE_TIME timezone
获取日历 GOOGLECALENDAR_GET_CALENDAR calendar_id