← 返回
数据分析 Key 中文

Cal.com

Interact with the Cal.com API v2 to manage scheduling, bookings, event types, availability, and calendars. Use this skill when building integrations that nee...
与 Cal.com API v2 交互,管理日程、预订、活动类型、可用性和日历。适用于构建需要调度功能的集成。
peerrich
数据分析 clawhub v1.0.0 1 版本 100000 Key: 需要
★ 0
Stars
📥 1,004
下载
💾 9
安装
1
版本
#latest

概述

Cal.com API v2

This skill provides guidance for AI agents to interact with the Cal.com API v2, enabling scheduling automation, booking management, and calendar integrations.

Base URL

All API requests should be made to:

https://api.cal.com/v2

Authentication

All API requests require authentication via Bearer token in the Authorization header:

Authorization: Bearer cal_<your_api_key>

API keys must be prefixed with cal_. You can generate API keys from your Cal.com dashboard under Settings > Developer > API Keys.

Core Concepts

Event Types

Event types define bookable meeting configurations (duration, location, availability rules). Each event type has a unique slug used in booking URLs.

Bookings

Bookings are confirmed appointments created when someone books an event type. Each booking has a unique UID for identification.

Schedules

Schedules define when a user is available for bookings. Users can have multiple schedules with different working hours.

Slots

Slots represent available time windows that can be booked based on event type configuration and user availability.

Common Operations

Check Available Slots

Before creating a booking, check available time slots:

GET /v2/slots?startTime=2024-01-15T00:00:00Z&endTime=2024-01-22T00:00:00Z&eventTypeId=123&eventTypeSlug=30min

Query parameters:

  • startTime (required): ISO 8601 start of range
  • endTime (required): ISO 8601 end of range
  • eventTypeId or eventTypeSlug: Identify the event type
  • timeZone: Timezone for slot display (default: UTC)

Response contains available slots grouped by date.

Create a Booking

POST /v2/bookings
Content-Type: application/json

{
  "start": "2024-01-15T10:00:00Z",
  "eventTypeId": 123,
  "attendee": {
    "name": "John Doe",
    "email": "john@example.com",
    "timeZone": "America/New_York"
  },
  "meetingUrl": "https://cal.com/team/meeting",
  "metadata": {}
}

Required fields:

  • start: ISO 8601 booking start time
  • eventTypeId: ID of the event type to book
  • attendee.name: Attendee's full name
  • attendee.email: Attendee's email address
  • attendee.timeZone: Attendee's timezone

Get Bookings

List bookings with optional filters:

GET /v2/bookings?status=upcoming&take=10

Query parameters:

  • status: Filter by status (upcoming, recurring, past, cancelled, unconfirmed)
  • attendeeEmail: Filter by attendee email
  • eventTypeId: Filter by event type
  • take: Number of results (max 250)
  • skip: Pagination offset

Get a Single Booking

GET /v2/bookings/{bookingUid}

Cancel a Booking

POST /v2/bookings/{bookingUid}/cancel
Content-Type: application/json

{
  "cancellationReason": "Schedule conflict"
}

Reschedule a Booking

POST /v2/bookings/{bookingUid}/reschedule
Content-Type: application/json

{
  "start": "2024-01-16T14:00:00Z",
  "reschedulingReason": "Conflict with another meeting"
}

List Event Types

GET /v2/event-types

Returns all event types for the authenticated user.

Get a Single Event Type

GET /v2/event-types/{eventTypeId}

Create an Event Type

POST /v2/event-types
Content-Type: application/json

{
  "title": "30 Minute Meeting",
  "slug": "30min",
  "lengthInMinutes": 30,
  "locations": [
    {
      "type": "integration",
      "integration": "cal-video"
    }
  ]
}

List Schedules

GET /v2/schedules

Get Default Schedule

GET /v2/schedules/default

Create a Schedule

POST /v2/schedules
Content-Type: application/json

{
  "name": "Working Hours",
  "timeZone": "America/New_York",
  "isDefault": true,
  "availability": [
    {
      "days": [1, 2, 3, 4, 5],
      "startTime": "09:00",
      "endTime": "17:00"
    }
  ]
}

Days are 0-indexed (0 = Sunday, 1 = Monday, etc.).

Get Current User

GET /v2/me

Returns the authenticated user's profile information.

Team and Organization Endpoints

For team bookings and organization management, use the organization-scoped endpoints:

List Organization Teams

GET /v2/organizations/{orgId}/teams

Get Team Event Types

GET /v2/organizations/{orgId}/teams/{teamId}/event-types

Create Team Booking

Team event types support different scheduling modes:

  • COLLECTIVE: All team members must attend
  • ROUND_ROBIN: Distributes bookings among team members

Webhooks

Configure webhooks to receive real-time notifications:

List Webhooks

GET /v2/webhooks

Create a Webhook

POST /v2/webhooks
Content-Type: application/json

{
  "subscriberUrl": "https://your-app.com/webhook",
  "triggers": ["BOOKING_CREATED", "BOOKING_CANCELLED"],
  "active": true
}

Available triggers:

  • BOOKING_CREATED
  • BOOKING_CANCELLED
  • BOOKING_RESCHEDULED
  • BOOKING_CONFIRMED
  • MEETING_STARTED
  • MEETING_ENDED

Calendar Integration

List Connected Calendars

GET /v2/calendars

Check Busy Times

GET /v2/calendars/busy-times?startTime=2024-01-15T00:00:00Z&endTime=2024-01-22T00:00:00Z

Error Handling

The API returns standard HTTP status codes:

  • 200: Success
  • 201: Created
  • 400: Bad Request (invalid parameters)
  • 401: Unauthorized (invalid or missing API key)
  • 403: Forbidden (insufficient permissions)
  • 404: Not Found
  • 422: Unprocessable Entity (validation error)
  • 500: Internal Server Error

Error responses include a message field:

{
  "status": "error",
  "message": "Booking not found"
}

Rate Limiting

The API implements rate limiting. If you exceed the limit, you'll receive a 429 Too Many Requests response. Implement exponential backoff for retries.

Pagination

List endpoints support pagination via take and skip parameters:

  • take: Number of items to return (default: 10, max: 250)
  • skip: Number of items to skip

Best Practices

  1. Always check slot availability before creating bookings
  2. Store booking UIDs for future reference (cancel, reschedule)
  3. Handle timezone conversions carefully - always use ISO 8601 format
  4. Implement webhook handlers for real-time booking updates
  5. Cache event type data to reduce API calls
  6. Use appropriate error handling for all API calls

Additional Resources

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-03-29 09:17 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

data-analysis

Stock Analysis

udiedrichsen
{"answer":"基于雅虎财经数据,分析股票与加密货币。支持投资组合管理、自选股预警、股息分析、8维评分、热门趋势扫描及传闻/早期信号探测。适用于股票分析、持仓追踪、财报异动、加密监控、热门股追踪或提前发掘非主流传闻。"}
★ 269 📥 56,891
data-analysis

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 366 📥 139,963
data-analysis

A股量化 AkShare

mbpz
A股量化数据分析工具,基于AkShare库获取A股行情、财务数据、板块信息等。用于回答关于A股股票查询、行情数据、财务分析、选股等问题。
★ 162 📥 59,674