mcpField
C
calendly-automation

calendly-automation

github.com/sickn33生产力48.9k116 次安装今天更新
代码仓库

关于 calendly-automation

calendly-automation 是通过 Rube MCP 与 Composio Calendly 工具包执行日程和组织管理的技能,适用于需要处理 Calendly 事件、预约者及可用时间的工作流。它说明了工具调用顺序、URI 与分页要求,并强调写入操作的权限和确认边界。

主要功能

  1. 01列出事件并查看预约者
  2. 02查询活动类型与可用时段
  3. 03创建单次预约链接
  4. 04管理组织邀请与成员
  5. 05按明确流程取消事件

适用场景

  1. 01查看指定范围内的预约事件
  2. 02查询某活动类型的可用时间
  3. 03为活动类型生成预约链接
  4. 04处理组织邀请或取消事件

MCP 相关

通过客户端连接 Rube MCP(`https://rube.app/mcp`),并使用 Composio 的 Calendly 工具包。执行前需确认 Calendly 连接状态并获取最新工具架构。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill calendly-automation

安装后在 Claude Code 中输入/calendly-automation确认已加载。

详细介绍

通过 Rube MCP 自动化 Calendly

通过 Composio 的 Calendly 工具包自动执行 Calendly 操作,包括列出活动、管理受邀者、创建日程安排链接、查询空闲时间以及管理组织。

先决条件

  • 必须已连接 Rube MCP(可使用 RUBE_SEARCH_TOOLS)
  • 必须通过 RUBE_MANAGE_CONNECTIONS 建立有效的 Calendly 连接,工具包为 calendly
  • 始终先调用 RUBE_SEARCH_TOOLS,以获取当前工具架构
  • 许多操作需要用户的 Calendly URI,可通过 CALENDLY_GET_CURRENT_USER 获取

设置

获取 Rube MCP:在客户端配置中将 https://rube.app/mcp 添加为 MCP 服务。仍需关联账户/OAuth 并授予所需权限范围;仅添加端点不会授予 Calendly 访问权限。只有在获得授权后,才能添加或更改主机配置。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 是否可用
  2. 使用工具包 calendly 调用 RUBE_MANAGE_CONNECTIONS
  3. 如果连接状态不是 ACTIVE,请使用返回的授权链接完成 Calendly OAuth
  4. 运行任何工作流前,确认连接状态为 ACTIVE

核心工作流

执行写入操作前,先确认实际用户/组织及其时区。列出信息并不代表获得发送邀请、移除成员、创建日程安排链接或取消活动的授权;每项请求的变更都必须与其目标及通知影响对应。读取当前架构和返回的分页字段;此静态工具名称列表可能会有变动。对于结果不确定的写入操作,不要重试,先检查现有状态。

1. 列出和查看已安排的活动

使用场景:用户想查看即将举行、已结束或经过筛选的 Calendly 活动

工具调用顺序:

  1. CALENDLY_GET_CURRENT_USER - 获取已验证用户 URI 和组织 URI[先决条件]
  2. CALENDLY_LIST_EVENTS - 按用户、组织或群组范围列出活动[必需]
  3. CALENDLY_GET_EVENT - 获取特定活动的详细信息(按 UUID 查询)[可选]

