Cal.com API:管理日程安排和预订 - Openclaw Skills
作者:互联网
2026-03-29
什么是 Cal.com API 集成?
该技能提供了一个与 Cal.com 平台交互的编程接口,允许无缝管理调度工作流。它使开发人员和 AI 代理能够检索活动类型、检查可用时段,并处理从创建到取消的预订全生命周期。
该集成专为灵活性而设计,同时支持官方 Cal.com 云 API 和自托管实例。通过将其纳入您的 Openclaw Skills 库,您可以自动化日历协调,并将调度数据直接集成到您的开发环境或自定义应用程序中。
下载入口:https://github.com/openclaw/skills/tree/main/skills/mrgoodb/cal-com
安装与下载
1. ClawHub CLI
从源直接安装技能的最快方式。
npx clawhub@latest install cal-com
2. 手动安装
将技能文件夹复制到以下位置之一
全局模式~/.openclaw/skills/
工作区
/skills/
优先级:工作区 > 本地 > 内置
3. 提示词安装
将此提示词复制到 OpenClaw 即可自动安装。
请帮我使用 Clawhub 安装 cal-com。如果尚未安装 Clawhub,请先安装(npm i -g clawhub)。
Cal.com API 集成 应用场景
- 根据 AI 代理逻辑或外部触发器自动安排会议。
- 构建自定义仪表板以跟踪即将到来、过去或已取消的预订。
- 在多个平台或内部数据库之间同步可用性。
- 通过自动 Webhook 注册处理实时预订更新。
- 以编程方式管理重新安排请求以处理日历冲突。
- 该技能使用存储在本地配置文件中的安全密钥通过 Cal.com API 进行身份验证。
- 它查询 API 以获取特定资源,如活动类型、现有预订或可用时间段。
- 对于预订操作,它发送 POST、PATCH 或 DELETE 请求以管理服务器上的预约数据。
- 它处理 JSON 响应以提供可操作的数据,如预订 ID、开始时间以及参与者详细信息。
- 它允许配置 Webhook 以活动触发器,如预订确认或拒绝。
Cal.com API 集成 配置指南
- 导航至 设置 > 开发者 > API 密钥,从 Cal.com 获取您的 API 密钥。
- 将您的密钥保存在本地预期的配置路径中:
mkdir -p ~/.config/calcom
echo "your_api_key_here" > ~/.config/calcom/api_key
- 通过测试与您的个人资料的连接来验证设置:
CAL_KEY=$(cat ~/.config/calcom/api_key)
CAL_URL="https://api.cal.com/v1"
curl -s "${CAL_URL}/me?apiKey=${CAL_KEY}" | jq
Cal.com API 集成 数据架构与分类体系
该技能在 Openclaw Skills 中管理多个核心实体的数据:
| 实体 | 关键元数据 | 描述 |
|---|---|---|
| 活动类型 | id, title, slug, length | 不同会议时长和类型的模板。 |
| 预订 | id, startTime, endTime, status | 包含相关参与者数据的特定预约。 |
| 可用性 | dateFrom, dateTo, slots | 用户可进行会议的时间间隔。 |
| 日程表 | id, name, timeZone | 用户定义的工作时间和可用性集合。 |
| Webhook | subscriberUrl, eventTriggers | 实时事件通知的配置。 |
name: cal-com
description: Manage Cal.com scheduling - list bookings, event types, and availability. Use when you need to check schedules, manage booking links, or automate meeting scheduling with Cal.com's API.
Cal.com API
Manage scheduling and bookings via Cal.com API.
Setup
- Get API key: Cal.com → Settings → Developer → API Keys
- Store key:
mkdir -p ~/.config/calcom
echo "cal_live_XXXXX" > ~/.config/calcom/api_key
API Basics
CAL_KEY=$(cat ~/.config/calcom/api_key)
CAL_URL="https://api.cal.com/v1" # or self-hosted URL
curl -s "${CAL_URL}/me?apiKey=${CAL_KEY}" | jq
List Event Types
curl -s "${CAL_URL}/event-types?apiKey=${CAL_KEY}" | jq '.event_types[] | {id, title, slug, length}'
Get Event Type
EVENT_TYPE_ID="123"
curl -s "${CAL_URL}/event-types/${EVENT_TYPE_ID}?apiKey=${CAL_KEY}" | jq
List Bookings
curl -s "${CAL_URL}/bookings?apiKey=${CAL_KEY}" | jq '.bookings[] | {id, title, startTime, endTime, status}'
Get Booking
BOOKING_ID="123"
curl -s "${CAL_URL}/bookings/${BOOKING_ID}?apiKey=${CAL_KEY}" | jq
Filter Bookings by Status
# upcoming, past, cancelled, recurring
curl -s "${CAL_URL}/bookings?apiKey=${CAL_KEY}&status=upcoming" | jq '.bookings'
Create Booking
curl -s -X POST "${CAL_URL}/bookings?apiKey=${CAL_KEY}" r
-H "Content-Type: application/json" r
-d '{
"eventTypeId": 123,
"start": "2024-01-15T10:00:00.000Z",
"end": "2024-01-15T10:30:00.000Z",
"responses": {
"name": "John Doe",
"email": "john@example.com",
"notes": "Looking forward to our meeting"
},
"timeZone": "Europe/Paris",
"language": "en"
}' | jq
Cancel Booking
curl -s -X DELETE "${CAL_URL}/bookings/${BOOKING_ID}?apiKey=${CAL_KEY}" r
-H "Content-Type: application/json" r
-d '{"cancellationReason": "Schedule conflict"}' | jq
Reschedule Booking
curl -s -X PATCH "${CAL_URL}/bookings/${BOOKING_ID}?apiKey=${CAL_KEY}" r
-H "Content-Type: application/json" r
-d '{
"start": "2024-01-16T14:00:00.000Z",
"end": "2024-01-16T14:30:00.000Z"
}' | jq
List Availabilities
curl -s "${CAL_URL}/availability?apiKey=${CAL_KEY}&eventTypeId=123&dateFrom=2024-01-15&dateTo=2024-01-22" | jq
Get Available Slots
curl -s "${CAL_URL}/slots?apiKey=${CAL_KEY}&eventTypeId=123&startTime=2024-01-15&endTime=2024-01-22&timeZone=Europe/Paris" | jq '.slots'
List Schedules
curl -s "${CAL_URL}/schedules?apiKey=${CAL_KEY}" | jq '.schedules[] | {id, name, timeZone}'
Webhooks
List:
curl -s "${CAL_URL}/webhooks?apiKey=${CAL_KEY}" | jq
Create:
curl -s -X POST "${CAL_URL}/webhooks?apiKey=${CAL_KEY}" r
-H "Content-Type: application/json" r
-d '{
"subscriberUrl": "https://example.com/webhook",
"eventTriggers": ["BOOKING_CREATED", "BOOKING_CANCELLED"],
"active": true
}' | jq
Event Triggers
BOOKING_CREATEDBOOKING_CANCELLEDBOOKING_RESCHEDULEDBOOKING_CONFIRMEDBOOKING_REJECTED
Self-Hosted
For self-hosted Cal.com, change base URL:
CAL_URL="https://your-cal-instance.com/api/v1"
Rate Limits
- Default: No published limits (be reasonable)
- Self-hosted: Depends on your infrastructure
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
信号管道:自动化营销情报工具 - Openclaw Skills
技能收益追踪器:监控 Openclaw 技能并实现变现
AI 合规准备就绪度:评估与治理工具 - Openclaw Skills
FOSMVVM ServerRequest 测试生成器:自动化 API 测试 - Openclaw Skills
酒店搜索器:AI 赋能的住宿与位置情报 - Openclaw Skills
Dub 链接 API:程序化链接管理 - Openclaw Skills
IntercomSwap:P2P BTC 与 USDT 跨链兑换 - Openclaw Skills
spotplay:macOS 原生 Spotify 播放控制 - Openclaw Skills
DeepSeek OCR:AI驱动的图像文本识别 - Openclaw Skills
Web Navigator:自动化网页研究与浏览 - Openclaw Skills
AI精选
