Cal.com MCP
officielConnectez les clients IA à la planification Cal.com via le protocole de contexte de modèle en utilisant le serveur hébergé sur mcp.cal.com ou une instance locale.
Que pouvez-vous faire avec Cal Com MCP ?
- Gérer les réservations — Demandez à votre assistant de lister, créer, reprogrammer ou annuler des réservations à l’aide d’outils comme
get_bookingsetcreate_booking. - Configurer les types d’événements — Créez ou mettez à jour des types d’événements, comme un « Quick Chat » de 30 minutes, via
create_event_typeetupdate_event_type. - Vérifier la disponibilité — Interrogez les créneaux horaires libres ou les périodes occupées des calendriers connectés avec
get_availabilityetget_busy_times. - Gérer les plannings — Créez, mettez à jour ou récupérez votre planning par défaut à l’aide de
create_scheduleetget_default_schedule. - Gérer les équipes et les adhésions — Invitez des membres ou ajustez les rôles d’équipe via
create_team_inviteetupdate_team_membership.
Documentation
Serveur MCP
Connectez des clients IA à la planification Cal.com via le Model Context Protocol en utilisant le serveur hébergé sur mcp.cal.com ou une instance locale.
Le serveur MCP Cal.com MCP encapsule l'API Cal.com v2 dans le Model Context Protocol, vous permettant de gérer les réservations, les types d'événements, les plannings, et plus encore grâce au langage naturel dans n'importe quel client compatible MCP.
Serveur hébergé (mcp.cal.com)
Le moyen le plus rapide de commencer est de connecter votre client MCP directement à mcp.cal.com. Le serveur hébergé utilise le transport HTTP Streamable avec authentification OAuth 2.1 — votre client gère automatiquement le flux d'autorisation.
Connecter votre client
Pointez votre client MCP vers l'URL du serveur hébergé :
https://mcp.cal.com/mcp
Lors de la première connexion, votre client vous guide à travers un flux d'autorisation OAuth où vous accordez au serveur l'accès à votre compte Cal.com. Aucune clé API n'est nécessaire.
Ajoutez ce qui suit à votre `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"
}
}
}
```
Ouvrez **Paramètres → MCP** et ajoutez un nouveau serveur avec l'URL `https://mcp.cal.com/mcp`, ou ajoutez-le à votre `.cursor/mcp.json` :
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Ajoutez le serveur à vos paramètres MCP de VS Code :
```json theme={null}
{
"mcpServers": {
"calcom": {
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Ajoutez ce qui suit à votre `~/.fx/mcp.json` :
```json theme={null}
{
"mcp": {
"calcom": {
"type": "http",
"url": "https://mcp.cal.com/mcp"
}
}
}
```
Exécutez ensuite `/mcp auth calcom --open` dans fx pour autoriser. Consultez la
[documentation MCP de fx](https://fx.sh/docs/capabilities/mcp) pour les transports,
les options d'authentification et la découverte d'outils.
Serveur auto-hébergé (stdio)
Si vous préférez exécuter le serveur localement, vous pouvez utiliser le transport stdio avec une clé API. Cela est utile pour le développement ou lorsque vous souhaitez un contrôle total sur le serveur.
Prérequis
- Node.js >= 18
- Une clé API Cal.com — générez-en une dans Paramètres → Développeur → Clés API
Connecter votre client
Ajoutez ce qui suit à la configuration de votre client MCP :
{
"mcpServers": {
"calcom": {
"command": "npx",
"args": ["@calcom/cal-mcp@latest"],
"env": {
"CAL_API_KEY": "cal_live_xxxx"
}
}
}
}
Remplacez cal_live_xxxx par votre clé API réelle.
Avertissement
Ne partagez et ne committez jamais votre clé API. Si elle est exposée, faites-la pivoter immédiatement dans vos paramètres Cal.com.
Ensembles d'outils
Vous pouvez restreindre les outils que le serveur enregistre pour une session en ajoutant un paramètre de requête toolsets à l'URL du serveur :
https://mcp.cal.com/mcp?toolsets=bookings,availability
Ensembles d'outils valides : profile, event-types, bookings, availability, schedules, calendars, teams, organizations, routing-forms, catalog (les méta-outils find_api_operation / describe_api_operation / call_api_operation). Les noms inconnus sont rejetés avec 400 invalid_request. Omettre le paramètre enregistre tous les outils ; les outils locaux get_app_link et search_docs sont toujours enregistrés quelle que soit la sélection. Pour un serveur stdio auto-hébergé, définissez MCP_TOOLSETS à la place.
Outils disponibles
Le serveur MCP expose 63 outils organisés par catégorie :
Liens d'application
| Outil | Description |
|---|---|
get_app_link | Construire une URL qui ouvre une réservation, un type d'événement, un planning, une équipe, un formulaire de routage ou une page de paramètres dans l'application web Cal.com |
Documentation
| Outil | Description |
|---|---|
search_docs | Rechercher dans la documentation produit Cal.com ; renvoie des pages classées avec un extrait du meilleur résultat |
Profil utilisateur
| Outil | Description |
|---|---|
get_me | Obtenir votre profil utilisateur authentifié |
update_me | Mettre à jour votre profil utilisateur |
Types d'événements
| Outil | Description |
|---|---|
get_event_types | Lister tous les types d'événements |
get_event_type | Obtenir un type d'événement spécifique par ID |
create_event_type | Créer un nouveau type d'événement |
update_event_type | Mettre à jour un type d'événement |
delete_event_type | Supprimer un type d'événement |
get_event_type_settings | Obtenir les paramètres d'un type d'événement |
get_event_type_history | Obtenir l'historique des modifications d'un type d'événement |
get_scheduling_config | Obtenir la configuration de planification d'un type d'événement |
get_crm_sync_errors | Obtenir les erreurs de synchronisation CRM pour un type d'événement |
Réservations
| Outil | Description |
|---|---|
get_bookings | Lister les réservations avec des filtres optionnels |
get_booking | Obtenir une réservation spécifique par UID |
create_booking | Créer une nouvelle réservation |
reschedule_booking | Reporter une réservation |
cancel_booking | Annuler une réservation |
confirm_booking | Confirmer une réservation en attente |
mark_booking_absent | Marquer une absence de réservation |
get_booking_attendees | Obtenir tous les participants d'une réservation |
add_booking_attendee | Ajouter un participant à une réservation |
get_booking_attendee | Obtenir un participant spécifique |
get_booking_routing_trace | Obtenir la trace de routage d'une réservation |
get_org_team_bookings | Obtenir les réservations pour une équipe d'organisation |
get_org_user_bookings | Obtenir les réservations pour un utilisateur d'organisation |
Plannings
| Outil | Description |
|---|---|
get_schedules | Lister tous les plannings |
get_schedule | Obtenir un planning spécifique par ID |
create_schedule | Créer un nouveau planning |
update_schedule | Mettre à jour un planning |
delete_schedule | Supprimer un planning |
get_default_schedule | Obtenir votre planning par défaut |
Disponibilité et calendriers
| Outil | Description |
|---|---|
get_availability | Obtenir les créneaux horaires disponibles |
get_busy_times | Obtenir les heures occupées des calendriers |
get_connected_calendars | Lister les calendriers connectés |
get_conferencing_apps | Lister les applications de conférence |
Équipes et adhésions
| Outil | Description |
|---|---|
get_my_teams | Obtenir les équipes auxquelles vous appartenez |
get_org_teams | Obtenir les équipes d'organisation |
create_team_invite | Inviter quelqu'un dans une équipe |
create_team_membership | Créer une adhésion d'équipe |
get_team_memberships | Obtenir toutes les adhésions d'équipe |
get_team_membership | Obtenir une adhésion d'équipe |
update_team_membership | Mettre à jour une adhésion d'équipe |
delete_team_membership | Supprimer une adhésion d'équipe |
Organisations
| Outil | Description |
|---|---|
get_org_memberships | Obtenir toutes les adhésions d'organisation |
create_org_membership | Créer une adhésion d'organisation |
get_org_membership | Obtenir une adhésion d'organisation |
update_org_membership | Mettre à jour une adhésion d'organisation |
delete_org_membership | Supprimer une adhésion d'organisation |
get_org_attributes | Obtenir les attributs d'organisation |
get_org_attribute | Obtenir un attribut d'organisation |
get_attribute_options | Obtenir les options d'un attribut |
get_user_attributes | Obtenir les attributs assignés à un utilisateur |
assign_attribute_to_user | Assigner un attribut à un utilisateur |
update_user_attribute | Mettre à jour un attribut assigné à un utilisateur |
unassign_attribute_from_user | Désassigner un attribut d'un utilisateur |
get_user_attribute_history | Obtenir l'historique d'assignation d'attributs d'un utilisateur |
Formulaires de routage
| Outil | Description |
|---|---|
calculate_routing_form_slots | Calculer les créneaux en fonction de la réponse du formulaire de routage |
get_org_routing_forms | Obtenir les formulaires de routage d'organisation |
get_org_routing_form_responses | Obtenir les réponses des formulaires de routage |
Catalogue API
| Outil | Description |
|---|---|
find_api_operation | Rechercher dans le catalogue complet des opérations API v2 |
describe_api_operation | Obtenir le schéma d'entrée pour une opération API |
call_api_operation | Exécuter n'importe quelle opération API v2 du catalogue |
Exemples de requêtes
Une fois connecté, vous pouvez interagir avec Cal.com en langage naturel :
- « Quelles réservations ai-je cette semaine ? »
- « Créez un type d'événement de 30 minutes appelé "Quick Chat" »
- « Annulez ma réunion avec John demain »
- « Montrez-moi mes créneaux disponibles pour lundi prochain »
- « Reportez ma réunion de 14h à jeudi à 15h »
- « Quels types d'événements ai-je ? »
Ressources associées
- Guide des agents IA — construisez des agents IA en utilisant directement l'API Cal.com
- Référence API v2 — documentation complète des points de terminaison API
- Dépôt GitHub — code source
Cette documentation est construite et hébergée sur Mintlify, une plateforme de documentation pour développeurs.