Skip to main content
This payload is delivered to your webhook callback URL when an invitee.scheduled or invitee.cancelled event occurs. Both event types share the same structure — cancellation and rescheduling fields are only populated when relevant.
We recommend using invitee-related UUIDs (inviteeUuid) for storing and correlating data, as they ensure future compatibility — especially for Group events.

Event Info

event
string
required
Event type that triggered this webhook. Either invitee.scheduled or invitee.cancelled.
eventUri
string
required
Full API URI for the scheduled event. Example: https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6.
eventUuid
string
required
Zeeg event ID in zg-XXX format (e.g., zg-O69bac566950c6). Use this to uniquely identify the event.
title
string
required
Title of the scheduling page / event type (e.g., “30-Minute Discovery Call”).
type
string
required
Event type category. One of ONE_ON_ONE, GROUP, COLLECTIVE, ROUND_ROBIN, or FLEXI.
duration
integer
required
Event duration in minutes.
durationPretty
string
required
Human-readable duration (e.g., "30 mins", "1 hr 30 mins").

Invitee Info

inviteeSalutation
string | null
Invitee’s salutation (e.g., "Ms.", "Mr."). null if not provided.
inviteeFirstName
string | null
Invitee’s first name. null if not provided.
inviteeLastName
string | null
Invitee’s last name. null if not provided.
inviteeName
string
required
Invitee’s full display name.
inviteeEmail
string
required
Invitee’s email address.
inviteePhoneNumber
string | null
Invitee’s phone number. null if not collected.
inviteeTimezone
string
required
Invitee’s IANA timezone (e.g., "Europe/Paris").
inviteeNumberOfSeats
integer
required
Number of seats booked. 1 for standard bookings, higher for Group events.
inviteeUuid
string
required
Zeeg invitee ID in zg-XXX format. Use this to track a specific booking across schedule, cancel, and reschedule events. Recommended for storage and correlation.

Timing

startAt
string
required
Event start time in UTC (ISO 8601).
endAt
string
required
Event end time in UTC (ISO 8601).
inviteeStartAt
string
required
Event start time in the invitee’s local timezone (ISO 8601 with offset).
inviteeEndAt
string
required
Event end time in the invitee’s local timezone (ISO 8601 with offset).
inviteeStartAtPretty
string
required
Human-readable start time in the invitee’s timezone. Format: HH:mm - Day, Month DD, YYYY (e.g., "11:00 - Wednesday, April 15, 2026").
inviteeEndAtPretty
string
required
Human-readable end time in the invitee’s timezone. Same format as inviteeStartAtPretty.

Host Info

hosts
object
required
Map of 1-based host positions to host full names (e.g., {"1": "Lena Meier"}).
hostsDetails
array
required
Array of host detail objects.
teamName
string | null
Team name if the event belongs to a team, otherwise null.

Location

location
string | null
Location type or name (e.g., "Google Meet", "Zoom", a physical address). null if no location is set.
Join URL for virtual meetings. null for non-virtual locations or if not applicable.

Questions

questions
array
required
Array of question/answer objects from the invitee’s booking form.
questionsAndAnswers
object
required
Flat key-value map of questions to answers (question text as key). Convenient for quick lookups.

Scheduling Page

eventTypeUri
string
required
API URI for the event type. Example: https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e.
Single-use scheduling link used for this booking. null if a standard scheduling page was used.

Guests

guests
array
required
Array of additional guest email addresses added by the invitee. Empty array if no guests were added.

Payment

price
number | null
Total price charged for the booking. null if the event is free.
pricePerSeat
number | null
Price per seat. Equal to price for single-seat bookings. For multi-seat bookings, this is price / inviteeNumberOfSeats. null if the event is free.
currency
string | null
Currency code (e.g., "EUR", "USD"). null if the event is free.
paymentGateway
string | null
Payment provider used (e.g., "stripe", "paypal"). null if the event is free.
transactionId
string | null
Payment provider’s transaction ID. null if the event is free.
cancelUrl
string | null
URL the invitee can use to cancel the event. null if the event is already cancelled.
rescheduleUrl
string | null
URL the invitee can use to reschedule the event. null if the event is already cancelled.

Cancellation

These fields are populated when the event is invitee.cancelled.
cancelled
boolean
required
true if the event has been cancelled, false otherwise.
cancelledAt
string | null
Cancellation timestamp in UTC (ISO 8601). null if not cancelled.
cancelledBy
string | null
Name of the person who cancelled the event. null if not cancelled.
cancellationReason
string | null
Reason provided for the cancellation. null if not cancelled or no reason was given.

Rescheduling

