Cal.com MCP
oficialConecta clientes de IA con la programación de Cal.com a través del Protocolo de Contexto del Modelo usando el servidor alojado en mcp.cal.com o una instancia local.
¿Qué puedes hacer con Cal Com MCP?
- Gestionar reservas — Pídele a tu asistente que liste, cree, reprograme o cancele reservas usando herramientas como
get_bookingsycreate_booking. - Configurar tipos de evento — Crea o actualiza tipos de evento, como un "Quick Chat" de 30 minutos, mediante
create_event_typeyupdate_event_type. - Consultar disponibilidad — Consulta franjas horarias libres o períodos ocupados de calendarios conectados con
get_availabilityyget_busy_times. - Manejar horarios — Crea, actualiza u obtén tu horario predeterminado usando
create_scheduleyget_default_schedule. - Gestionar equipos y membresías — Invita miembros o ajusta roles de equipo a través de
create_team_inviteyupdate_team_membership.
Documentación
Servidor MCP
Conecta clientes de IA a la programación de Cal.com a través del Protocolo de Contexto de Modelo usando el servidor alojado en mcp.cal.com o una instancia local.
El servidor MCP de Cal.com envuelve la API v2 de Cal.com en el Protocolo de Contexto de Modelo, permitiéndote gestionar reservas, tipos de eventos, horarios y más mediante lenguaje natural en cualquier cliente compatible con MCP.
Servidor alojado (mcp.cal.com)
La forma más rápida de empezar es conectar tu cliente MCP directamente a mcp.cal.com. El servidor alojado utiliza transporte HTTP Streamable con autenticación OAuth 2.1 — tu cliente maneja el flujo de autorización automáticamente.
Conecta tu cliente
Apunta tu cliente MCP a la URL del servidor alojado:
https://mcp.cal.com/mcp
Cuando te conectes por primera vez, tu cliente te guiará a través de un flujo de autorización OAuth donde concedes al servidor acceso a tu cuenta de Cal.com. No se necesita clave de API.
Añade lo siguiente a tu `claude_desktop_config.json`:* **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
* **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Abre **Configuración → MCP** y añade un nuevo servidor con la URL `https://mcp.cal.com/mcp`, o añádelo a tu `.cursor/mcp.json`:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Añade el servidor a tu configuración MCP de VS Code:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Añade lo siguiente a tu `~/.fx/mcp.json`:
```json theme={null}
{
"mcp": {
"calcom": {
"type": "http",
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Luego ejecuta `/mcp auth calcom --open` en fx para autorizar. Consulta la
[documentación MCP de fx](https://fx.sh/docs/capabilities/mcp) para transportes,
opciones de autenticación y descubrimiento de herramientas.
Servidor autoalojado (stdio)
Si prefieres ejecutar el servidor localmente, puedes usar transporte stdio con una clave de API. Esto es útil para desarrollo o cuando quieres control total sobre el servidor.
Requisitos previos
- Node.js >= 18
- Una clave de API de Cal.com — genera una en Configuración → Desarrollador → Claves de API
Conecta tu cliente
Añade lo siguiente a la configuración de tu cliente MCP:
{
"mcpServers": {
"calcom": {
"command": "npx",
"args": ["@calcom/cal-mcp@latest"],
"env": {
"CAL_API_KEY": "cal_live_xxxx"
}
}
}
}
Reemplaza cal_live_xxxx con tu clave de API real.
Advertencia
Nunca compartas ni confirmes tu clave de API. Si se expone, rótala inmediatamente en tu configuración de Cal.com.
Conjuntos de herramientas
Puedes restringir qué herramientas registra el servidor para una sesión añadiendo un parámetro de consulta toolsets a la URL del servidor:
https://mcp.cal.com/mcp?toolsets=bookings,availability
Conjuntos de herramientas válidos: profile, event-types, bookings, availability, schedules, calendars, teams, organizations, routing-forms, catalog (las metaherramientas find_api_operation / describe_api_operation / call_api_operation). Los nombres desconocidos se rechazan con 400 invalid_request. Omitir el parámetro registra todas las herramientas; las herramientas locales get_app_link y search_docs siempre se registran independientemente de la selección. Para un servidor stdio autoalojado, establece MCP_TOOLSETS en su lugar.
Herramientas disponibles
El servidor MCP expone 63 herramientas organizadas por categoría:
Enlaces de aplicación
| Herramienta | Descripción |
|---|---|
get_app_link | Construye una URL que abre una reserva, tipo de evento, horario, equipo, formulario de enrutamiento o página de configuración en la aplicación web de Cal.com |
Documentación
| Herramienta | Descripción |
|---|---|
search_docs | Busca en la documentación del producto Cal.com; devuelve páginas clasificadas con un extracto del mejor resultado |
Perfil de usuario
| Herramienta | Descripción |
|---|---|
get_me | Obtén tu perfil de usuario autenticado |
update_me | Actualiza tu perfil de usuario |
Tipos de eventos
| Herramienta | Descripción |
|---|---|
get_event_types | Lista todos los tipos de eventos |
get_event_type | Obtén un tipo de evento específico por ID |
create_event_type | Crea un nuevo tipo de evento |
update_event_type | Actualiza un tipo de evento |
delete_event_type | Elimina un tipo de evento |
get_event_type_settings | Obtén la configuración de un tipo de evento |
get_event_type_history | Obtén el historial de cambios de un tipo de evento |
get_scheduling_config | Obtén la configuración de programación de un tipo de evento |
get_crm_sync_errors | Obtén errores de sincronización CRM para un tipo de evento |
Reservas
| Herramienta | Descripción |
|---|---|
get_bookings | Lista reservas con filtros opcionales |
get_booking | Obtén una reserva específica por UID |
create_booking | Crea una nueva reserva |
reschedule_booking | Reprograma una reserva |
cancel_booking | Cancela una reserva |
confirm_booking | Confirma una reserva pendiente |
mark_booking_absent | Marca una ausencia en una reserva |
get_booking_attendees | Obtén todos los asistentes de una reserva |
add_booking_attendee | Añade un asistente a una reserva |
get_booking_attendee | Obtén un asistente específico |
get_booking_routing_trace | Obtén el rastro de enrutamiento de una reserva |
get_org_team_bookings | Obtén reservas para un equipo de organización |
get_org_user_bookings | Obtén reservas para un usuario de organización |
Horarios
| Herramienta | Descripción |
|---|---|
get_schedules | Lista todos los horarios |
get_schedule | Obtén un horario específico por ID |
create_schedule | Crea un nuevo horario |
update_schedule | Actualiza un horario |
delete_schedule | Elimina un horario |
get_default_schedule | Obtén tu horario predeterminado |
Disponibilidad y calendarios
| Herramienta | Descripción |
|---|---|
get_availability | Obtén franjas horarias disponibles |
get_busy_times | Obtén horarios ocupados de calendarios |
get_connected_calendars | Lista calendarios conectados |
get_conferencing_apps | Lista aplicaciones de conferencias |
Equipos y membresías
| Herramienta | Descripción |
|---|---|
get_my_teams | Obtén los equipos a los que perteneces |
get_org_teams | Obtén equipos de organización |
create_team_invite | Invita a alguien a un equipo |
create_team_membership | Crea una membresía de equipo |
get_team_memberships | Obtén todas las membresías de equipo |
get_team_membership | Obtén una membresía de equipo |
update_team_membership | Actualiza una membresía de equipo |
delete_team_membership | Elimina una membresía de equipo |
Organizaciones
| Herramienta | Descripción |
|---|---|
get_org_memberships | Obtén todas las membresías de organización |
create_org_membership | Crea una membresía de organización |
get_org_membership | Obtén una membresía de organización |
update_org_membership | Actualiza una membresía de organización |
delete_org_membership | Elimina una membresía de organización |
get_org_attributes | Obtén atributos de organización |
get_org_attribute | Obtén un atributo de organización |
get_attribute_options | Obtén opciones para un atributo |
get_user_attributes | Obtén atributos asignados a un usuario |
assign_attribute_to_user | Asigna un atributo a un usuario |
update_user_attribute | Actualiza un atributo asignado a un usuario |
unassign_attribute_from_user | Desasigna un atributo de un usuario |
get_user_attribute_history | Obtén el historial de asignación de atributos de un usuario |
Formularios de enrutamiento
| Herramienta | Descripción |
|---|---|
calculate_routing_form_slots | Calcula franjas horarias basadas en la respuesta del formulario de enrutamiento |
get_org_routing_forms | Obtén formularios de enrutamiento de organización |
get_org_routing_form_responses | Obtén respuestas de formularios de enrutamiento |
Catálogo de API
| Herramienta | Descripción |
|---|---|
find_api_operation | Busca en el catálogo completo de operaciones de API v2 |
describe_api_operation | Obtén el esquema de entrada para una operación de API |
call_api_operation | Ejecuta cualquier operación de API v2 del catálogo |
Ejemplos de indicaciones
Una vez conectado, puedes interactuar con Cal.com usando lenguaje natural:
- "¿Qué reservas tengo esta semana?"
- "Crea un tipo de evento de 30 minutos llamado 'Charla rápida'"
- "Cancela mi reunión con John mañana"
- "Muéstrame mis franjas horarias disponibles para el próximo lunes"
- "Reprograma mi reunión de las 2pm al jueves a las 3pm"
- "¿Qué tipos de eventos tengo?"
Recursos relacionados
- Guía de agentes de IA — construye agentes de IA usando la API de Cal.com directamente
- Referencia de API v2 — documentación completa de endpoints de API
- Repositorio de GitHub — código fuente
Esta documentación está construida y alojada en Mintlify, una plataforma de documentación para desarrolladores.