# Réserver des rendez-vous Cal.com ou Calendly depuis le chat

> Laissez les visiteurs réserver un rendez-vous dans le chat depuis votre calendrier Cal.com ou Calendly : clé API ou jeton d'accès personnel, type d'événement, ce que voient les visiteurs, où arrivent les réservations et les limites.

Avec la réservation activée, votre agent peut afficher sous sa réponse les créneaux libres de votre calendrier Cal.com ou Calendly. Le visiteur choisit un créneau, saisit son nom et son adresse e-mail, et le rendez-vous est aussitôt réservé dans votre calendrier. L'agent décide quand afficher les créneaux. Les créneaux viennent toujours de votre calendrier, jamais du modèle d'IA.

> Cal.com et Calendly sont pris en charge. Google Agenda et les autres calendriers ne peuvent pas être connectés. Pour envoyer les visiteurs vers une autre page de réservation, ajoutez un [bouton personnalisé](/fr/docs/custom-buttons) qui y mène.

## Avant de commencer

Il vous faut un compte avec au moins un type d'événement, par exemple un appel de découverte de 30 minutes, et une clé qui permet à intoCHAT de l'utiliser :

- **Cal.com** : une clé API. Créez-la dans Cal.com sous **Settings**, **Developer**, **API keys**. Elle commence par `cal_`.
- **Calendly** : un jeton d'accès personnel (personal access token). Créez-le dans Calendly sous **Integrations**, **API & Webhooks**, **Personal access tokens**. Donnez-lui les scopes `users:read`, `event_types:read`, `availability:read` et `scheduled_events:write`. Calendly n'affiche le jeton qu'une seule fois : copiez-le tout de suite.

> Calendly n'autorise la réservation via son API que sur les forfaits payants (Standard et au-delà). Avec le forfait Free, Calendly refuse chaque réservation : les visiteurs verraient donc des créneaux qu'ils ne peuvent pas réserver. intoCHAT ne peut pas vérifier votre forfait lors de la connexion.

## Connecter votre calendrier