These fields are populated when a booking has been rescheduled. On a reschedule, the old event receives invitee.cancelled and the new event receives invitee.scheduled, both with rescheduling context. The old* fields appear on the new event’s payload (referencing the event it replaced). The new* fields appear on the old event’s payload (referencing the event that replaced it).
rescheduled
boolean
required
true if this event was rescheduled (i.e., a newer event replaced it), false otherwise.
rescheduledAt
string | null
Rescheduling timestamp in UTC (ISO 8601).
rescheduledBy
string | null
Name of the person who initiated the reschedule.
rescheduleReason
string | null
Reason provided for rescheduling.
oldEventUri
string | null
API URI of the previous (old) event before rescheduling.
oldEventUuid
string | null
UUID of the previous (old) event.
oldInviteeUuid
string | null
Invitee UUID from the previous (old) event.
oldStartAt
string | null
Start time (UTC, ISO 8601) of the previous event.
oldInviteeStartAt
string | null
Start time of the previous event in the invitee’s timezone (human-readable format).
newEventUri
string | null
API URI of the replacement (new) event after rescheduling.
newEventUuid
string | null
UUID of the replacement (new) event.
newInviteeUuid
string | null
Invitee UUID for the replacement (new) event.
newStartAt
string | null
Start time (UTC, ISO 8601) of the replacement event.
newInviteeStartAt
string | null
Start time of the replacement event in the invitee’s timezone (human-readable format).

UTM Parameters

These fields capture UTM tracking parameters if they were present on the scheduling page URL when the invitee booked.
utmCampaign
string | null
The utm_campaign value.
utmSource
string | null
The utm_source value.
utmMedium
string | null
The utm_medium value.
utmTerm
string | null
The utm_term value.
utmContent
string | null
The utm_content value.

Metadata

createdAt
string
required
Timestamp (UTC, ISO 8601) of when the booking was created.

Full Payload Example

{
  "event": "invitee.scheduled",
  "eventUri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6",
  "inviteeSalutation": "Ms.",
  "inviteeFirstName": "Sophie",
  "inviteeLastName": "Laurent",
  "inviteeName": "Sophie Laurent",
  "inviteeEmail": "sophie.laurent@northwind.io",
  "inviteePhoneNumber": "+49 170 9876543",
  "inviteeTimezone": "Europe/Paris",
  "inviteeNumberOfSeats": 1,
  "teamName": null,
  "hosts": {
    "1": "Lena Meier"
  },
  "hostsDetails": [
    {
      "slug": "lena-meier",
      "firstName": "Lena",
      "lastName": "Meier",
      "email": "lena.meier@horizondigital.de",
      "fullName": "Lena Meier"
    }
  ],
  "title": "30-Minute Discovery Call",
  "duration": 30,
  "durationPretty": "30 mins",
  "type": "ONE_ON_ONE",
  "eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
  "singleUseLink": null,
  "startAt": "2026-04-15T09:00:00+00:00",
  "inviteeStartAt": "2026-04-15T11:00:00+02:00",
  "inviteeStartAtPretty": "11:00 - Wednesday, April 15, 2026",
  "endAt": "2026-04-15T09:30:00+00:00",
  "inviteeEndAt": "2026-04-15T11:30:00+02:00",
  "inviteeEndAtPretty": "11:30 - Wednesday, April 15, 2026",
  "location": "Google Meet",
  "locationLink": "https://meet.google.com/abc-defg-hij",
  "questions": [
    {
      "question": "What would you like to discuss?",
      "answer": "Product demo and pricing options"
    }
  ],
  "questionsAndAnswers": {
    "What would you like to discuss?": "Product demo and pricing options"
  },
  "price": null,
  "pricePerSeat": null,
  "currency": null,
  "paymentGateway": null,
  "transactionId": null,
  "guests": ["alex.chen@northwind.io"],
  "eventUuid": "zg-O69bac566950c6",
  "inviteeUuid": "zg-O69bad4047abf0",
  "cancelUrl": "https://zeeg.me/cancel/zg-O69bad4047abf0",
  "rescheduleUrl": "https://zeeg.me/rescheduling/zg-O69bad4047abf0",
  "cancelled": false,
  "cancelledAt": null,
  "cancelledBy": null,
  "cancellationReason": null,
  "rescheduled": false,
  "rescheduledAt": null,
  "rescheduledBy": null,
  "rescheduleReason": null,
  "oldEventUri": null,
  "oldEventUuid": null,
  "oldInviteeUuid": null,
  "oldStartAt": null,
  "oldInviteeStartAt": null,
  "newEventUri": null,
  "newEventUuid": null,
  "newInviteeUuid": null,
  "newStartAt": null,
  "newInviteeStartAt": null,
  "utmCampaign": "spring_launch",
  "utmSource": "linkedin",
  "utmMedium": "social",
  "utmTerm": null,
  "utmContent": null,
  "createdAt": "2026-04-10T08:30:00+00:00"
}
Last modified on April 4, 2026