Imaginez ceci : un client potentiel est sur votre site web et s’intéresse à votre produit. Il veut réserver une démo. L’ancienne méthode consiste à ce qu’il vous envoie un e-mail, que vous répondiez avec un lien de calendrier, puis que vous échangiez plusieurs messages pour trouver un créneau. C’est lent, et vous risquez de perdre son intérêt.
Imaginez maintenant une meilleure méthode. Le visiteur demande simplement à votre agent IA : “Puis-je réserver une réunion ?” L’agent vérifie instantanément votre calendrier, propose les créneaux disponibles et réserve le rendez-vous directement dans le chat.

C’est l’intérêt de connecter Cal.com à votre agent Quickchat AI. Dans ce guide, nous vous expliquons cette intégration simple étape par étape. En quelques minutes, vous pouvez permettre à votre IA de gérer la planification, afin que de nouveaux leads puissent apparaître dans votre calendrier sans jamais quitter la conversation.
Si vous utilisez Calendly plutôt que Cal.com, il existe une voie plus courte : Calendly publie un serveur MCP hébergé, la connexion se fait donc en un clic au lieu de créer un ensemble d’API Actions manuellement. Créer un assistant de planification IA avec Calendly explique cette approche, y compris comment limiter ce que l’agent peut faire une fois connecté.
Pourquoi connecter Cal.com à votre agent IA ?
Cal.com est un outil puissant pour une planification flexible, et son API est la clé pour automatiser ce flux. En l’associant aux AI Actions de Quickchat, vous pouvez transformer le chat de votre site web en assistant de planification intelligent.
Voici pourquoi cela change la donne :
- Créer une expérience utilisateur fluide : Les visiteurs peuvent réserver un appel directement dans la fenêtre de chat. Plus besoin de jongler entre onglets, liens ou e-mails. C’est rapide, moderne et efficace.
- Capturer plus de leads : En supprimant les frictions du processus de réservation, vous réduisez les risques qu’un lead abandonne. Une confirmation instantanée implique un engagement immédiat.
- Éliminer le travail manuel : Votre IA gère tout le flux de planification, de la vérification des disponibilités à l’envoi des invitations. Votre calendrier se remplit automatiquement, ce qui vous laisse du temps pour vous concentrer sur des tâches plus importantes.
Comment cela fonctionne-t-il ?
Le fonctionnement repose sur deux appels API que votre agent IA effectue vers Cal.com. Voici un aperçu rapide du flux conversationnel :
- La demande : Un visiteur demande à réserver une réunion. Votre agent IA lui demande intelligemment ses dates préférées et son fuseau horaire.
- Vérification des disponibilités : L’agent appelle Cal.com pour trouver des créneaux disponibles en fonction de vos types d’événements préconfigurés.
- La proposition : L’IA présente les horaires disponibles à l’utilisateur. Une fois qu’il en choisit un, elle lui demande son nom et son e-mail.
- Réservation de la réunion : L’agent appelle ensuite l’API Cal.com pour réserver la réunion, en envoyant le créneau choisi et les informations de l’utilisateur afin de finaliser le rendez-vous.
- Confirmation : Cal.com prend le relais et envoie automatiquement les invitations de calendrier à vous et à votre nouveau lead.
Voici un aperçu de cette conversation :

Ce dont vous avez besoin (prérequis)
Avant de commencer, assurez-vous d’avoir les éléments suivants :
- Un compte Cal.com : Le forfait gratuit convient parfaitement si vous débutez. Vous aurez besoin d’au moins un type d’événement configuré, par exemple un appel de démonstration de 30 minutes. Vous pouvez créer un compte Cal.com ici.
- Un agent Quickchat AI : Vous aurez besoin d’un accès permettant de créer des AI Actions personnalisées. Si vous n’avez pas de compte, vous pouvez vous inscrire ici.
- Votre clé API Cal.com : Dans votre dashboard Cal.com, accédez à Settings → API keys. Cliquez sur Add, donnez un nom à votre clé, définissez une date d’expiration et copiez le jeton. Vous en aurez besoin pour l’authentification.

Conseil : Même si les types d’événements publics sur Cal.com sont accessibles sans clé API, il est fortement recommandé d’en utiliser une. Cela évite les limites de débit et garantit que votre intégration est prête pour de futurs changements de l’API.
Étape 1 : créer une AI Action pour vérifier les disponibilités
Commençons par apprendre à votre agent IA à trouver vos créneaux libres.
Dans votre dashboard Quickchat, allez dans Actions & MCPs → Custom Actions et cliquez sur Add Action.
1.1 Définir les entrées utilisateur
Nous devons demander à l’utilisateur quelques informations clés avant de pouvoir vérifier le calendrier. Définissez ces champs que l’agent devra collecter :
| Champ | Description | Exemple |
|---|---|---|
start | Le début de la plage de dates à rechercher (ISO 8601) | 2025-09-18T00:00Z |
end | La fin de la plage de dates à rechercher (ISO 8601) | 2025-09-25T23:59Z |
timeZone | Le fuseau horaire de l’utilisateur au format IANA | Europe/Warsaw |

1.2 Configurer l’appel API
Configurez maintenant la requête vers Cal.com :
-
Méthode :
GET -
URL de l’endpoint API :
https://api.cal.com/v2/slots?eventTypeSlug=call&username=patryk-lasek&start={{start}}&end={{end}}&timeZone={{timeZone}}Important : Remplacez
callpar le slug d’URL de votre type d’événement etpatryk-lasekpar votre nom d’utilisateur Cal.com. -
Headers :
| Header | Valeur | Requis |
|---|---|---|
cal-api-version | 2024-09-04 | ✔︎ |
Authorization | Bearer <your_api_key> | Recommandé |