1. Ouvrez votre agent et allez dans l'onglet **Actions**. La carte **Booking** se trouve sous vos actions et vos formulaires.
2. Sous **Calendar**, choisissez **Cal.com** ou **Calendly**.
3. Collez la clé dans **Cal.com API key**, ou le jeton dans **Personal access token**, et cliquez sur **Connect**. intoCHAT la vérifie en chargeant vos types d'événements.
4. Choisissez le type d'événement sous **Event type visitors book**. Chacun affiche son titre et sa durée. Un type d'événement marqué « (hidden in Cal.com) » ou « (secret in Calendly) » est masqué sur votre page de réservation publique, mais les visiteurs peuvent quand même le réserver depuis le chat. Un type d'événement Calendly marqué « (can't be booked from the chat) » ne peut pas être choisi ; la raison s'affiche sous la liste. Consultez [Types d'événements Calendly que le chat ne peut pas réserver](#types-d-evenements-calendly-que-le-chat-ne-peut-pas-reserver).
5. Facultatif : remplissez **When to offer booking**. Ce texte est lu par l'agent, jamais montré aux visiteurs, et fait 1 000 caractères au plus. Laissé vide, l'agent utilise le texte affiché dans le champ : « When the visitor wants to book a meeting, call, demo or appointment, or asks when the team is available. »
6. Cliquez sur **Save**. La réservation est activée dès l'enregistrement.

La clé ou le jeton est stocké chiffré et n'est plus jamais affiché. La carte ne montre d'une clé Cal.com que `cal_…` et ses quatre derniers caractères, et d'un jeton Calendly que `…` et ses quatre derniers caractères. intoCHAT l'utilise pour lire vos types d'événements et vos créneaux libres et pour créer les réservations, rien d'autre.

Si Cal.com refuse la clé, la carte indique « Cal.com didn't accept this API key. » Si Calendly refuse le jeton, elle indique « Calendly didn't accept this personal access token. » Vérifiez que vous avez copié la clé ou le jeton en entier et qu'il n'a pas expiré, n'a pas été révoqué ni supprimé. S'il manque un scope au jeton, la carte indique les scopes nécessaires. Si le compte n'a encore aucun type d'événement, créez-en un et cliquez de nouveau sur **Connect**. Vous pouvez vérifier des clés jusqu'à 10 fois en 10 minutes.

### Types d'événements Calendly que le chat ne peut pas réserver

Le chat ne demande au visiteur que son nom et son adresse e-mail. Un type d'événement Calendly ne peut pas être réservé depuis le chat lorsqu'il :

- comporte une question de réservation activée et obligatoire,
- ne propose que des lieux qui demandent quelque chose à l'invité, comme le numéro de téléphone de l'invité, pour que vous l'appeliez, ou un lieu choisi par l'invité,
- est un sondage de réunion (meeting poll).

Les types d'événements avec un appel vidéo (Zoom, Google Meet, Microsoft Teams, Webex, GoTo Meeting), un numéro de téléphone que l'invité appelle, un lieu que vous fixez vous-même, ou sans lieu du tout, peuvent être réservés. Quand un type d'événement propose plusieurs lieux, intoCHAT réserve le premier d'entre eux qui convient. Les questions de réservation facultatives restent vides.

## Gérer la réservation

Une fois un calendrier connecté, la carte affiche le calendrier, les quatre derniers caractères de la clé ou du jeton, et le type d'événement.

- L'interrupteur **On** / **Off**, dans l'en-tête de la carte, empêche l'agent de proposer la réservation, sans déconnecter le calendrier.
- **When to offer booking** peut être modifié à tout moment. Cliquez sur **Save** pour conserver la modification.
- **Change event type** recharge vos types d'événements et passe à celui que vous choisissez. Un agent réserve un seul type d'événement à la fois.
- **Replace key** (Cal.com) ou **Replace token** (Calendly) connecte une nouvelle clé ou un nouveau jeton. Vous pouvez aussi y choisir l'autre calendrier. Si la carte indique que la clé ou le jeton enregistré ne peut plus être lu et que les visiteurs ne peuvent donc pas réserver, le bouton devient **Reconnect** : collez-le de nouveau.
- **Disconnect** arrête la réservation et supprime la clé ou le jeton enregistré. Les rendez-vous déjà réservés restent dans votre calendrier et dans la liste **Bookings** de l'onglet **Leads**.

## Ce que voient les visiteurs

L'agent lit **When to offer booking**. Quand la conversation s'y prête, il affiche les créneaux libres sous sa réponse et les mentionne en une courte phrase. Il ne liste pas les créneaux dans son texte, ne demande pas le nom ni l'e-mail du visiteur dans le chat, et n'annonce jamais un rendez-vous comme réservé avant que le visiteur l'ait réservé.

Le sélecteur de créneaux affiche le titre et la durée du type d'événement, ainsi que le fuseau horaire du visiteur, par exemple « Heures pour le fuseau Europe/Berlin » :

- Il affiche jusqu'à 5 jours comportant des créneaux libres et jusqu'à 8 créneaux par jour, répartis sur la journée pour que le matin et l'après-midi apparaissent.
- Par défaut, l'agent regarde les 7 prochains jours. Quand le visiteur demande des jours précis, il regarde ceux-là, jusqu'à 14 jours à la fois et jusqu'à un an à l'avance.
- Les heures sont dans le fuseau horaire du navigateur du visiteur, ou en UTC si le navigateur n'en fournit pas. Elles sont écrites comme le navigateur du visiteur écrit les dates et les heures.

Pour réserver, le visiteur choisit un jour et une heure, saisit **Nom** et **E-mail** et clique sur **Réserver**. **Choisir un autre créneau** revient à la liste. Juste avant la réservation, intoCHAT redemande à votre calendrier si le créneau est toujours libre. Si quelqu'un d'autre l'a pris entre-temps, le visiteur voit « Ce créneau vient d'être réservé. Veuillez en choisir un autre. » et le créneau disparaît de la liste.

Une fois le rendez-vous réservé, une confirmation est ajoutée au chat comme message de l'agent, par exemple « Réservé : Appel découverte, le mardi 13 octobre 2026 à 14:30 (Europe/Berlin). Une confirmation devrait arriver à ana@example.com. » Si votre type d'événement Cal.com exige que vous confirmiez les réservations, elle commence par « Demandé : » et précise que le rendez-vous doit encore être confirmé. Cal.com ou Calendly envoie ses e-mails et invitations de calendrier habituels. intoCHAT n'envoie lui-même aucun e-mail au visiteur.

Le texte du sélecteur suit **Widget language** dans l'onglet [Appearance](/fr/docs/appearance). Le titre du type d'événement s'affiche tel que vous l'avez écrit dans Cal.com ou Calendly. Après un rechargement, un sélecteur dont un créneau a été réservé affiche « Un rendez-vous a été réservé dans cette conversation. »

Si le calendrier n'a aucun créneau libre les jours demandés, l'agent le dit et peut proposer de regarder d'autres jours. Si votre calendrier est injoignable, l'agent indique que la réservation ne fonctionne pas pour le moment. Il n'invente jamais de créneaux.

La réservation fonctionne dans la bulle de chat, l'iframe intégrée, le lien direct, la [page d'aide](/fr/docs/help-page) et le **Playground**. Elle n'est pas proposée dans les discussions temporaires, où rien n'est enregistré. Si un visiteur veut y réserver, l'agent l'invite à quitter la discussion temporaire et à reposer sa demande.

