Skip to main content
POST
/
event
curl --request POST \
  --url https://api.zeeg.me/v2/event \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "ownerSlug": "lena-meier",
  "eventTypeSlug": "30min-discovery-call",
  "date": "2026-04-15",
  "duration": 30,
  "name": "Sophie Laurent",
  "email": "sophie.laurent@northwind.io",
  "guests": [
    "alex.chen@northwind.io"
  ],
  "location": "GOOGLE_MEET",
  "timeZone": "Europe/Paris",
  "start": "09:00",
  "question_answers": [
    {
      "question_id": 1,
      "answer": "Product demo and pricing options"
    }
  ],
  "customQueryParams": {},
  "utm": {
    "utm_campaign": "spring_launch",
    "utm_source": "linkedin",
    "utm_medium": "social"
  }
}
'
{
  "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-15T07:00:00.000000Z",
  "endTime": "2026-04-15T07:30:00.000000Z",
  "duration": 30,
  "status": "confirmed",
  "eventTypeUri": "https://api.zeeg.me/v2/event-types/80f46bf5-eb01-4c07-960e-a9a3e18aae5e",
  "location": {
    "type": "Google Meet",
    "joinUrl": "https://meet.google.com/abc-defg-hij"
  },
  "maxActiveInvitees": 1,
  "activeInviteesCount": 1,
  "invitees": [
    {
      "uuid": "zg-O69bad4047abf0",
      "salutation": null,
      "fullName": "Sophie Laurent",
      "email": "sophie.laurent@northwind.io",
      "guests": [
        "alex.chen@northwind.io"
      ],
      "timeZone": "Europe/Paris",
      "cancellation": {
        "cancelledAt": null,
        "cancelledBy": null,
        "cancellerType": null,
        "cancellationReason": null
      },
      "payment": null,
      "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
      },
      "customQueryParams": []
    }
  ],
  "guests": [
    "alex.chen@northwind.io"
  ],
  "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:00.000000Z",
  "currentTime": "2026-04-10T08:30:00+00:00"
}
{
"success": false,
"message": "The requested time slot is not available for booking. Please select another time.",
"status": 400
}
{
"message": "Unauthenticated."
}
{
"success": false,
"message": "You cannot access this resource.",
"status": 403
}
{
"error": "Entry for EventType not found"
}
{
"message": "The date field must be a valid date.",
"errors": {
"date": [
"The date field must be a valid date."
]
}
}

Authorizations

Authorization
string
header
required

Body

application/json
  • Required fields may vary based on the event type's configuration.
  • Before creating an event, verify availability using the availability endpoint.
  • Validate any required custom fields (guests, phone, questions) by checking the event type's settings first.
ownerSlug
string
required

The slug of the scheduling page owner, can be a user or a team.

eventTypeSlug
string
required

The slug of the scheduling page.

date
string<date>
required

The event date in YYYY-MM-DD format.

duration
integer
required

Meeting duration in minutes.

name
string
required

Invitee's full name.

email
string<email>
required

Invitee's email address.

timeZone
string
required

Invitee's IANA timezone identifier.

Example:

"Europe/Paris"

start
string<time>
required

Start time in HH:mm format (in the specified timeZone).

Example:

"09:00"

phone
string

Invitee's phone number (required for "PHONE_CALL" location type).

guests
string<email>[]

Array of additional guest email addresses.

location
string

Location type identifier (required if locations are enabled in the scheduling page). Accepted values:

  • "IN_PERSON": Physical in-person meeting (requires locationOptions with address and details).
  • "PHONE_CALL": Phone call meeting (requires locationOptions.callType and phone field).
  • Other types as configured in the scheduling page (e.g. "ZOOM", "GOOGLE_MEET", "MICROSOFT_TEAMS").
locationOptions
object

Additional location details, required for certain location types:

  • For in-person meetings (location: "IN_PERSON"): provide address and details.
  • For phone call meetings (location: "PHONE_CALL"): provide callType (e.g. "I_WILL_CALL").
question_answers
object[]

Array of question-answer pairs for custom invitee questions configured on the scheduling page.

customQueryParams
object

Custom URL parameters to pass through.

utm
object

UTM tracking parameters.

The shared link token, required when booking via a shared or collective scheduling link.

Response

OK

A scheduled event resource. This is the single canonical shape returned by all scheduled-event endpoints and embedded in the AI agent call webhook payload.

uri
string<uri>
required

Public API URI of the scheduled event resource.

uuid
string
required

Zeeg event identifier (zg-XXX format)

Example:

"zg-O69bac566950c6"

title
string
required

Title of the scheduled event.

type
string
required

Event type kind (e.g. ONE_ON_ONE, GROUP, ROUND_ROBIN).

startTime
string<date-time>
required

ISO 8601 UTC start time of the booked event.

endTime
string<date-time>
required

ISO 8601 UTC end time of the booked event.

duration
integer
required

Event duration in minutes.

status
string
required

Booking status (e.g. confirmed, cancelled).

eventTypeUri
string<uri>
required

Public API URI of the event type this booking was made against.

maxActiveInvitees
integer
required

Maximum number of active invitees the event allows.

activeInviteesCount
integer
required

Current number of active (non-cancelled) invitees.

invitees
object[]
required

Invitees booked on the scheduled event.

createdAt
string<date-time>
required

ISO 8601 UTC timestamp when the booking was created.

location
object | null

Meeting location for the booking.

guests
string[] | null

Array of additional emails invited

hosts
object[] | null

Hosts assigned to the scheduled event.

updatedAt
string<date-time>

ISO 8601 UTC timestamp when the booking was last updated.

currentTime
string<date-time>

Current server time

Last modified on April 29, 2026