> ## Documentation Index
> Fetch the complete documentation index at: https://developer.zeeg.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Reschedule a Scheduled Event

> Move a booking to a new date and time. The invitee and the host receive a reschedule notice, and the response names the new identifiers.



## OpenAPI

````yaml PUT /scheduled-events/{uuid}/reschedule
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
  - name: Routing Forms - Forms
    description: Read routing forms with their questions and their routes
  - name: Routing Forms - Submissions
    description: Read and delete the submissions that invitees send through a routing form
paths:
  /scheduled-events/{uuid}/reschedule:
    parameters:
      - schema:
          type: string
          format: uuid
          example: zg-O69bac566950c6
        name: uuid
        in: path
        required: true
        description: UUID of a specific scheduled event (zg-XXX format)
    put:
      tags:
        - Scheduled Events
      summary: Reschedule a scheduled event
      description: >-
        Move a booking to a new date and time. This endpoint exists on v2 only —
        v1 has no reschedule endpoint.


        Only the new slot is accepted. The invitee's name, email, phone, guests
        and question answers all carry over from the existing booking unchanged;
        the request cannot rewrite whose booking it is.


        A reschedule never preserves booking identity. Every scheduling page
        type (one-on-one, round robin, group, collective, flexi) gets a new
        booking with a new event `uuid` and a new invitee `uuid`; the old
        booking is torn down. The response names the resulting identifiers
        explicitly — do not assume the `uuid` you sent still refers to the live
        booking after this call succeeds.


        Call `GET /scheduled-events/{uuid}/reschedule-availability` first to
        discover which slots this endpoint accepts for a given booking. It runs
        the same slot computation this endpoint writes against, so the slots it
        returns are exactly the slots this endpoint accepts.


        When a round-robin event type keeps the original host on reschedule, the
        booking stays with the host it is booked with, and only that host's
        times are accepted. If that host has since left the event type, or their
        account is deactivated or deleted, round robin picks the host, as on a
        new booking.
      operationId: put-api-scheduled-event-reschedule
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - date
                - start
              properties:
                date:
                  type: string
                  format: date
                  description: New booking date, in `YYYY-MM-DD` format.
                  example: '2026-04-22'
                start:
                  type: string
                  description: >-
                    New start time, in `HH:mm` 24-hour format (in the given
                    `timeZone`).
                  example: '14:30'
                timeZone:
                  type: string
                  nullable: true
                  description: >-
                    IANA time zone for `date`/`start`. Defaults to the existing
                    invitee's time zone when omitted.
                  example: Europe/Paris
                duration:
                  type: integer
                  nullable: true
                  minimum: 1
                  description: >-
                    New duration in minutes. The event type ignores an
                    unsupported value and uses its own configured duration
                    instead.
                reason:
                  type: string
                  nullable: true
                  maxLength: 512
                  description: Optional reason for the reschedule.
            examples:
              Reschedule to a later slot:
                value:
                  date: '2026-04-22'
                  start: '14:30'
                  timeZone: Europe/Paris
                  reason: Requested a later slot.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                  - resource
                properties:
                  resource:
                    $ref: '#/components/schemas/ScheduledEvent'
              examples:
                Successful reschedule:
                  value:
                    resource:
                      uri: >-
                        https://api.zeeg.me/v2/scheduled-events/zg-O69bf1a2b3c4d5
                      uuid: zg-O69bf1a2b3c4d5
                      title: 30-Minute Discovery Call
                      type: ONE_ON_ONE
                      startTime: '2026-04-22T12:30:00.000000Z'
                      endTime: '2026-04-22T13:00: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-O69bf6d7e8f901
                          salutation: Ms.
                          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?
                          noShow: false
                          noShowAt: null
                          scheduledAt: '2026-04-17T10:00:00.000000Z'
                          utm:
                            utm_campaign: spring_launch
                            utm_source: linkedin
                            utm_medium: social
                            utm_content: null
                            utm_term: null
                          customQueryParams: {}
                          cancelUrl: https://zeeg.me/cancel/zg-O69bf6d7e8f901
                          rescheduleUrl: https://zeeg.me/reschedule/zg-O69bf6d7e8f901
                          rescheduled: false
                          rescheduling:
                            oldStartAt: '2026-04-15T09:00:00.000000Z'
                            newStartAt: '2026-04-22T12:30:00.000000Z'
                            rescheduledAt: '2026-04-17T10:00:00.000000Z'
                            previousEventUuid: zg-O69bac566950c6
                            previousInviteeUuid: zg-O69bad4047abf0
                            reason: Requested a later slot.
                            rescheduledBy: user
                            reschedulerFullName: Lena Meier
                          nextRescheduling: null
                      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
                      teamName: Sales
                      createdAt: '2026-04-17T10:00:00.000000Z'
                      updatedAt: '2026-04-17T10:00:00.000000Z'
                      currentTime: '2026-04-17T10:00:00+00:00'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Already cancelled:
                  value:
                    success: false
                    message: Event has already been cancelled!
                    status: 400
                Already rescheduled:
                  value:
                    success: false
                    message: The event has been already rescheduled.
                    status: 400
                Booking in the past:
                  value:
                    success: false
                    message: The event is in the past.
                    status: 400
                Slot no longer available:
                  value:
                    success: false
                    message: >-
                      The requested time slot is not available for rescheduling.
                      Please select another time.
                    status: 400
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      error_id:
                        type: string
              examples:
                Missing or invalid token:
                  value:
                    error:
                      type: unauthenticated
                      message: A valid API token is required to access this resource.
                      error_id: 3d3a9f2b-6c1d-4b8a-9e2f-7a5c1e0d4b6a
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    description: >-
                      The caller cannot update this booking (fails the
                      ownership/team/organization gate).
                    properties:
                      success:
                        type: boolean
                      message:
                        type: string
                      status:
                        type: integer
                  - type: object
                    description: The token is missing the `events:write` scope.
                    properties:
                      error:
                        type: object
                        properties:
                          type:
                            type: string
                          message:
                            type: string
                          error_id:
                            type: string
                          required_scopes:
                            type: array
                            items:
                              type: string
              examples:
                Cannot update booking:
                  value:
                    success: false
                    message: You don't have permission to view this event.
                    status: 403
                Missing scope:
                  value:
                    error:
                      type: insufficient_scope
                      message: 'Your token is missing the required scope: events:write.'
                      error_id: 3197be5d-c4fb-4488-a607-8422caf536e6
                      required_scopes:
                        - events:write
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      type:
                        type: string
                      message:
                        type: string
                      error_id:
                        type: string
              examples:
                Event not found:
                  value:
                    error:
                      type: not_found
                      message: Entry for Event not found.
                      error_id: a15b5b16-02c6-423b-be78-48627f4b80fe
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Missing required fields:
                  value:
                    message: The Date field is required. (and 1 more error)
                    errors:
                      date:
                        - The Date field is required.
                      start:
                        - The Start field is required.
      security:
        - bearer: []
