> ## 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 Time-Off Period

> Update an existing time-off period by UUID — change start/end dates, time zone, or notes.



## OpenAPI

````yaml PATCH /time-off/{uuid}
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
paths:
  /time-off/{uuid}:
    parameters:
      - name: uuid
        in: path
        required: true
        description: UUID of the time-off period.
        schema:
          type: string
          format: uuid
    patch:
      tags:
        - Availability Schedule
      summary: Update a time-off period
      description: >-
        Partially update a time-off period. Only the fields supplied in the
        request body are changed; omitted fields retain their current values.


        Authorisation follows the same rule as listing time-off: the token owner
        must be the period's owner or have edit access to that user's schedules
        (e.g. team manager).


        Half-day toggles require the matching cutoff to be present. The
        resulting `startDate`/`endDate` range must not overlap another of the
        owner's time-off periods.
      operationId: patch-time-off
      requestBody:
        content:
          application/json:
            schema:
              type: object
              minProperties: 1
              properties:
                type:
                  type: string
                  enum:
                    - vacation
                    - out_of_office
                title:
                  type: string
                  maxLength: 255
                startDate:
                  type: string
                  format: date
                endDate:
                  type: string
                  format: date
                startHalfDay:
                  type: boolean
                endHalfDay:
                  type: boolean
                startHalfDayCutoff:
                  type: string
                  nullable: true
                  description: >-
                    Half-day cutoff (HH:MM). Required when `startHalfDay` is
                    true.
                endHalfDayCutoff:
                  type: string
                  nullable: true
                  description: Half-day cutoff (HH:MM). Required when `endHalfDay` is true.
                note:
                  type: string
                  nullable: true
                  maxLength: 1000
            examples:
              Shift a vacation:
                value:
                  title: Summer break
                  startDate: '2026-07-02'
                  endDate: '2026-07-16'
              Enable a half-day:
                value:
                  startHalfDay: true
                  startHalfDayCutoff: '13:00'
      responses:
        '200':
          description: Updated time-off period.
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string
                    format: uuid
                  uri:
                    type: string
                    format: uri
                  type:
                    type: string
                    enum:
                      - vacation
                      - out_of_office
                  title:
                    type: string
                    nullable: true
                  startDate:
                    type: string
                    format: date
                  endDate:
                    type: string
                    format: date
                  startHalfDay:
                    type: boolean
                  endHalfDay:
                    type: boolean
                  startHalfDayCutoff:
                    type: string
                    nullable: true
                  endHalfDayCutoff:
                    type: string
                    nullable: true
                  note:
                    type: string
                    nullable: true
              examples:
                Updated vacation:
                  value:
                    uuid: 01907f10-5b00-7b31-9cf0-1234567890ab
                    uri: >-
                      https://api.zeeg.me/v2/time-off/01907f10-5b00-7b31-9cf0-1234567890ab
                    type: vacation
                    title: Summer break
                    startDate: '2026-07-02'
                    endDate: '2026-07-16'
                    startHalfDay: true
                    endHalfDay: false
                    startHalfDayCutoff: '13:00'
                    endHalfDayCutoff: null
                    note: Out at the coast
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Forbidden:
                  value:
                    success: false
                    message: You cannot access this resource.
                    status: 403
        '404':
          description: Time-off period not found.
          content:
            application/json:
              examples:
                Not found:
                  value:
                    success: false
                    status: 404
                    message: Time-off period not found.
        '422':
          description: Validation error (bad format, overlap, or invalid half-day cutoff).
          content:
            application/json:
              examples:
                Overlapping period:
                  value:
                    success: false
                    status: 422
                    message: This time-off period overlaps with an existing one.
                No updatable fields:
                  value:
                    success: false
                    status: 422
                    message: No updatable fields were provided.
      security:
        - bearer: []
components:
  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: ''

````