Cal.com MCP
oficialConecte clientes de IA ao agendamento do Cal.com através do Model Context Protocol usando o servidor hospedado em mcp.cal.com ou uma instância local.
O que você pode fazer com Cal Com MCP?
- Gerenciar reservas — Peça ao seu assistente para listar, criar, remarcar ou cancelar reservas usando ferramentas como
get_bookingsecreate_booking. - Configurar tipos de evento — Crie ou atualize tipos de evento, como um "Quick Chat" de 30 minutos, via
create_event_typeeupdate_event_type. - Verificar disponibilidade — Consulte intervalos de tempo livres ou períodos ocupados em calendários conectados com
get_availabilityeget_busy_times. - Gerenciar agendas — Crie, atualize ou busque sua agenda padrão usando
create_scheduleeget_default_schedule. - Gerenciar equipes e associações — Convide membros ou ajuste funções de equipe por meio de
create_team_inviteeupdate_team_membership.
Documentação
Servidor MCP
Conecte clientes de IA ao agendamento do Cal.com por meio do Model Context Protocol usando o servidor hospedado em mcp.cal.com ou uma instância local.
O servidor MCP do Cal.com encapsula a API v2 do Cal.com no Model Context Protocol, permitindo gerenciar reservas, tipos de eventos, agendas e muito mais por meio de linguagem natural em qualquer cliente compatível com MCP.
Servidor hospedado (mcp.cal.com)
A maneira mais rápida de começar é conectar seu cliente MCP diretamente a mcp.cal.com. O servidor hospedado usa transporte HTTP Streamable com autenticação OAuth 2.1 — seu cliente lida com o fluxo de autorização automaticamente.
Conecte seu cliente
Aponte seu cliente MCP para a URL do servidor hospedado:
https://mcp.cal.com/mcp
Ao conectar pela primeira vez, seu cliente o guiará por um fluxo de autorização OAuth, no qual você concede ao servidor acesso à sua conta do Cal.com. Nenhuma chave de API é necessária.
Adicione o seguinte ao seu `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"
}
}
}
```
Abra **Configurações → MCP** e adicione um novo servidor com a URL `https://mcp.cal.com/mcp`, ou adicione-o ao seu `.cursor/mcp.json`:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Adicione o servidor às configurações de MCP do VS Code:
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Adicione o seguinte ao seu `~/.fx/mcp.json`:
```json theme={null}
{
"mcp": {
"calcom": {
"type": "http",
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Em seguida, execute `/mcp auth calcom --open` no fx para autorizar. Consulte a
[documentação de MCP do fx](https://fx.sh/docs/capabilities/mcp) para transportes,
opções de autenticação e descoberta de ferramentas.
Servidor auto-hospedado (stdio)
Se preferir executar o servidor localmente, você pode usar o transporte stdio com uma chave de API. Isso é útil para desenvolvimento ou quando você deseja controle total sobre o servidor.
Pré-requisitos
- Node.js >= 18
- Uma chave de API do Cal.com — gere uma em Configurações → Desenvolvedor → Chaves de API
Conecte seu cliente
Adicione o seguinte à configuração do seu cliente MCP:
{
"mcpServers": {
"calcom": {
"command": "npx",
"args": ["@calcom/cal-mcp@latest"],
"env": {
"CAL_API_KEY": "cal_live_xxxx"
}
}
}
}
Substitua cal_live_xxxx pela sua chave de API real.
Aviso
Nunca compartilhe ou envie sua chave de API para um repositório. Se ela for exposta, rotacione-a imediatamente nas suas configurações do Cal.com.
Conjuntos de ferramentas
Você pode restringir quais ferramentas o servidor registra para uma sessão anexando um parâmetro de consulta toolsets à URL do servidor:
https://mcp.cal.com/mcp?toolsets=bookings,availability
Conjuntos de ferramentas válidos: profile, event-types, bookings, availability, schedules, calendars, teams, organizations, routing-forms, catalog (as meta-ferramentas find_api_operation / describe_api_operation / call_api_operation). Nomes desconhecidos são rejeitados com 400 invalid_request. Omitir o parâmetro registra todas as ferramentas; as ferramentas locais get_app_link e search_docs são sempre registradas independentemente da seleção. Para um servidor stdio auto-hospedado, defina MCP_TOOLSETS em vez disso.
Ferramentas disponíveis
O servidor MCP expõe 63 ferramentas organizadas por categoria:
Links de aplicativos
| Ferramenta | Descrição |
|---|---|
get_app_link | Cria uma URL que abre uma reserva, tipo de evento, agenda, equipe, formulário de roteamento ou página de configurações no aplicativo web do Cal.com |
Documentação
| Ferramenta | Descrição |
|---|---|
search_docs | Pesquisa a documentação do produto Cal.com; retorna páginas classificadas com um trecho do principal resultado |
Perfil do usuário
| Ferramenta | Descrição |
|---|---|
get_me | Obtém seu perfil de usuário autenticado |
update_me | Atualiza seu perfil de usuário |
Tipos de eventos
| Ferramenta | Descrição |
|---|---|
get_event_types | Lista todos os tipos de eventos |
get_event_type | Obtém um tipo de evento específico por ID |
create_event_type | Cria um novo tipo de evento |
update_event_type | Atualiza um tipo de evento |
delete_event_type | Exclui um tipo de evento |
get_event_type_settings | Obtém as configurações de um tipo de evento |
get_event_type_history | Obtém o histórico de alterações de um tipo de evento |
get_scheduling_config | Obtém a configuração de agendamento de um tipo de evento |
get_crm_sync_errors | Obtém erros de sincronização de CRM para um tipo de evento |
Reservas
| Ferramenta | Descrição |
|---|---|
get_bookings | Lista reservas com filtros opcionais |
get_booking | Obtém uma reserva específica por UID |
create_booking | Cria uma nova reserva |
reschedule_booking | Reagenda uma reserva |
cancel_booking | Cancela uma reserva |
confirm_booking | Confirma uma reserva pendente |
mark_booking_absent | Marca uma ausência em uma reserva |
get_booking_attendees | Obtém todos os participantes de uma reserva |
add_booking_attendee | Adiciona um participante a uma reserva |
get_booking_attendee | Obtém um participante específico |
get_booking_routing_trace | Obtém o rastreamento de roteamento de uma reserva |
get_org_team_bookings | Obtém reservas para uma equipe da organização |
get_org_user_bookings | Obtém reservas para um usuário da organização |
Agendas
| Ferramenta | Descrição |
|---|---|
get_schedules | Lista todas as agendas |
get_schedule | Obtém uma agenda específica por ID |
create_schedule | Cria uma nova agenda |
update_schedule | Atualiza uma agenda |
delete_schedule | Exclui uma agenda |
get_default_schedule | Obtém sua agenda padrão |
Disponibilidade e calendários
| Ferramenta | Descrição |
|---|---|
get_availability | Obtém horários disponíveis |
get_busy_times | Obtém horários ocupados dos calendários |
get_connected_calendars | Lista calendários conectados |
get_conferencing_apps | Lista aplicativos de conferência |
Equipes e associações
| Ferramenta | Descrição |
|---|---|
get_my_teams | Obtém as equipes às quais você pertence |
get_org_teams | Obtém equipes da organização |
create_team_invite | Convida alguém para uma equipe |
create_team_membership | Cria uma associação de equipe |
get_team_memberships | Obtém todas as associações de equipe |
get_team_membership | Obtém uma associação de equipe |
update_team_membership | Atualiza uma associação de equipe |
delete_team_membership | Exclui uma associação de equipe |
Organizações
| Ferramenta | Descrição |
|---|---|
get_org_memberships | Obtém todas as associações de organização |
create_org_membership | Cria uma associação de organização |
get_org_membership | Obtém uma associação de organização |
update_org_membership | Atualiza uma associação de organização |
delete_org_membership | Exclui uma associação de organização |
get_org_attributes | Obtém atributos da organização |
get_org_attribute | Obtém um atributo da organização |
get_attribute_options | Obtém opções para um atributo |
get_user_attributes | Obtém atributos atribuídos a um usuário |
assign_attribute_to_user | Atribui um atributo a um usuário |
update_user_attribute | Atualiza um atributo atribuído a um usuário |
unassign_attribute_from_user | Remove a atribuição de um atributo de um usuário |
get_user_attribute_history | Obtém o histórico de atribuição de atributos de um usuário |
Formulários de roteamento
| Ferramenta | Descrição |
|---|---|
calculate_routing_form_slots | Calcula horários com base na resposta do formulário de roteamento |
get_org_routing_forms | Obtém formulários de roteamento da organização |
get_org_routing_form_responses | Obtém respostas de formulários de roteamento |
Catálogo de API
| Ferramenta | Descrição |
|---|---|
find_api_operation | Pesquisa o catálogo completo de operações da API v2 |
describe_api_operation | Obtém o esquema de entrada para uma operação da API |
call_api_operation | Executa qualquer operação da API v2 do catálogo |
Exemplos de prompts
Depois de conectado, você pode interagir com o Cal.com usando linguagem natural:
- "Quais reservas tenho esta semana?"
- "Crie um tipo de evento de 30 minutos chamado 'Quick Chat'"
- "Cancele minha reunião com John amanhã"
- "Mostre-me meus horários disponíveis para a próxima segunda-feira"
- "Reagende minha reunião das 14h para quinta-feira às 15h"
- "Quais tipos de eventos tenho?"
Recursos relacionados
- Guia de agentes de IA — crie agentes de IA usando a API do Cal.com diretamente
- Referência da API v2 — documentação completa dos endpoints da API
- Repositório no GitHub — código-fonte
Esta documentação é criada e hospedada no Mintlify, uma plataforma de documentação para desenvolvedores.