关键参数:

  • user:完整的 Calendly API URI(例如 https://api.calendly.com/users/{uuid}),不能是 "me"
  • organization:用于组织范围查询的完整组织 URI
  • status:"active" 或 "canceled"
  • min_start_time / max_start_time:UTC 时间戳(例如 2024-01-01T00:00:00.000000Z)
  • invitee_email:按受邀者邮箱筛选活动(仅为筛选条件,不是范围)
  • sort:"start_time:asc" 或 "start_time:desc"
  • count:每页结果数(默认值为 20)
  • page_token:上一条响应中的分页令牌

注意事项:

  • 必须且只能提供 user、organization 或 group 中的一个;省略或组合多个范围都会导致失败
  • user 参数必须使用完整 API URI,不能是 "me";请先使用 CALENDLY_GET_CURRENT_USER
  • invitee_email 是筛选条件,不是范围;仍需指定 user、organization 或 group 之一
  • 分页使用 count + page_token;循环获取结果,直到没有 page_token,才能拿到完整结果
  • 按组织或群组范围查询可能需要管理员权限
2. 管理活动受邀者

使用场景:用户想查看活动的预约者或获取受邀者详情

工具调用顺序:

  1. CALENDLY_LIST_EVENTS - 查找目标活动[先决条件]
  2. CALENDLY_LIST_EVENT_INVITEES - 列出特定活动的所有受邀者[必需]
  3. CALENDLY_GET_EVENT_INVITEE - 获取单个受邀者的详细信息[可选]

关键参数:

  • uuid:活动 UUID(用于 LIST_EVENT_INVITEES)
  • event_uuid + invitee_uuid:调用 GET_EVENT_INVITEE 时两者均为必需
  • email:按邮箱地址筛选受邀者
  • status:"active" 或 "canceled"
  • sort:"created_at:asc" 或 "created_at:desc"
  • count:每页结果数(默认值为 20)

注意事项:

  • CALENDLY_LIST_EVENT_INVITEES 的 uuid 参数是活动 UUID,而不是受邀者 UUID
  • 使用 page_token 翻页,直到没有令牌,才能获取完整的受邀者列表
  • 默认不包含已取消的受邀者;使用 status: "canceled" 查看他们
3. 创建预约链接并检查可用时间

使用场景:用户想要生成预约链接或查看可用时间段

工具调用顺序:

  1. CALENDLY_GET_CURRENT_USER - 获取用户 URI [前置条件]
  2. CALENDLY_LIST_USER_S_EVENT_TYPES - 列出可用的事件类型 [必需]
  3. CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES - 检查某种事件类型的可用时间段 [可选]
  4. CALENDLY_CREATE_SCHEDULING_LINK - 生成一次性预约链接 [必需]
  5. CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES - 查看用户的可用时间安排 [可选]

关键参数:

  • owner:事件类型 URI(例如:https://api.calendly.com/event_types/{uuid})
  • owner_type:"EventType"(默认值)
  • max_event_count:一次性链接必须恰好设为 1
  • start_time / end_time:用于查询可用时间的 UTC 时间戳(最长 7 天)
  • active:用于筛选启用或停用事件类型的布尔值
  • user:用于列出事件类型的用户 URI

注意事项:

  • 如果令牌没有相应权限或所有者 URI 无效,CALENDLY_CREATE_SCHEDULING_LINK 可能返回 403 错误
  • CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES 要求使用 UTC 时间戳,且时间范围最长为 7 天;较长的查询需拆分进行
  • 可用时间结果不会分页——所有结果都会在一次响应中返回
  • 事件类型 URI 必须是完整的 API URI(例如:https://api.calendly.com/event_types/...)
4. 取消事件

使用场景:用户想要取消已安排的 Calendly 事件

工具调用顺序:

  1. CALENDLY_LIST_EVENTS - 查找要取消的事件 [前置条件]
  2. CALENDLY_GET_EVENT - 取消前确认事件详情 [前置条件]
  3. CALENDLY_LIST_EVENT_INVITEES - 检查会受到影响的受邀者 [可选]
  4. CALENDLY_CANCEL_EVENT - 取消事件 [必需]

关键参数:

  • uuid:要取消的事件 UUID
  • reason:可选的取消原因(可能会包含在发送给受邀者的通知中)

注意事项:

  • 取消操作不可撤销——调用前务必与用户确认
  • 取消操作可能会向受邀者发送通知
  • 只能取消处于活动状态的事件;已取消的事件会返回错误
  • 执行 CALENDLY_CANCEL_EVENT 前,务必先获得用户的明确确认
5. 管理组织和邀请

使用场景:用户想要邀请成员、管理组织或处理组织邀请

工具调用顺序:

  1. CALENDLY_GET_CURRENT_USER - 获取用户和组织上下文 [前置条件]
  2. CALENDLY_GET_ORGANIZATION - 获取组织详情 [可选]
  3. CALENDLY_LIST_ORGANIZATION_INVITATIONS - 检查现有邀请 [可选]
  4. CALENDLY_CREATE_ORGANIZATION_INVITATION - 发送组织邀请 [必需]
  5. CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION - 撤销待处理的邀请 [可选]
  6. CALENDLY_REMOVE_USER_FROM_ORGANIZATION - 移除成员 [可选]

关键参数:

  • uuid:组织 UUID
  • email:要邀请用户的电子邮件地址
  • status:按 "pending"、"accepted" 或 "declined" 筛选邀请

注意事项:

  • 只有组织所有者或管理员可以管理邀请和移除成员;其他人会收到授权错误
  • 同一电子邮件地址不能有重复的有效邀请——请先检查现有邀请
  • 无法通过 CALENDLY_REMOVE_USER_FROM_ORGANIZATION 移除组织所有者
  • 邀请状态包括待处理、已接受、已拒绝和已撤销——请妥善处理每种状态

常见模式

ID 解析

Calendly 使用完整的 API URI 作为标识符,而不是简单 ID:

  • 当前用户 URI:CALENDLY_GET_CURRENT_USER 返回 resource.uri(例如:https://api.calendly.com/users/{uuid})
  • 组织 URI:可在当前用户响应的 resource.current_organization 中找到
  • 事件 UUID:从事件 URI 或列表响应中提取
  • 事件类型 URI:来自 CALENDLY_LIST_USER_S_EVENT_TYPES 响应

重要提示:列表或筛选端点的用户参数绝不能使用 "me"。请务必先解析出完整 URI。

分页

大多数 Calendly 列表端点使用基于令牌的分页:

  • 使用 count 设置每页大小(默认 20)
  • 从 pagination.next_page_token 中获取 page_token 并持续跟进,直到该字段不存在
  • 使用 field:direction 格式排序(例如 start_time:asc、created_at:desc)
时间处理
  • 所有时间戳必须使用 UTC 格式:yyyy-MM-ddTHH:mm:ss.ffffffZ
  • 使用 min_start_time / max_start_time 对事件进行日期范围筛选
  • 可用时间查询的最大范围为 7 天;更长的搜索需拆分为多次调用

已知陷阱

URI 格式
  • 所有实体引用都使用完整的 Calendly API URI(例如 https://api.calendly.com/users/{uuid})
  • 在需要 URI 的地方绝不要传入裸 UUID,也绝不要向列表端点传入 "me"
  • 当工具需要 UUID 参数时(例如 CALENDLY_GET_EVENT),从 URI 中提取 UUID
权限范围要求
  • CALENDLY_LIST_EVENTS 需要且仅需要一个范围(用户、组织或组)——不多不少
  • 以组织/组为范围的查询可能需要管理员权限
  • 令牌范围决定可执行哪些操作;403 错误表示权限不足
数据关系
  • 事件包含受邀者(进行预订的参与者)
  • 事件类型定义预约页面(时长、可用性规则)
  • 组织包含用户和组
  • 预约链接绑定到事件类型,而非直接绑定到事件
速率限制
  • Calendly API 有速率限制;避免对大型数据集进行紧密循环
  • 负责任地分页,并为批量操作添加延迟

快速参考

任务工具 Slug关键参数
获取当前用户CALENDLY_GET_CURRENT_USER(无)
通过 UUID 获取用户CALENDLY_GET_USERuuid
列出事件CALENDLY_LIST_EVENTSuser、status、min_start_time
获取事件详情CALENDLY_GET_EVENTuuid
取消事件CALENDLY_CANCEL_EVENTuuid、reason
列出受邀者CALENDLY_LIST_EVENT_INVITEESuuid、status、email
获取受邀者CALENDLY_GET_EVENT_INVITEEevent_uuid、invitee_uuid
列出事件类型CALENDLY_LIST_USER_S_EVENT_TYPESuser、active
获取事件类型CALENDLY_GET_EVENT_TYPEuuid
检查可用性CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES事件类型 URI、start_time、end_time
创建预约链接CALENDLY_CREATE_SCHEDULING_LINKowner、max_event_count
列出可用性计划CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES用户 URI
获取组织CALENDLY_GET_ORGANIZATIONuuid
邀请加入组织CALENDLY_CREATE_ORGANIZATION_INVITATIONuuid、email
列出组织邀请CALENDLY_LIST_ORGANIZATION_INVITATIONSuuid、status
撤销组织邀请CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION组织 UUID、邀请 UUID
从组织中移除CALENDLY_REMOVE_USER_FROM_ORGANIZATION成员资格 UUID

何时使用

本技能适用于执行概述中描述的工作流或操作。

示例

用户请求:

通过 Rube MCP(Composio)自动化 Calendly 预约、事件管理、受邀者跟踪、可用性检查和组织管理。

限制

  • 仅当任务明确符合上述范围时才使用本技能。
  • 不要将输出视为特定环境验证、测试或专家审查的替代品。
  • 如果缺少必要输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown