CIIFragments Studio est agréée CII : récupérez jusqu'à 20 % de vos dépenses en développement logicielEn savoir plus

Intégration API Calendly

Nous développons votre connecteur Calendly

Nous intégrons l'API Calendly pour capter la réservation, la créer depuis votre produit, et pousser l'invité dans le CRM.

  • Équipe produit senior
  • prise de RDV en production
  • du cadrage au monitoring
En bref

À quoi sert l'API Calendly et quand l'intégrer dans une application ?

Calendly est l'outil de prise de rendez-vous le plus utilisé en France pour les équipes commerciales et de conseil. Son API permet à votre application de créer une réservation sans redirection vers le site Calendly, de recevoir une notification immédiate à chaque rendez-vous pris, et de synchroniser les informations du rendez-vous dans votre CRM. On l'intègre quand les commerciaux utilisent déjà Calendly et que les rendez-vous doivent alimenter automatiquement un pipeline, déclencher un email ou créer une activité sans ressaisie.

Cas d'usage

Ce que nos clients construisent sur l'API Calendly

01

Agent vocal qui confirme le créneau

POST /invitees pendant l'appel. Pas de lien à cliquer plus tard. C'est le cas d'usage mis en avant par l'éditeur, et il exige un plan payant.

02

Portail qui réserve dans sa propre charte

Les créneaux s'affichent dans votre interface. La réservation part par API. Calendly reste le moteur, le parcours reste le vôtre.

03

CRM alimenté à invitee.created

Contact, affaire, réponses aux questions, UTM. Plus de ressaisie après un « vous allez recevoir un Calendly ».

04

Rattrapage d'annulation et de no-show

invitee.canceled et invitee_no_show.created déclenchent relance, requalification, nouveau créneau. Ce que personne ne fait à la main.

Pour vous

Ce que ça change dans votre prise de rendez-vous

La technique au service d'un résultat mesurable : un RDV dans le dossier, moins de lapins, un coût par rendez-vous tenu.

Le rendez-vous n'est plus un lien nu

Il crée le dossier. Les réponses aux questions personnalisées arrivent structurées, pas dans un e-mail de confirmation.

Vous réservez sans montrer Calendly

Scheduling API : le prospect reste dans votre produit ou dans l'appel. L'iframe n'est plus une fatalité.

L'annulation a une suite

Un créneau lâché relance. Un no-show requalifie. Le planning et le pipeline restent alignés.

L'UTM suit jusqu'au rendez-vous tenu

Le bloc tracking relie la campagne à la présence réelle. Vous mesurez un coût par rendez-vous, pas par formulaire.

Méthode

Comment nous livrons votre connecteur Calendly

01

Cadrage

Lecture seule ou Scheduling API, scope user ou organization, PAT ou OAuth, plan payant réel. On tranche avant de promettre POST /invitees.

02

Développement

Signature t + corps brut, handler court, URI complètes, idempotence sur la réservation, file de refus de créneau. Démonstration chaque semaine.

03

Recette

403 sur scope organization avec rôle user, créneau déjà pris, signature hors tolérance de 3 minutes, PAT d'un compte qui part. Rejeu avant bascule.

04

Monitoring

state et retry_started_at des abonnements, alerte si un webhook quitte active. Réconciliation GET /scheduled_events. Un webhook mort ne produit aucune erreur chez vous.

Ce que permet l'API

Ce que permet l'API Calendly

Types d'événement et rendez-vous
event_types, scheduled_events, invitees, scheduling_links. Tout s'adresse par URI (https://api.calendly.com/event_types/<UUID>), pas par UUID isolé.
Scheduling API
POST /invitees crée la réservation : event_type (URI), start_time UTC disponible, invitee (name, email, timezone), plus location, invités, questions, UTM. Plan payant requis.
Webhooks signés
invitee.created, invitee.canceled, invitee_no_show.created. Signature Calendly-Webhook-Signature (t=...,v1=...), HMAC-SHA256, tolérance 3 minutes dans l'exemple officiel.
Organisation, rôles, conformité
users, organizations, memberships. Un GET webhook en scope organization renvoie 200 pour un admin, 403 pour un user. Endpoints de suppression des données d'invités pour l'effacement.
Lexique

Le vocabulaire de l'API Calendly

URI de ressource
Identifiant canonique, par exemple https://api.calendly.com/event_types/<UUID>. Extraire l'UUID et le réinjecter casse le premier endpoint qui attend l'URI.
POST /invitees
Scheduling API. Réserve un créneau sans UI Calendly. Corps minimal : event_type, start_time, invitee. Plan payant requis. Ce n'est pas une réservation forcée.
Calendly-Webhook-Signature
t=<unix>,v1=<hmac>. HMAC-SHA256 de t + "." + corps brut. Tolérance 3 minutes. Le parseur JSON d'Express ou Nest doit laisser le brut, sinon la vérif échoue à 100 %.
scope
user : événements de cet utilisateur seulement. organization : tout le compte, jeton admin, sinon 403. C'est le bug n°1 des intégrations Calendly.
invitee.created
Webhook émis à la réservation. Porte l'invité, les questions, le tracking. C'est lui qui crée l'affaire, pas un polling des scheduled_events.
retry_started_at
Champ de l'abonnement qui signale que Calendly retente. Un webhook qui quitte active sans alerte est un pipeline commercial sourd.
À savoir

