关于 calendly-automation
面向 Calendly 自动化的技能,通过 Rube MCP 和 Composio 工具包管理活动、预约者、排期链接及组织操作。适用于安排会议和维护 Calendly 组织的用户。
主要功能
- 01查看和筛选已安排活动
- 02查询活动预约者
- 03生成排期链接
- 04查询可用时段
- 05管理组织邀请
适用场景
- 01查看指定日期范围的活动
- 02核对活动预约者信息
- 03为活动类型创建预约链接
- 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 密钥——添加端点即可使用。
- 确认
RUBE_SEARCH_TOOLS有响应,以验证 Rube MCP 已就绪 - 调用
RUBE_MANAGE_CONNECTIONS并指定工具包calendly - 如果连接状态不是 ACTIVE,请通过返回的授权链接完成 Calendly OAuth
- 运行任何工作流前,确认连接状态为 ACTIVE
核心工作流
1. 列出和查看已安排的事件
适用场景:用户想查看即将举行、已结束或经过筛选的 Calendly 事件
工具调用顺序:
CALENDLY_GET_CURRENT_USER- 获取已验证用户 URI 和组织 URI [前提条件]CALENDLY_LIST_EVENTS- 按用户、组织或群组范围列出事件 [必需]CALENDLY_GET_EVENT- 获取指定 UUID 事件的详细信息 [可选]
关键参数:
user:完整的 Calendly API URI(例如https://api.calendly.com/users/{uuid})——不能是"me"organization:用于组织范围查询的完整组织 URIstatus:"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_USERinvitee_email是筛选条件,不是范围;仍需指定user、organization或group之一- 分页使用
count和page_token;循环获取结果,直到没有page_token,才能拿到完整结果 - 查询组织或群组范围时可能需要管理员权限
2. 管理事件受邀者
适用场景:用户想查看哪些人已预约事件,或获取受邀者详情
工具调用顺序:
CALENDLY_LIST_EVENTS- 查找目标事件 [前提条件]CALENDLY_LIST_EVENT_INVITEES- 列出指定事件的所有受邀者 [必需]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. 创建预约链接并检查可用时间
使用场景:用户想要生成预约链接或查看可用时间段
工具调用顺序:
CALENDLY_GET_CURRENT_USER- 获取用户 URI [前置条件]CALENDLY_LIST_USER_S_EVENT_TYPES- 列出可用的事件类型 [必需]CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES- 检查某种事件类型的可用时间段 [可选]CALENDLY_CREATE_SCHEDULING_LINK- 生成一次性预约链接 [必需]CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES- 查看用户的可用时间安排 [可选]
关键参数:
owner:事件类型 URI(例如:https://api.calendly.com/event_types/{uuid})owner_type:"EventType"(默认值)max_event_count:一次性链接必须恰好设为1start_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 事件
工具调用顺序:
CALENDLY_LIST_EVENTS- 查找要取消的事件 [前置条件]CALENDLY_GET_EVENT- 取消前确认事件详情 [前置条件]CALENDLY_LIST_EVENT_INVITEES- 检查会受到影响的受邀者 [可选]CALENDLY_CANCEL_EVENT- 取消事件 [必需]
关键参数:
uuid:要取消的事件 UUIDreason:可选的取消原因(可能会包含在发送给受邀者的通知中)
注意事项:
- 取消操作不可撤销——调用前务必与用户确认
- 取消操作可能会向受邀者发送通知
- 只能取消处于活动状态的事件;已取消的事件会返回错误
- 执行
CALENDLY_CANCEL_EVENT前,务必先获得用户的明确确认
5. 管理组织和邀请
使用场景:用户想要邀请成员、管理组织或处理组织邀请
工具调用顺序:
CALENDLY_GET_CURRENT_USER- 获取用户和组织上下文 [前置条件]CALENDLY_GET_ORGANIZATION- 获取组织详情 [可选]CALENDLY_LIST_ORGANIZATION_INVITATIONS- 检查现有邀请 [可选]CALENDLY_CREATE_ORGANIZATION_INVITATION- 发送组织邀请 [必需]CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION- 撤销待处理的邀请 [可选]CALENDLY_REMOVE_USER_FROM_ORGANIZATION- 移除成员 [可选]
关键参数:
uuid:组织 UUIDemail:要邀请用户的电子邮件地址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_USER | uuid |
| 列出事件 | CALENDLY_LIST_EVENTS | user、status、min_start_time |
| 获取事件详情 | CALENDLY_GET_EVENT | uuid |
| 取消事件 | CALENDLY_CANCEL_EVENT | uuid、reason |
| 列出受邀者 | CALENDLY_LIST_EVENT_INVITEES | uuid、status、email |
| 获取受邀者 | CALENDLY_GET_EVENT_INVITEE | event_uuid、invitee_uuid |
| 列出事件类型 | CALENDLY_LIST_USER_S_EVENT_TYPES | user、active |
| 获取事件类型 | CALENDLY_GET_EVENT_TYPE | uuid |
| 检查可用性 | CALENDLY_LIST_EVENT_TYPE_AVAILABLE_TIMES | 事件类型 URI、start_time、end_time |
| 创建日程安排链接 | CALENDLY_CREATE_SCHEDULING_LINK | owner、max_event_count |
| 列出可用性日程 | CALENDLY_LIST_USER_AVAILABILITY_SCHEDULES | 用户 URI |
| 获取组织 | CALENDLY_GET_ORGANIZATION | uuid |
| 邀请加入组织 | CALENDLY_CREATE_ORGANIZATION_INVITATION | uuid、email |
| 列出组织邀请 | CALENDLY_LIST_ORGANIZATION_INVITATIONS | uuid、status |
| 撤销组织邀请 | CALENDLY_REVOKE_USER_S_ORGANIZATION_INVITATION | 组织 UUID、邀请 UUID |
| 从组织中移除 | CALENDLY_REMOVE_USER_FROM_ORGANIZATION | 成员资格 UUID |
由 Composio 提供支持
评论
支持 Markdown