mcpField
C
calendly-automation

calendly-automation

github.com/davepoon生产力3.7k120 次安装今天更新
代码仓库

关于 calendly-automation

面向 Calendly 自动化的技能,通过 Rube MCP 和 Composio 工具包管理活动、预约者、排期链接及组织操作。适用于安排会议和维护 Calendly 组织的用户。

主要功能

  1. 01查看和筛选已安排活动
  2. 02查询活动预约者
  3. 03生成排期链接
  4. 04查询可用时段
  5. 05管理组织邀请

适用场景

  1. 01查看指定日期范围的活动
  2. 02核对活动预约者信息
  3. 03为活动类型创建预约链接
  4. 04邀请成员加入组织

MCP 相关

通过 Rube MCP 使用 Composio 的 Calendly 工具包;运行前需建立 Calendly 连接并完成授权。

安装

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

$npx skills add https://github.com/davepoon/buildwithclaude --skill calendly-automation

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

详细介绍

通过 Rube MCP 自动化 Calendly

通过 Composio 的 Calendly 工具包自动执行 Calendly 操作,包括列出事件、管理受邀者、创建预约链接、查询可用时间和管理组织。

工具包文档:composio.dev/toolkits/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 服务。无需 API 密钥——添加端点即可使用。

  1. 确认 RUBE_SEARCH_TOOLS 有响应,以验证 Rube MCP 已就绪
  2. 调用 RUBE_MANAGE_CONNECTIONS 并指定工具包 calendly
  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 参数时,请从 URI 中提取 UUID(例如,CALENDLY_GET_EVENT)
作用域要求
  • 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

由 Composio 提供支持

评论

支持 Markdown