Skip to content

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 : action vaut l’une de eventTypes, 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 : action vaut l’une de event, 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 : action vaut event

status ​

Statut

  • Type : Un choix (options)
  • Requis : Non
  • Défaut : active
  • Options :
    • any — Peu importe
    • active — À venir ou en cours
    • canceled — Annulés
  • Affiché quand : action vaut events

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 : action vaut events
  • Expressions : {{ }} accepté

maxStartTime ​

Jusqu’au

  • Type : Texte (string)
  • Requis : Non
  • Défaut : "" (vide)
  • 40 caractères au plus
  • Affiché quand : action vaut events
  • Expressions : {{ }} accepté

limit ​

Nombre maximum

  • Type : Nombre (number)
  • Requis : Non
  • Défaut : 20
  • Nombre entier, de 1 à 100
  • Affiché quand : action vaut l’une de eventTypes, 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 : action vaut cancel
  • 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. uri est l’URI Calendly du type, schedulingUrl son lien de prise de rendez-vous, description sa 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. uri est ce qu’attendent Lire un rendez-vous et Annuler un rendez-vous, status vaut active ou canceled, location est 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). cancelUrl et rescheduleUrl sont 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. schedulingUrl est sa page de réservation, organization l’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. » (avec summaryKey et summaryParams).

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. Publie eventTypes, 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 : active par défaut, canceled, ou any), Type de rendez-vous, À partir du (minStartTime) et Jusqu’au (maxStartTime), deux instants ISO 8601 comme 2026-09-22T00:00:00Z ; une borne vide veut dire sans borne. Publie events, 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. Publie event, 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. Publie cancelled, eventUuid, reason.
  • Lire mon compte (me). Lit le compte de la connexion. Publie user.

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        20

Les 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, cancelled vaut false et simulated vaut 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/me d’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 avec integration.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_limited et integration.unavailable sont 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 respectant Retry-After) avant que le moteur ne reprenne l’étape plus tard. Voir Gestion des erreurs.