Le header cal-api-version est obligatoire. Sans lui, votre requête échouera.
Dans l’interface Quickchat, les placeholders ({{start}}, {{end}}, {{timeZone}}) dans l’URL seront automatiquement remplacés par les informations que votre agent collecte auprès de l’utilisateur.
Une fois l’action enregistrée, votre agent peut maintenant récupérer et afficher correctement les créneaux disponibles.
Étape 2 : créer une AI Action pour réserver la réunion
Une fois les disponibilités vérifiées, il est temps de passer à la dernière étape : créer la réservation. Créons une deuxième action.
2.1 Définir les entrées utilisateur
Pour cette action, l’agent doit collecter les informations suivantes :
| Champ | Description | Valeur par défaut | Requis |
|---|---|---|---|
start | Le créneau choisi au format UTC : 2025-09-21T07:00:00Z | - | ✔︎ |
name | Le nom complet du participant | - | Optionnel |
email | L’adresse e-mail du participant | - | ✔︎ |
timeZone | Le fuseau horaire de l’utilisateur au format IANA : Europe/Warsaw | - | ✔︎ |

Note sur les fuseaux horaires : L’endpoint de réservation de Cal.com exige que l’heure start soit en UTC. Votre agent IA doit gérer cette conversion. Par exemple, si un utilisateur à Varsovie (UTC+2) choisit 11:00 AM, la valeur envoyée à l’API doit être 09:00:00Z.
2.2 Configurer l’appel API
- Méthode :
POST - URL de l’endpoint API :
https://api.cal.com/v2/bookings - Headers :
| Header | Valeur | Requis |
|---|---|---|
Content-Type | application/json | ✔︎ |
cal-api-version | 2024-08-13 | ✔︎ |
Authorization | Bearer <your_api_key> | Recommandé |
Notez que cal-api-version est différent pour cet endpoint. Vérifiez toujours la documentation Cal.com pour utiliser la bonne chaîne de version.

-
Body : Dans l’éditeur d’action Quickchat, sélectionnez
JSONpour le body et collez la structure suivante :{ "start": "{{start}}", "eventTypeSlug": "call", "username": "patryk-lasek", "attendee": { "name": "{{name}}", "email": "{{email}}", "timeZone": "{{timeZone}}" } }Pensez à remplacer
eventTypeSlugetusernamepar vos propres informations. Les informationsattendeedoivent être un objet JSON imbriqué, comme indiqué ci-dessus.
Parfait. Une fois cette action configurée et enregistrée, votre agent IA dispose de tout ce dont il a besoin pour réserver des réunions en votre nom de manière fluide.
Tester votre endpoint
Pour vérifier que tout fonctionne correctement, vous pouvez tester les deux AI Actions en les ouvrant, en faisant défiler jusqu’à la section API Endpoint, puis en cliquant sur “Test Response” :

Étape 3 : tester votre nouvel assistant de planification
Avant de tester, assurez-vous que votre page AI Actions correspond à la configuration ci-dessous :

Il est temps de passer à la partie pratique. Allez dans AI Preview dans votre dashboard Quickchat et démarrez une nouvelle conversation. Essayez une demande comme :
“Je voudrais réserver une démo pour la semaine prochaine.”
Observez votre agent :
- Il vous demande vos dates préférées et votre fuseau horaire.
- Il récupère et affiche les créneaux disponibles depuis votre calendrier Cal.com.
- Il vous demande votre nom et votre e-mail après que vous avez sélectionné un horaire.
- Il confirme que la réservation est terminée.
Résolution des problèmes courants
Vous rencontrez des erreurs ? Voici quelques problèmes fréquents et comment les corriger :
- Vous obtenez une erreur
403 Forbiddenou404 Not Found? Vérifiez que vous utilisez bien la méthodePOSTpour l’action de réservation. Cal.com rejettera les requêtesGETenvoyées à l’endpoint/bookings. - Vous voyez une erreur
400 Bad Requestconcernant les champs du participant ? Cela signifie presque toujours que le body JSON est mal formaté. Assurez-vous quename,emailettimeZonesont imbriqués dans un objetattendee, et non placés au niveau racine. - La requête échoue à cause d’un header manquant ?
Chaque endpoint Cal.com v2 nécessite le header
cal-api-version. Utilisez2024-09-04pour/slotset2024-08-13pour/bookings. - Les réunions sont réservées au mauvais horaire ?
Vérifiez que l’heure
startdans votre requête de réservation est bien envoyée en UTC.
Conclusion
Félicitations. Avec seulement deux AI Actions, vous avez transformé votre agent Quickchat en assistant de planification complet. Il peut désormais gérer l’ensemble du processus de réservation, offrir une expérience sans friction aux visiteurs de votre site web et vous éviter les échanges manuels fastidieux liés à la planification.
Ce n’est que le début. Grâce à la flexibilité de l’API Cal.com et des AI Actions de Quickchat, vous pourriez ajouter des rappels SMS, des e-mails de suivi et d’autres automatisations personnalisées, comme enregistrer chaque réservation dans HubSpot en tant que contact et transaction. Les possibilités sont nombreuses.