## Les réservations depuis le Playground sont réelles

> Un rendez-vous réservé dans le **Playground** est une vraie réservation. Le sélecteur l'y indique, par exemple : « Playground: booking here is real. It creates the meeting in your Calendly calendar, and Calendly sends its usual emails. » Il apparaît aussi dans la liste **Bookings** et déclenche le webhook `booking.created` et l'alerte Slack comme toute autre réservation. Annulez les réservations de test dans Cal.com ou Calendly.

## Où apparaissent les réservations

- **Onglet Leads** : la carte **Bookings** liste chaque rendez-vous réservé depuis le chat, avec le nom, l'adresse e-mail et le fuseau horaire du visiteur, et un lien vers la conversation. Consultez [Alertes et export](/fr/docs/lead-alerts-and-export#reservations).
- **Onglet Conversations** : la confirmation apparaît dans la transcription comme message de l'agent. Sous la réponse qui a affiché les créneaux, **Why this answer** indique « Booking: » suivi du titre du type d'événement sous **Actions called**. Dans l'export CSV, le message de cette réponse se termine par `[Booking times: ` et le titre du type d'événement. Consultez [Conversations et stats](/fr/docs/conversations-and-dashboard).
- **Webhooks** : abonnez un webhook à **Meeting booked** pour recevoir l'événement `booking.created`. Son `provider` vaut `calcom` ou `calendly`. Consultez [Webhooks](/fr/docs/webhooks#donnees-de-booking-created).
- **Slack** : cochez **Booked meeting** sous **Post a message for** dans la carte **Slack alerts**. Consultez [Alertes Slack](/fr/docs/lead-alerts-and-export#alertes-slack).

## Limites

- **Cal.com ou Calendly**, un seul calendrier et un seul type d'événement par agent.
- **Calendly exige un forfait payant** (Standard et au-delà) pour réserver via son API. Calendly limite aussi le nombre de réservations que son API accepte : sur les forfaits payants autres qu'Enterprise, 10 par minute, 50 par heure et 100 par jour et par utilisateur Calendly ; pendant un essai Calendly, 5 par jour. Au-delà, les visiteurs voient « Trop de tentatives. Veuillez patienter un instant. »
- **Aucune synchronisation depuis votre calendrier.** Si un rendez-vous est reporté ou annulé dans Cal.com ou Calendly, la liste **Bookings** et la conversation affichent toujours la réservation d'origine. Les visiteurs ne peuvent ni annuler ni reporter depuis le chat ; cela se fait dans Cal.com ou Calendly.
- **Une réservation n'est pas un lead.** Le nom et l'adresse e-mail du visiteur n'ajoutent pas de lead, et une réservation ne déclenche ni alerte de lead ni webhook `lead.created`. Les réservations ne sont pas comptées sous **Outcomes** au tableau de bord ni dans les e-mails de synthèse.
- **Conversations enregistrées uniquement.** Une réservation appartient toujours à une conversation enregistrée : les discussions temporaires ne permettent donc pas de réserver.
- **Tentatives.** Un visiteur peut essayer de réserver jusqu'à 5 fois par minute. Au-delà, il voit « Trop de tentatives. Veuillez patienter un instant. »
- **Une réservation par créneau.** Le même créneau ne peut pas être réservé deux fois dans une conversation ; un second clic affiche la première réservation. D'autres créneaux peuvent être réservés dans la même conversation.
- **Messages.** La réponse qui affiche les créneaux compte comme un message, comme toute réponse. Réserver le créneau ne consomme pas de message.
- **Les agents dupliqués** ne copient pas la connexion au calendrier. Connectez de nouveau Cal.com ou Calendly dans la copie si elle doit proposer la réservation.
- **Changer de type d'événement** ne modifie pas les rendez-vous déjà réservés. La liste **Bookings** conserve le titre sous lequel chaque rendez-vous a été réservé, même après **Disconnect**.

## Étapes suivantes

- Envoyez les réservations vers vos propres systèmes : [Webhooks](/fr/docs/webhooks).
- Recueillez plutôt des informations, comme une demande de devis : [Formulaires de chat](/fr/docs/chat-forms).
- Renvoyez vers une autre page de réservation : [Boutons personnalisés](/fr/docs/custom-buttons).
