Webhooks

Webhooks

Create a new Webhook

  1. Go to Your Integrations (opens in a new tab).
  2. Scrolling down to the bottom of the page you will see a button called ‘New Webhook’. Press this button to open up the box which will ask for details on creating the new webhooks.
  3. Select whatever event this triggers, this may be Create, Cancelled or Reschedule.
  4. Once this is completed, insert the Subscriber URL then click 'Save' located at the bottom right of the box.

Edit an existing Webhook

  1. Go to Your Integrations (opens in a new tab).
  2. Scrolling down to the bottom of the page you will see an icon to the right of your webhook, this will be labeled edit webhook.
  3. Press the button and from here you can change any of the webhook settings. This could be changing the event that is triggered and this may be Create, Cancelled or Reschedule. Or you can change the Subscriber URL.

Delete an existing Webhook

  1. Go to Your Integrations (opens in a new tab).
  2. Scrolling down to the bottom of the page you will see an icon to the right of your webhook, this will be labeled delete webhook.
  3. Press the button and from here your webhook will no longer work and be deleted.

Webhook metadata

Metadata is a way to pass extra information to Scheduler about a booking that is returned through a webhook.

Custom Webhooks template variable list

Customizable webhooks are a great way reduce the development effort and in many cases remove the need for a developer to build an additional integration service. Using a custom template you can easily decide what data you receive in your webhook endpoint, manage the payload and setup related workflows accordingly. Here’s a breakdown of the payload that you would receive via an incoming webhook.

Webhook structure

VariableTypeDescription
triggerEventStringThe name of the trigger event [BOOKING_CREATED, BOOKING_RESHEDULED, BOOKING_CANCELLED]
createdAtStringThe time of the webhook trigger
typeStringThe event-type slug
titleStringThe event-type name
startTimeStringThe event's start time
endTimeStringThe event's end time
description?StringThe event's description as described in the event type
location?StringLocation of the event
organizerPersonThe organizer of the event
attendeesPerson[]The event booker & any guests
uid?StringThe UID of the booking
resheduleUid?StringThe UID for the rescheduling
cancellationReason?StringReason for cancellation
rejectionReason?StringReason for rejection
team?.nameStringName of the team booked
team?.membersString[]Members of the team booked

Person structure

VariableTypeDescription
nameStringName of the individual
emailStringEmail of the individual
timeZoneStringTimezone of the individual ("America/New_York", "Asia/Kolkata", etc.)
language.localeStringLocale of the individual ("en", "fr", etc.)

Example usage of variables for custom template:

\{
 
    "content": "A new event has been scheduled",
    "type": "\{\{type\}\}",
    "name": "\{\{title\}\}",
    "organizer": "\{\{organizer.name\}\}",
    "booker": "\{\{attendees.0.name\}\}"
 
\}