Si vous avez dĂ©jĂ le bearer access token( sinon je vous explique dans un autre guide , ici), j’ai crĂ©e une interface un peu plus user friendly que les postman: http://83.202.18.38 (hĂ©bergĂ© sur mon raspberrypi)
Pré-requis
Pour configurer un webhook sur Calendly, vous aurez besoin de :
- Un bearer access token (voir ici pour le guide de récupération).
- Un compte Calendly (plan standard minimum).
Ătape 1 : VĂ©rifier le Bearer Access Token est valide
Avant de configurer un webhook, assurez-vous que votre bearer token est valide. Pour cela, effectuez une requĂȘte GET
:
GET https://api.calendly.com/users/me
Incluez le bearer token dans les en-tĂȘtes.

Si tout fonctionne, vous obtiendrez une réponse JSON contenant des informations sur votre compte, comme le champ current_organization
, que nous utiliserons plus tard.
{
"resource": {
"avatar_url": null,
"created_at": "2024-10-25T22:30:49.793840Z",
"current_organization": "https://api.calendly.com/organizations/b2f9ebc7-86a2-4afe-846f-553c189a1071",
"email": "[email protected]",
"locale": "en",
"name": "Pascal azeaze",
"resource_type": "User",
"scheduling_url": "https://calendly.com/pascalyut",
"slug": "pascalyut",
"timezone": "America/New_York",
"updated_at": "2024-10-26T13:12:05.838390Z",
"uri": "https://api.calendly.com/users/7cf9b0ae-357b-46e9-95cf-7b99ab147643"
}
}
Ătape 2 : CrĂ©er un Webhook de test
Utilisez webhook.site pour tester votre webhook. Copiez lâURL unique gĂ©nĂ©rĂ©e par le site.

CrĂ©ez le webhook en envoyant une requĂȘte POST
Ă :
POST https://api.calendly.com/webhook_subscriptions
Nâoubliez pas dâinclure votre bearer token et configurez les paramĂštres suivants dans le Body :
- scope :
"organization"
- url : lâURL gĂ©nĂ©rĂ©e par webhook.site avec un paramĂštre quelconque selon vos besoins
status=open
- events : Liste des événements, comme
"invitee.created"
- organization : Votre
current_organization
noté précédemment - signing_key: que vous retrouverez dans votre app calendly dev

Ătape 3 : VĂ©rifier la crĂ©ation du Webhook
Pour voir si votre webhook est bien configurĂ©, envoyez une requĂȘte GET
Ă :
GET https://api.calendly.com/webhook_subscriptions
On renseigne lâorganization et scope via le Json body

Cela retournera une liste des webhooks actifs avec leurs paramĂštres.
{
"collection": [
{
"callback_url": "https://webhook.site/a9288b04-7bae-49e9-9e33-abbb13b6f778?statut=open",
"created_at": "2024-10-26T13:30:11.983593Z",
"creator": "https://api.calendly.com/users/7cf9b0ae-357b-46e9-95cf-7b99ab147643",
"events": [
"invitee.created"
],
"group": null,
"organization": "https://api.calendly.com/organizations/b2f9ebc7-86a2-4afe-846f-553c189a1071",
"retry_started_at": null,
"scope": "organization",
"state": "active",
"updated_at": "2024-10-26T13:30:11.983593Z",
"uri": "https://api.calendly.com/webhook_subscriptions/53057376-f3c5-4087-9538-ed01ea961426",
"user": null
}
],
"pagination": {
"count": 1,
"next_page": null,
"next_page_token": null,
"previous_page": null,
"previous_page_token": null
}
}
Tester le Webhook en conditions réelles
Et enfin, Une fois configuré, le webhook se déclenche à chaque prise de rendez-vous.
Dans notre exemple, dans webhook.site affiche une réponse JSON contenant des informations détaillées (comme le questions_and_answers
dans payload
), qui peut ĂȘtre exploitĂ©e pour personnaliser lâinteraction selon les besoins de votre application.

Interface utilisateur alternative
Pour simplifier lâutilisation des webhooks sans avoir Ă rĂ©pĂ©ter les configurations dans Postman, jâai créé une interface conviviale, gratuite ,et sans enregistrement de donnĂ©es. ici : http://83.202.18.38 (hĂ©bergĂ© sur mon raspberrypi)
Je suis Pascal Yu, je vous aide Ă dĂ©velopper vos solutions Ă l’aide de Symfony.
Prend un rendez vous gratuitement avec moi pour savoir comment je peux vous aider.