Skip to main content
The Zeeg API gives you full control over scheduled events in your workspace. You can list events with powerful filters, retrieve detailed event information, cancel events or individual invitees, and hand over Round Robin events to a different host.

Listing events

Retrieve a paginated list of scheduled events with GET /scheduled-events. Use query parameters to filter and sort the results.

Available filters

ParameterTypeDescription
statusstringFilter by event status: confirmed or cancelled
minStartTimeISO 8601Only return events starting at or after this time
maxStartTimeISO 8601Only return events starting at or before this time
userSlugstringFilter by the host’s user slug
hostEmailstringFilter by the host’s email address
inviteeEmailstringFilter by an invitee’s email address
teamSlugstringFilter by team slug
keywordstringSearch events by keyword
sortstringSort by start time: asc (default) or desc
scopestringSet to all to list events across the entire organization (requires an admin or owner token with admin:full scope)

Example: filter by date range and status

curl -X GET "https://api.zeeg.me/v2/scheduled-events?status=confirmed&minStartTime=2026-04-01T00:00:00Z&maxStartTime=2026-04-30T23:59:59Z&sort=asc" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"
To list events across your entire organization, add scope=all. This requires a token with the admin:full scope.
curl -X GET "https://api.zeeg.me/v2/scheduled-events?scope=all" \
  -H "Authorization: Bearer YOUR_ADMIN_TOKEN" \
  -H "Accept: application/json"

Getting event details

Retrieve full details for a single event with GET /scheduled-events/{uuid}. Event UUIDs follow the format zg-XXX (for example, zg-O69bac566950c6).
curl -X GET "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json"

Example response

{
  "resource": {
    "uri": "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6",
    "uuid": "zg-O69bac566950c6",
    "title": "30-Minute Discovery Call",
    "type": "ONE_ON_ONE",
    "startTime": "2026-04-15T09:00:00.000000Z",
    "endTime": "2026-04-15T09:30:00.000000Z",
    "duration": 30,
    "status": "confirmed",
    "eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
    "maxActiveInvitees": 1,
    "activeInviteesCount": 1,
    "location": {
      "type": "Google Meet",
      "joinUrl": "https://meet.google.com/abc-defg-hij"
    },
    "invitees": [
      {
        "uuid": "zg-O69bad4047abf0",
        "salutation": "Ms.",
        "fullName": "Sophie Laurent",
        "email": "sophie.laurent@northwind.io",
        "guests": ["alex.chen@northwind.io"],
        "timeZone": "Europe/Paris",
        "questions": [
          {
            "answer": "Product demo and pricing options",
            "answer_type": "STRING",
            "question": "What would you like to discuss?"
          }
        ],
        "scheduledAt": "2026-04-10T08:30:00.000000Z",
        "utm": {
          "utm_campaign": "spring_launch",
          "utm_source": "linkedin",
          "utm_medium": "social",
          "utm_content": null,
          "utm_term": null
        }
      }
    ],
    "hosts": [
      {
        "firstName": "Lena",
        "lastName": "Meier",
        "email": "lena.meier@horizondigital.de",
        "slug": "lena-meier",
        "url": "https://zeeg.me/lena-meier",
        "avatarUrl": null
      }
    ],
    "createdAt": "2026-04-10T08:30:00.000000Z",
    "updatedAt": "2026-04-10T08:30:02.000000Z"
  }
}

Cancelling events

Cancel a scheduled event with PUT /scheduled-events/{uuid}/cancel. You can optionally include a cancellationReason (maximum 512 characters) that will be shared with participants.
curl -X PUT "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6/cancel" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"cancellationReason": "Scheduling conflict — will rebook next week."}'
A successful cancellation returns a 200 response confirming the operation.
{
  "success": true,
  "message": "Event cancelled successfully.",
  "status": 200
}
Attempting to cancel an event that is already cancelled will return a 400 Bad Request error. Check the event’s status field before making the request if you need to handle this case gracefully.

Cancelling individual invitees

For group events where you need to remove a single attendee without cancelling the entire event, use PUT /scheduled-invitees/{uuid}/cancel. The invitee UUID can be found in the event details response.
curl -X PUT "https://api.zeeg.me/v2/scheduled-invitees/zg-O69bad4047abf0/cancel" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"cancellationReason": "Attendee can no longer make it."}'

Handing over events

Transfer a Round Robin event to a different host with PUT /scheduled-events/{uuid}/handover. You can specify the new host explicitly or let the system auto-assign one based on the Round Robin rules.

Options

ParameterTypeDefaultDescription
newHostEmailstringEmail of the new host. If omitted, the system auto-assigns using Round Robin logic.
requireHostAvailabilitybooleanfalseWhen true, the handover only succeeds if the new host is available at the event time.
fallbackToReschedulebooleantrueWhen true and the new host is unavailable, sends a reschedule request to the invitee instead of failing.
curl -X PUT "https://api.zeeg.me/v2/scheduled-events/zg-O69bac566950c6/handover" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "newHostEmail": "marco.rossi@horizondigital.de",
    "requireHostAvailability": true,
    "fallbackToReschedule": true
  }'
Handover limitations. The handover endpoint currently has the following constraints:
  • Round Robin only — handover is only supported for events booked through a Round Robin scheduling page. Other event types will return an error.
  • Calendar provider — the host must use a Microsoft calendar or have no calendar connected. Google Calendar is not yet supported for handovers.
  • No Zoom or Webex locations — events with Zoom or Webex meeting locations cannot be handed over. The meeting link is tied to the original host and cannot be transferred automatically.

Adding notes to events

You can attach internal notes to scheduled events that are visible only to hosts and workspace members. Notes are useful for adding context before or after a meeting. See the Notes API reference for the full list of endpoints.

Real-time updates

Instead of polling GET /scheduled-events to detect changes, set up webhook subscriptions to receive real-time notifications when events are created, cancelled, rescheduled, or handed over. This is more efficient and gives you near-instant updates.
Last modified on April 4, 2026