Français
Calendly
Lit vos types de rendez-vous et vos rendez-vous planifiés, et sait en annuler un.
Le nœud Calendly lit vos types de rendez-vous et vos rendez-vous planifiés, et sait annuler un rendez-vous. Son usage le plus courant est une réponse qui propose un créneau : listez vos types de rendez-vous, puis collez {{ data.<step>.schedulingUrl }} dans une étape Rédiger.
Il travaille avec un compte Calendly, au moyen d’un jeton personnel enregistré une fois dans Connexions. Voir Calendly pour créer la connexion.
En bref
- Type :
calendly.api· version 1 - Catégorie : Données
- Nature : Étape — s’exécute pendant une exécution
- Effet : Écrit à l’extérieur (
external_write) — écrit hors de Mankomail ; décrit au lieu d’être fait pendant un essai - Exige un mail porteur : Non
- Connexion : Calendly
- Entrées :
main - Sorties :
main
Connexion
Ce nœud exige une connexion Calendly.
Paramètres
connection
Connexion Calendly — La connexion Calendly à employer. Elle se crée une fois dans Connexions ; sa clé n’apparaît jamais dans le workflow.
- Type : Connexion (
credential) - Requis : Oui
- Défaut :
""(vide)
action
Action
- Type : Un choix (
options) - Requis : Oui
- Défaut :
eventTypes - Options :
eventTypes— Lister mes types de rendez-vous : Avec leur lien de prise de rendez-vous, à coller dans une réponse.events— Lister les rendez-vous planifiés : Filtrables par période, par statut et par type.event— Lire un rendez-vous : Le détail, et ses invités.cancel— Annuler un rendez-vous : Calendly prévient l’invité — c’est son comportement, pas une option.me— Lire mon compte : Nom, adresse, fuseau et page de réservation.
eventType
Type de rendez-vous — Facultatif sur la liste des rendez-vous : laissé vide, tous les types sont pris.
- Type : Ressource distante (
resourceLocator) - Requis : Non
- Façons de choisir : dans une liste, saisir un identifiant, coller une URL (
calendly.eventType) - Listé avec la connexion de :
connection - Affiché quand :
actionvaut l’une deeventTypes,events
eventUri
Rendez-vous — L’URI du rendez-vous (https://api.calendly.com/scheduled_events/…), telle que la liste la rend dans data.
- Type : Texte (
string) - Requis : Oui
- Défaut :
""(vide) - 500 caractères au plus
- Exemple :
{{ data.api_1.events[0].uri }} - Affiché quand :
actionvaut l’une deevent,cancel - Expressions :
{{ }}accepté
withInvitees
Inclure les invités — Une requête de plus : le nom, l’adresse et les réponses au questionnaire.
- Type : Oui / non (
boolean) - Requis : Non
- Défaut :
true - Affiché quand :
actionvautevent
status
Statut
- Type : Un choix (
options) - Requis : Non
- Défaut :
active - Options :
any— Peu importeactive— À venir ou en courscanceled— Annulés
- Affiché quand :
actionvautevents
minStartTime
À partir du — Un instant ISO 8601 (2026-09-22T00:00:00Z). Vide = sans borne.
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 40 caractères au plus
- Affiché quand :
actionvautevents - Expressions :
{{ }}accepté
maxStartTime
Jusqu’au
- Type : Texte (
string) - Requis : Non
- Défaut :
""(vide) - 40 caractères au plus
- Affiché quand :
actionvautevents - Expressions :
{{ }}accepté
limit
Nombre maximum
- Type : Nombre (
number) - Requis : Non
- Défaut :
20 - Nombre entier, de 1 à 100
- Affiché quand :
actionvaut l’une deeventTypes,events
reason
Motif d’annulation — Communiqué à l’invité par Calendly. Accepte des expressions {{ }}.
- Type : Texte long (
text) - Requis : Non
- Défaut :
""(vide) - 500 caractères au plus
- Affiché quand :
actionvautcancel - Expressions :
{{ }}accepté
Sorties
main— Empruntée une fois l’appel à Calendly réussi, quelle que soit l’action. Une réponse d’erreur de Calendly fait échouer l’étape à la place.
Données produites
Ce que ce nœud ajoute aux données de l’exécution, et comment le lire dans une expression. <step> désigne la clé de l’étape : le nom du nœud ramené à un identifiant (voir Données et expressions).
{{ data.<step>.schedulingUrl }}—string. Lister mes types de rendez-vous seulement : le lien de prise de rendez-vous du premier type rendu (ou du type choisi). Vide quand aucun n’est trouvé.{{ data.<step>.eventTypes }}—array of { uri, name, durationMinutes, schedulingUrl, description }. Lister mes types de rendez-vous seulement : les types de rendez-vous actifs du compte, triés par nom.uriest l’URI Calendly du type,schedulingUrlson lien de prise de rendez-vous,descriptionsa description en texte brut.{{ data.<step>.events }}—array of { uri, name, status, startTime, endTime, eventTypeUri, location }. Lister les rendez-vous planifiés seulement : les rendez-vous, du plus proche au plus lointain.uriest ce qu’attendent Lire un rendez-vous et Annuler un rendez-vous,statusvautactiveoucanceled,locationest l’objet de lieu tel que Calendly le rend.{{ data.<step>.events.0.uri }}—string. Lister les rendez-vous planifiés seulement : l’URI du premier rendez-vous rendu.{{ data.<step>.count }}—number. Lister mes types de rendez-vous et Lister les rendez-vous planifiés : le nombre d’éléments rendus.{{ data.<step>.truncated }}—boolean. Lister mes types de rendez-vous et Lister les rendez-vous planifiés : true quand il existait plus d’éléments que le Nombre maximum ne le permettait.{{ data.<step>.event }}—{ uri, name, status, startTime, endTime, eventTypeUri, location }. Lire un rendez-vous seulement : le rendez-vous lu.{{ data.<step>.invitees }}—array of { uri, name, email, status, timeZone, cancelUrl, rescheduleUrl }. Lire un rendez-vous seulement : les invités du rendez-vous, quand Inclure les invités est activé (vide sinon).cancelUrletrescheduleUrlsont les liens propres à l’invité.{{ data.<step>.inviteeName }}—string. Lire un rendez-vous seulement : le nom du premier invité, vide s’il n’y en a pas.{{ data.<step>.inviteeEmail }}—string. Lire un rendez-vous seulement : l’adresse du premier invité, vide s’il n’y en a pas.{{ data.<step>.user }}—{ uri, name, email, schedulingUrl, timeZone, organization }. Lire mon compte seulement : le compte de la connexion.schedulingUrlest sa page de réservation,organizationl’URI de son organisation courante.{{ data.<step>.cancelled }}—boolean. Annuler un rendez-vous seulement : true quand l’annulation a été envoyée à Calendly, false en essai.{{ data.<step>.eventUuid }}—string. Annuler un rendez-vous seulement : l’identifiant tiré de l’URI du rendez-vous.{{ data.<step>.reason }}—string. Annuler un rendez-vous seulement : le motif d’annulation envoyé, vide si aucun n’a été donné.{{ data.<step>.simulated }}—boolean. true quand l’action a été décrite au lieu d’être faite. Seule Annuler un rendez-vous est simulée, en essai ; les lectures partent toujours pour de bon.{{ data.<step>.summary }}—string. Le résumé d’une ligne dans la langue du membre, par exemple « 3 types de rendez-vous lus. » (avecsummaryKeyetsummaryParams).
Opérations
Le nœud a un seul paramètre Action (action). Chaque action appelle l’API Calendly avec le jeton de la connexion.
- Lister mes types de rendez-vous (
eventTypes, le défaut). Lit le compte (GET /users/me), puis ses types de rendez-vous actifs (GET /event_types, triés par nom), jusqu’au Nombre maximum (limit, de 1 à 100, 20 par défaut). Avec Type de rendez-vous (eventType) renseigné, seul ce type est gardé : c’est ainsi qu’on obtient le lien d’un type précis. PublieeventTypes,count,schedulingUrl,truncated. - Lister les rendez-vous planifiés (
events). Lit le compte, puis ses rendez-vous planifiés (GET /scheduled_events), du plus proche au plus lointain, jusqu’au Nombre maximum. Filtres : Statut (status:activepar défaut,canceled, ouany), Type de rendez-vous, À partir du (minStartTime) et Jusqu’au (maxStartTime), deux instants ISO 8601 comme2026-09-22T00:00:00Z; une borne vide veut dire sans borne. Publieevents,count,truncated. - Lire un rendez-vous (
event). Lit le rendez-vous désigné par Rendez-vous (eventUri) puis, avec Inclure les invités (withInvitees, activé par défaut), ses invités par une seconde requête. Publieevent,invitees,inviteeName,inviteeEmail. - Annuler un rendez-vous (
cancel). Annule le rendez-vous désigné par Rendez-vous, avec le Motif d’annulation (reason) facultatif. Calendly prévient lui-même l’invité ; ce n’est pas désactivable. Publiecancelled,eventUuid,reason. - Lire mon compte (
me). Lit le compte de la connexion. Publieuser.
Chaque action publie aussi simulated et summary.
Rendez-vous accepte l’URI complète (https://api.calendly.com/scheduled_events/…), telle que events la rend, ou l’identifiant nu : le nœud garde le dernier segment de l’URI.
Exemple
Un prospect demande un rendez-vous. Le workflow liste le type « Appel découverte » et répond avec son lien. Le nœud s’appelle « Lien de réservation », ses données vivent donc sous lien_de_reservation :
text
connection Calendly — équipe commerciale
action eventTypes
eventType (mode liste) Appel découverte — 30 min
limit 20Les données de l’étape :
json
{
"eventTypes": [
{
"uri": "https://api.calendly.com/event_types/AAAA1111",
"name": "Appel découverte — 30 min",
"durationMinutes": 30,
"schedulingUrl": "https://calendly.com/equipe-commerciale/decouverte",
"description": ""
}
],
"count": 1,
"schedulingUrl": "https://calendly.com/equipe-commerciale/decouverte",
"truncated": false,
"simulated": false
}Une étape Rédiger écrit ensuite « Vous pouvez réserver un créneau ici : {{ data.lien_de_reservation.schedulingUrl }} ».
Pour annuler un rendez-vous trouvé par une liste, enchaînez un second nœud Calendly avec action à cancel et Rendez-vous à {{ data.rendez_vous.events.0.uri }} (où rendez_vous est le nom de l’étape de liste).
Conseils
- Essais. Les quatre actions de lecture partent pour de bon en essai : l’aperçu montre vos vrais types de rendez-vous et vos vrais rendez-vous. Annuler un rendez-vous est seulement décrit : rien n’est envoyé à Calendly,
cancelledvaut false etsimulatedvaut true. - Nouvelles tentatives. Les lectures peuvent être retentées sans risque. Annuler un rendez-vous ne vérifie pas l’état du rendez-vous au préalable : si le moteur retente l’étape après un incident, la demande d’annulation repart.
- Deux requêtes pour une liste. Calendly exige l’URI du compte pour lister les types et les rendez-vous ; le nœud lit donc
/users/med’abord. Chaque liste coûte une requête de plus. - Rendez-vous absent. Un Rendez-vous vide fait échouer l’étape avec
node_invalid_param. Un rendez-vous inconnu la fait échouer avecintegration.not_found. - Erreurs.
integration.unauthorized: le jeton a été refusé ou révoqué ; créez-en un nouveau et mettez à jour la connexion.integration.rate_limitedetintegration.unavailablesont retentées automatiquement : les requêtes sont cadencées à 60 par minute et par connexion, et une réponse 409, 429 ou 5xx a droit à trois tentatives (en respectantRetry-After) avant que le moteur ne reprenne l’étape plus tard. Voir Gestion des erreurs.