> ## 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.

# Replace Scheduling Page Questions

> Send the complete question list of a scheduling page. Questions that keep their id are updated, new ones are created, and any stored question the list leaves out is deleted.



## OpenAPI

````yaml PUT /event-types/{uuid}/questions
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.


    ## Responses

    Every response is JSON, whatever `Accept` header the request sends.
  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:
  /event-types/{uuid}/questions:
    parameters:
      - schema:
          type: string
          format: uuid
        name: uuid
        in: path
        required: true
        description: UUID of the scheduling page
    put:
      tags:
        - Scheduling Pages
      summary: Replace scheduling page questions
      description: >-
        Replaces every question of a scheduling page with the list in the body
        and answers with the questions as stored. A question that keeps its `id`
        is updated in place, one without an `id` is created, and a stored
        question the list leaves out is deleted; array position sets the order.
        Changes reach the live booking page and any voice agent that books it at
        once. Requires the `event_types:write` scope.
      operationId: put-api-event-type-questions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchedulingPageQuestionsReplace'
            examples:
              Keep one question and add one:
                value:
                  questions:
                    - id: 812
                      label: What would you like to discuss?
                      type: TEXTAREA
                      required: true
                    - label: Team size
                      type: SELECT
                      required: false
                      choices:
                        - 1-10
                        - 11-50
                        - 51+
                  askForPhoneNumber: true
      responses:
        '200':
          description: >-
            OK. The body is the questions as `GET /event-types/{uuid}/questions`
            returns them.
          content:
            application/json:
              schema:
                type: object
                required:
                  - resource
                properties:
                  resource:
                    $ref: '#/components/schemas/SchedulingPageQuestions'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Your role does not allow this page to be written.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SchedulingPageWriteError'
        '404':
          description: The page does not exist or is not one you may manage.
        '422':
          description: >-
            The body is invalid (`errors` names each field, an `id` that names
            no question of this page included), a CRM field cannot back a
            question, or the list adds a question past your plan's question
            allowance. Nothing changes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Past the plan's allowance:
                  value:
                    success: false
                    message: You can have at max 5 questions in your subscription.
                    status: 422
      security:
        - bearer: []
components:
  schemas:
    SchedulingPageQuestionsReplace:
      type: object
      required:
        - questions
      properties:
        questions:
          type: array
          description: >-
            The complete list in display order. A stored question the list
            leaves out is deleted; an empty list deletes every question.
          items:
            $ref: '#/components/schemas/SchedulingPageQuestionInput'
        askForPhoneNumber:
          type: boolean
          description: Left out, it keeps its value.
        allowAdditionalGuests:
          type: boolean
          description: >-
            Left out, it keeps its value. Has no effect while the workspace
            requires invitee email verification.
        nameFormat:
          type: string
          enum:
            - FULL_NAME
            - SEPARATED
            - SEPARATED_WITH_SALUTATION
          description: Left out, it keeps its value.
    SchedulingPageQuestions:
      type: object
      required:
        - askForPhoneNumber
        - allowAdditionalGuests
        - nameFormat
        - questions
      properties:
        askForPhoneNumber:
          type: boolean
          description: Whether the booking form asks for the invitee's phone number.
        allowAdditionalGuests:
          type: boolean
          description: >-
            Whether invitees may add guests. Always false while the workspace
            requires invitee email verification, whatever was set.
        nameFormat:
          type: string
          enum:
            - FULL_NAME
            - SEPARATED
            - SEPARATED_WITH_SALUTATION
          description: >-
            One name field, first and last name, or first and last name with a
            salutation.
        questions:
          type: array
          description: Every question in display order, hidden ones included.
          items:
            $ref: '#/components/schemas/SchedulingPageQuestion'
    SchedulingPageWriteError:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        status:
          type: integer
    SchedulingPageQuestionInput:
      type: object
      required:
        - label
        - type
        - required
      properties:
        id:
          type: integer
          description: >-
            The id of a question of this page to keep and update. Leave it out
            to add a question.
        label:
          type: string
          maxLength: 1024
        type:
          type: string
          enum:
            - TEXT_INPUT
            - TEXTAREA
            - SELECT
            - RADIO_INPUT
            - CHECKBOX
            - DATE_INPUT
            - PHONE_NUMBER
            - CRM_ATTRIBUTE
        required:
          type: boolean
        active:
          type: boolean
          default: true
          description: false hides the question without deleting it.
        choices:
          type: array
          minItems: 1
          maxItems: 20
          items:
            type: string
          description: >-
            Required for SELECT, RADIO_INPUT and CHECKBOX; ignored for other
            types.
        crmAttribute:
          type: object
          description: >-
            Required for CRM_ATTRIBUTE. Each attribute may back one question of
            the page.
          required:
            - objectSlug
            - attributeSlug
          properties:
            objectSlug:
              type: string
            attributeSlug:
              type: string
            overrideValue:
              type: boolean
              default: false
    SchedulingPageQuestion:
      type: object
      required:
        - id
        - label
        - type
        - required
        - active
        - choices
        - crmAttribute
      properties:
        id:
          type: integer
          example: 812
        label:
          type: string
          example: What would you like to discuss?
        type:
          type: string
          enum:
            - TEXT_INPUT
            - TEXTAREA
            - SELECT
            - RADIO_INPUT
            - CHECKBOX
            - DATE_INPUT
            - PHONE_NUMBER
            - CRM_ATTRIBUTE
        required:
          type: boolean
        active:
          type: boolean
          description: false while the question is hidden from the booking form.
        choices:
          type: array
          nullable: true
          items:
            type: string
          description: >-
            The answers to pick from, for SELECT, RADIO_INPUT and CHECKBOX; null
            for other types.
        crmAttribute:
          type: object
          nullable: true
          description: >-
            The CRM field the answer is saved to, for CRM_ATTRIBUTE; null for
            other types.
          properties:
            objectSlug:
              type: string
              example: people
            attributeSlug:
              type: string
              example: job_title
            overrideValue:
              type: boolean
              description: true overwrites a value the CRM record already holds.
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````

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