components:
  schemas:
    ScheduledEvent:
      type: object
      required:
        - uri
        - uuid
        - title
        - type
        - startTime
        - endTime
        - duration
        - status
        - eventTypeUri
        - maxActiveInvitees
        - activeInviteesCount
        - invitees
        - teamName
        - createdAt
      properties:
        uri:
          type: string
          format: uri
          description: Public API URI of the scheduled event resource.
        uuid:
          type: string
          description: Zeeg event identifier (zg-XXX format)
          example: zg-O69bac566950c6
        title:
          type: string
          description: Title of the scheduled event.
        type:
          type: string
          description: Event type kind (e.g. `ONE_ON_ONE`, `GROUP`, `ROUND_ROBIN`).
        startTime:
          type: string
          format: date-time
          description: ISO 8601 UTC start time of the booked event.
        endTime:
          type: string
          format: date-time
          description: ISO 8601 UTC end time of the booked event.
        duration:
          type: integer
          description: Event duration in minutes.
        status:
          type: string
          description: Booking status (e.g. `confirmed`, `cancelled`).
        eventTypeUri:
          type: string
          format: uri
          description: Public API URI of the event type this booking was made against.
        location:
          type: object
          nullable: true
          required:
            - type
          properties:
            type:
              type: string
              description: >-
                Location type (e.g. `google_meet`, `zoom`, `phone`,
                `in_person`).
            joinUrl:
              type: string
              format: uri
              description: Join URL for the meeting, when applicable.
              nullable: true
          description: Meeting location for the booking.
        maxActiveInvitees:
          type: integer
          description: Maximum number of active invitees the event allows.
        activeInviteesCount:
          type: integer
          description: Current number of active (non-cancelled) invitees.
        invitees:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledInvitee'
          description: Invitees booked on the scheduled event.
        guests:
          type: array
          description: >-
            Email addresses of additional guests added across all invitees. An
            empty array when none were added.
          items:
            type: string
        hosts:
          type: array
          nullable: true
          items:
            type: object
            required:
              - firstName
              - email
              - slug
              - url
            properties:
              firstName:
                type: string
                description: Host's first name.
                nullable: true
              lastName:
                type: string
                description: Host's last name. Empty string when not set.
              email:
                type: string
                format: email
                description: Host's email address.
                nullable: true
              slug:
                type: string
                description: Host's public profile slug.
                nullable: true
              url:
                type: string
                format: uri
                description: Host's public profile URL.
              avatarUrl:
                type: string
                format: uri
                nullable: true
                description: URL of the host's avatar image, if set.
          description: Hosts assigned to the scheduled event.
        teamName:
          type: string
          nullable: true
          description: >-
            Name of the team that owns the scheduling page the booking was made
            on, or `null` for a personal scheduling page. The key is always
            present. This is the same value the `invitee.scheduled` webhook
            sends as `teamName` for the same booking.
          example: Sales
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the booking was created.
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the booking was last updated.
        currentTime:
          type: string
          format: date-time
          description: Current server time
      description: >-
        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.
    ScheduledInvitee:
      type: object
      required:
        - fullName
        - email
        - timeZone
        - scheduledAt
        - noShow
      properties:
        uuid:
          type: string
          description: Zeeg attendee identifier (zg-XXX format)
          example: zg-O69bac566950c6
        salutation:
          type: string
          nullable: true
          description: Salutation for the invitee, if collected.
        fullName:
          type: string
          description: Full name of the invitee.
          nullable: true
        email:
          type: string
          format: email
          description: Email address of the invitee.
          nullable: true
        guests:
          type: array
          description: >-
            Email addresses of additional guests the invitee added. An empty
            array when the invitee added none.
          items:
            type: string
        timeZone:
          type: string
          description: IANA time zone of the invitee.
          nullable: true
        cancellation:
          type: object
          properties:
            cancelledAt:
              type: string
              format: date-time
              nullable: true
              description: ISO 8601 UTC timestamp when the invitee was cancelled.
            cancelledBy:
              type: string
              nullable: true
              description: Identifier of who cancelled the booking.
            cancellerType:
              type: string
              nullable: true
              description: Type of canceller (e.g. host, invitee).
            cancellationReason:
              type: string
              nullable: true
              description: Reason given for the cancellation.
          description: >-
            Cancellation details. All fields are `null` when the invitee is not
            cancelled.
        payment:
          type: object
          nullable: true
          description: Payment details for the booking, or `null` when no payment applies.
          properties:
            gateway:
              type: string
              description: Payment provider, e.g. `stripe` or `paypal`.
            price:
              type: number
            currency:
              type: string
            transactionId:
              type: string
              nullable: true
            createdAt:
              type: string
              format: date-time
            status:
              type: string
              enum:
                - pending
                - success
              description: '`pending` until the transaction completes.'
        noShow:
          type: boolean
          description: Whether the invitee has been marked as a no-show. Always present.
        noShowAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO 8601 UTC timestamp when the invitee was marked as a no-show, or
            `null` when they were not.
        scheduledAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the invitee booked.
          nullable: true
        utm:
          type: object
          required:
            - utm_campaign
            - utm_source
            - utm_medium
            - utm_term
            - utm_content
          properties:
            utm_campaign:
              type: string
              nullable: true
            utm_source:
              type: string
              nullable: true
            utm_medium:
              type: string
              nullable: true
            utm_content:
              type: string
              nullable: true
            utm_term:
              type: string
              nullable: true
          description: >-
            UTM tracking parameters captured at booking time. Always holds these
            five keys, in `snake_case`; a key holds `null` when the booking did
            not carry a value for it.
        adAttribution:
          type: object
          nullable: true
          properties:
            gclid:
              type: string
              nullable: true
              description: Google Ads click ID.
            gbraid:
              type: string
              nullable: true
              description: >-
                Google click ID for iOS app-to-web clicks. Mutually exclusive
                with `gclid` per click.
            wbraid:
              type: string
              nullable: true
              description: >-
                Google click ID for web-to-app clicks. Mutually exclusive with
                `gclid` per click.
            fbclid:
              type: string
              nullable: true
              description: Meta click ID.
            fbp:
              type: string
              nullable: true
              description: Meta browser ID cookie (`_fbp`) captured at booking time.
            fbc:
              type: string
              nullable: true
              description: Meta click cookie (`_fbc`) captured at booking time.
            landingUrl:
              type: string
              nullable: true
              description: Full URL of the host page the booking widget was embedded on.
          description: >-
            Ad-click identifiers captured at booking time, keyed by provider.
            Only the keys that were actually captured are present; `null` when
            none were captured.
        customQueryParams:
          type: object
          description: >-
            Custom query parameters captured at booking time, keyed by the
            `c__`-prefixed parameter name. An empty object when the booking
            captured none.
          example:
            c__ref: nl-2026-04
        questions:
          type: array
          nullable: true
          items:
            type: object
            properties:
              answer:
                type: string
              answer_type:
                type: string
              question:
                type: string
          description: Booking questions answered by the invitee.
        agentBookingReference:
          type: string
          nullable: true
          description: Reference code for bookings made via the AI agent; `null` otherwise.
        cancelUrl:
          type: string
          format: uri
          nullable: true
          description: >-
            Public URL the invitee uses to cancel this booking. `null` once the
            booking is cancelled.
        rescheduleUrl:
          type: string
          format: uri
          nullable: true
          description: >-
            Public URL the invitee uses to reschedule this booking. `null` once
            the booking is cancelled.
        rescheduled:
          type: boolean
          description: >-
            True once this booking has been superseded by a reschedule. A
            rescheduled booking reports `status: cancelled` for backward
            compatibility; `rescheduled` and `nextRescheduling` are how a caller
            tells a reschedule apart from an actual cancellation.
        rescheduling:
          allOf:
            - $ref: '#/components/schemas/EventRescheduling'
          nullable: true
          description: >-
            Present when this booking is the *result* of a reschedule. `null`
            when this booking was not itself created by rescheduling an earlier
            one.
        nextRescheduling:
          allOf:
            - $ref: '#/components/schemas/EventRescheduling'
          nullable: true
          description: >-
            Present when this booking has been superseded by a later reschedule.
            `null` when the booking has not been rescheduled.
      description: >-
        One invitee of a scheduled event. The scheduled event embeds it in
        `invitees`, and the invitee endpoints return it as `resource`.
    EventRescheduling:
      type: object
      description: >-
        Links one half of a reschedule to the other. Embedded as `rescheduling`
        (on the new booking) and `nextRescheduling` (on the superseded booking)
        inside an invitee.
      properties:
        oldStartAt:
          type: string
          format: date-time
          nullable: true
          description: >-
            ISO 8601 UTC start time the previous booking held before the
            reschedule.
        newStartAt:
          type: string
          format: date-time
          nullable: true
          description: ISO 8601 UTC start time the new booking was moved to.
        rescheduledAt:
          type: string
          format: date-time
          description: ISO 8601 UTC timestamp when the reschedule was performed.
        previousEventUuid:
          type: string
          nullable: true
          description: >-
            uuid of the superseded booking (zg-XXX format). Use it directly as
            the `uuid` path parameter of `GET /scheduled-events/{uuid}` to fetch
            that booking.
          example: zg-O69bad4047abf0
        previousInviteeUuid:
          type: string
          nullable: true
          description: >-
            uuid of the invitee on the superseded booking. No public endpoint
            accepts an invitee uuid as a path parameter.
          example: zg-O69bac566950c6
        reason:
          type: string
          nullable: true
          description: Reason given for the reschedule, if any.
        rescheduledBy:
          type: string
          nullable: true
          description: Who performed the reschedule (e.g. `host`, `invitee`).
        reschedulerFullName:
          type: string
          nullable: true
          description: Full name of the person who performed the reschedule, when known.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.