Les contraintes réelles de l'API Calendly

01

Vous ne possédez pas la disponibilité

Tampons, préavis, plafonds journaliers : tout vit chez Calendly. Vous lisez et vous réservez un créneau libre. Une règle métier atypique (binôme, trajet, nuit) se discute plutôt avec Cal.com.

02

Le plan payant est une condition

La Scheduling API est explicitement réservée aux applications sur plan payant. Un prospect en plan gratuit ne peut pas recevoir POST /invitees. On le dit au cadrage, pas à la recette.

03

Un webhook user n'est pas le compte

scope user explique « on ne reçoit pas tous les rendez-vous ». Passer en organization sans jeton admin produit 403. Deux causes, un même symptôme, à tester avant la prod.

04

Le PAT survit mal à un départ

Un jeton personnel est nominatif. OAuth est le seul schéma propre en multi-clients. Idempotence métier sur POST /invitees, et alternative affichée si le créneau vient d'être pris.

Calendly ou Cal.com

API Calendly ou API Cal.com ?

Deux moteurs de prise de rendez-vous. Le bon dépend de qui possède les règles de disponibilité.

CritèreCalendlyCette pageCal.comOpen source
Où vivent les règlesChez Calendly, vous les lisezChez vous si auto-hébergé, API de premier rang
Réservation par APIPOST /invitees, plan payantCréer, reporter, annuler, réattribuer
HébergementSaaS CalendlyCloud Cal.com ou instance à vous (AGPL à cadrer)
Signature webhookCalendly-Webhook-Signature, 3 minx-cal-signature-256, secret à imposer
Catalogue d'événementscreated, canceled, no-showBooking, meeting, recording, délégation M365
Parc déjà làSouvent déjà utilisé par les commerciauxÀ installer, ou déjà choisi pour la maîtrise
Le bon casCapter un Calendly déjà en placeRègles atypiques, auto-hébergement, ICS

Google Calendar et Outlook sont l'agenda de travail, pas le moteur de réservation. Les trois se combinent : Calendly prend le RDV, Calendar ou Graph l'écrit chez le collaborateur.

Notre expertise

Ce que nous mesurons sur une intégration Calendly

15 j
premier flux Calendly en production
HMAC
signature vérifiée sur le corps brut
< 1 min
invitee.created jusqu'à l'affaire CRM
4
développeurs seniors sur le projet

On combine Calendly avec

La stack qui entoure Calendly sur nos projets.

  • HubSpot
  • Twilio
  • n8n
  • PostgreSQL
  • Node.js
FAQ

Intégration Calendly : vos questions

OAuth (multi-clients) ou PAT (interne), stockage des URI de types d'événement, abonnement webhook en scope organization si vous voulez tout le compte, vérification HMAC sur le corps brut, worker pour créer l'affaire. Si vous réservez depuis le produit : POST /invitees avec un plan payant, gestion du refus de créneau, clé d'idempotence métier. La partie sensible n'est pas le premier GET, c'est le scope, la signature et la supervision de retry_started_at.

Oui. La Scheduling API (POST /invitees) réserve un créneau sans iframe ni redirection. Corps : URI du event_type, start_time UTC réellement disponible, invitee (name, email, timezone), options location, guests, questions, tracking UTM. Un plan payant est requis. Ce n'est pas une réservation forcée : entre le listage et l'insert, le créneau peut partir. Beaucoup de contenus en ligne affirment encore l'inverse ; le portail développeur Calendly documente l'endpoint.

Un premier flux utile, typiquement invitee.created vers le CRM avec questions et UTM, se livre en deux à trois semaines. Ajouter POST /invitees dans un portail ou un agent vocal, plus la supervision des abonnements et l'effacement RGPD, demande plutôt quatre à six semaines. Le plan payant du compte Calendly doit être confirmé avant le devis, sinon le projet s'arrête à la recette. C'est un arbitrage de cadrage, écrit avant le premier appel, pas une surprise de recette.

Calendly si le moteur est déjà là et que vous voulez capter la réservation (webhooks, éventuellement Scheduling API). Cal.com si vous devez posséder les règles (tournées, binômes, nuit), auto-héberger, ou traiter MEETING_ENDED / ICS / enregistrements. Les deux parlent à Google Calendar ou Outlook ensuite. On conseille parfois Cal.com contre un devis Calendly : c'est le même cadrage, pas deux religions.

POST /webhook_subscriptions avec les événements invitee.created, canceled, no_show. Vérifier Calendly-Webhook-Signature (t.corps, 3 minutes). Répondre 2xx tout de suite, dédupliquer sur l'URI de l'invité, créer contact / affaire / tâche dans le worker. Contrôler state et retry_started_at. Réconcilier avec GET /scheduled_events. Un scope user sur un compte à plusieurs commerciaux explique la plupart des « le CRM n'a pas le rendez-vous ».

Un projet d'intégration Calendly ?

Parlons-en. 30 minutes pour cadrer webhooks, Scheduling API, plan payant, et vous dire franchement si Cal.com n'est pas le meilleur outil.

Parler de mon projet Calendly
Parler de mon projet Calendly