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

# Update Scheduling Page Notifications

> Change a scheduling page's notification settings and the subject and body of its emails, calendar invitation and CRM notes. Read the answer: the plan can keep a setting as it is.



## OpenAPI

````yaml PATCH /event-types/{uuid}/notifications
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}/notifications:
    parameters:
      - schema:
          type: string
          format: uuid
        name: uuid
        in: path
        required: true
        description: UUID of the scheduling page
    patch:
      tags:
        - Scheduling Pages
      summary: Update scheduling page notifications
      description: >-
        Changes the notification settings and custom texts of a scheduling page
        and answers with them as stored. The plan can keep a setting as it is
        (the reschedule and cancel links stay in, extra calendar attendees are
        dropped), so read the answer rather than the request. Changes apply from
        the next booking on. Requires the `event_types:write` scope.
      operationId: patch-api-event-type-notifications
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchedulingPageNotificationsUpdate'
            examples:
              Email confirmation with an own text:
                value:
                  inviteeConfirmation: email
                  privateCalendarEvent: true
                  customNotifications:
                    inviteeConfirmation:
                      subject: 'Confirmed: :scheduling_page_name on :event_start_date'
                      body: >-
                        <p>Hi :invitee_first_name, see you at
                        :event_start_time.</p>
      responses:
        '200':
          description: >-
            OK. The body is the settings as `GET
            /event-types/{uuid}/notifications` returns them.
          content:
            application/json:
              schema:
                type: object
                required:
                  - resource
                properties:
                  resource:
                    $ref: '#/components/schemas/SchedulingPageNotifications'
        '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), or it carries
            custom texts and your plan does not include custom notifications.
            Nothing changes.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                  errors:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        type: string
              examples:
                Plan without custom texts:
                  value:
                    success: false
                    message: >-
                      To customize your event notifications, upgrade your
                      subscription to Professional or higher.
                    status: 422
      security:
        - bearer: []
components:
  schemas:
    SchedulingPageNotificationsUpdate:
      type: object
      description: Every field is optional; a field left out keeps its value.
      properties:
        inviteeConfirmation:
          type: string
          enum:
            - calendar_invitation
            - email
            - none
          description: >-
            A page with several invitees per slot stores `email` for
            `calendar_invitation`.
        addEventLinkNotif:
          type: boolean
          description: >-
            Removing the links needs a plan that allows it; on any other plan
            they stay in.
        privateCalendarEvent:
          type: boolean
        excludePII:
          type: boolean
        excludeHostEmails:
          type: boolean
        calendarAdditionalAttendees:
          type: array
          maxItems: 3
          items:
            type: string
            format: email
          description: >-
            Replaces the list; an empty list clears it. Each new address is
            asked to confirm before it receives anything. Needs a plan with
            notification forwarding; on any other plan the list is stored empty.
        customNotifications:
          description: >-
            Changes only the notifications it names. A subject or body left out
            keeps its stored text, so an email that has no text of its own yet
            needs both, or the call answers 422. A subject and body both left
            empty, or equal to the default, go back to the default text. Needs a
            plan with custom notifications.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageCustomNotifications'
    SchedulingPageNotifications:
      type: object
      required:
        - inviteeConfirmation
        - addEventLinkNotif
        - privateCalendarEvent
        - excludePII
        - excludeHostEmails
        - calendarAdditionalAttendees
        - customNotifications
      properties:
        inviteeConfirmation:
          type: string
          enum:
            - calendar_invitation
            - email
            - none
          description: How the invitee is told about the booking.
        addEventLinkNotif:
          type: boolean
          description: Whether invitee emails carry the links to reschedule or cancel.
        privateCalendarEvent:
          type: boolean
          description: Whether the calendar entry is marked private.
        excludePII:
          type: boolean
          description: >-
            Whether host emails and calendar entries leave out the invitee's
            details.
        excludeHostEmails:
          type: boolean
          description: Whether the hosts get no booking emails.
        calendarAdditionalAttendees:
          type: array
          maxItems: 3
          items:
            type: string
            format: email
          description: >-
            Addresses added to every calendar invitation once each has
            confirmed.
        customNotifications:
          description: >-
            Only the notifications with their own text; every other one sends
            its default.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageCustomNotifications'
    SchedulingPageWriteError:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
        status:
          type: integer
    SchedulingPageCustomNotifications:
      type: object
      description: >-
        Own texts per notification. Tags are written as `:tag`, for example
        `:invitee_full_name`, `:scheduling_page_name`, `:event_start_date`,
        `:event_start_time`, `:location`, `:meeting_link`, `:cancellation_link`,
        `:rescheduling_link` and `:questions_and_answers`; cancellation texts
        also take `:canceled_by` and `:cancellation_reason`.
      properties:
        inviteeConfirmation:
          description: The email the invitee gets when they book.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        inviteeCancellation:
          description: The email the invitee gets when the booking is cancelled.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        hostConfirmation:
          description: The email the hosts get for a new booking.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        hostCancellation:
          description: The email the hosts get when a booking is cancelled.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        inviteeInvitation:
          description: >-
            The calendar invitation. The subject is the event title, the body
            its description.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        hubspot:
          description: The meeting note written to HubSpot for a booking.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        hubspot_group:
          description: >-
            The HubSpot note for a booking on a page with several invitees per
            slot.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        pipedrive:
          description: The meeting note written to Pipedrive for a booking.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        pipedrive_group:
          description: >-
            The Pipedrive note for a booking on a page with several invitees per
            slot.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        salesforce:
          description: The meeting note written to Salesforce for a booking.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
        salesforce_group:
          description: >-
            The Salesforce note for a booking on a page with several invitees
            per slot.
          allOf:
            - $ref: '#/components/schemas/SchedulingPageNotificationText'
    SchedulingPageNotificationText:
      type: object
      required:
        - subject
        - body
      properties:
        subject:
          type: string
          maxLength: 500
          example: 'Confirmed: :scheduling_page_name on :event_start_date'
        body:
          type: string
          maxLength: 3000
          description: >-
            Simple HTML (p, br, b, strong, i, em, u, a, ul, ol, li, blockquote,
            code, span, div, table). The lengths count text without markup.
          example: <p>Hi :invitee_first_name, see you at :event_start_time.</p>
        isModerationValid:
          type: boolean
          readOnly: true
          description: >-
            false when moderation rejected this text. It is not sent, and the
            default text goes out instead.
  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.