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

# Update Event Occurrence

> Update a single occurrence of a recurring event. Capacity cannot be reduced below the number of tickets already sold. All fields are optional and only supplied fields are updated.



## OpenAPI

````yaml /api-reference/openapi.json put /events/occurrences/{occurrence}
openapi: 3.0.0
info:
  title: Marzipan API
  version: 1.0.0
servers:
  - url: https://api.marzipan.co/v1
security:
  - tenantAuth: []
tags:
  - name: Account
    description: >-
      Account management endpoints including registration, login, and user
      details
  - name: Carts
    description: Shopping cart management endpoints
  - name: Products
    description: Product catalog and search endpoints
  - name: Subscriptions
    description: Subscription management and renewal endpoints
  - name: CMS
    description: Content management system endpoints
  - name: Messaging
    description: Message and communication endpoints
  - name: Search
    description: Search functionality endpoints
  - name: Settings
    description: >-
      Storefront settings and market detection used to configure the web
      components and checkout.
  - name: Analytics
    description: Storefront visit and attribution tracking.
  - name: Rewards
    description: >-
      Loyalty and rewards programme endpoints for the authenticated customer,
      covering points balance, tier status, perks, exclusive products and
      transaction history.
  - name: Forms
    description: Render and submit dynamic storefront forms defined in the CMS.
  - name: Events
    description: >-
      Check event availability, browse occurrences and recurring dates, generate
      ticket QR codes, and manage event waitlists (join, leave, check status,
      and claim promoted spots).
paths:
  /events/occurrences/{occurrence}:
    parameters:
      - name: occurrence
        in: path
        required: true
        description: The unique identifier of the event occurrence.
        schema:
          type: string
          format: uuid
        example: 9a2b3c4d-5e6f-4071-8a9b-0c1d2e3f4a5b
    put:
      tags:
        - Events
      summary: Update Event Occurrence
      description: >-
        Update a single occurrence of a recurring event. Capacity cannot be
        reduced below the number of tickets already sold. All fields are
        optional and only supplied fields are updated.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                status:
                  type: string
                  enum:
                    - active
                    - cancelled
                    - postponed
                  description: The occurrence status.
                maxTickets:
                  type: integer
                  minimum: 0
                  description: >-
                    Maximum tickets for the occurrence. Cannot be set below
                    tickets already sold.
                locationOverride:
                  type: string
                  nullable: true
                  description: >-
                    A location that overrides the parent event's location for
                    this occurrence.
                notes:
                  type: string
                  nullable: true
                  description: Internal notes for the occurrence.
                occurrenceDate:
                  type: string
                  format: date
                  description: The date of the occurrence (YYYY-MM-DD).
            example:
              status: postponed
              maxTickets: 120
              locationOverride: The Riverside Marquee
              notes: Moved outdoors due to demand.
              occurrenceDate: '2026-08-22'
      responses:
        '200':
          description: The updated occurrence.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  occurrence:
                    $ref: '#/components/schemas/EventOccurrenceRecord'
              example:
                success: true
                occurrence:
                  id: 9a2b3c4d-5e6f-4071-8a9b-0c1d2e3f4a5b
                  eventId: b7a4c2e1-8f3d-4a6b-9c2e-1d5f7a8b3c4d
                  occurrenceDate: '2026-08-22'
                  startTime: '19:00'
                  endTime: '22:00'
                  status: postponed
                  maxTickets: 120
                  ticketsSold: 58
                  locationOverride: The Riverside Marquee
                  notes: Moved outdoors due to demand.
        '404':
          description: Occurrence not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                message: No query results for model [EventOccurrence].
        '422':
          description: >-
            Validation error, or an attempt to reduce capacity below tickets
            already sold.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationError'
              example:
                message: The selected status is invalid.
                errors:
                  status:
                    - The selected status is invalid.
components:
  schemas:
    EventOccurrenceRecord:
      type: object
      description: The stored record for an event occurrence, as returned after an update.
      properties:
        id:
          type: string
          format: uuid
          description: The occurrence identifier.
        eventId:
          type: string
          format: uuid
          description: The parent event identifier.
        occurrenceDate:
          type: string
          format: date
          description: The occurrence date.
        startTime:
          type: string
          nullable: true
          description: The start time (HH:MM).
        endTime:
          type: string
          nullable: true
          description: The end time (HH:MM).
        status:
          type: string
          enum:
            - active
            - cancelled
            - postponed
          description: The occurrence status.
        maxTickets:
          type: integer
          nullable: true
          description: The maximum ticket capacity.
        ticketsSold:
          type: integer
          description: The number of tickets sold.
        locationOverride:
          type: string
          nullable: true
          description: A location overriding the parent event's location.
        notes:
          type: string
          nullable: true
          description: Internal notes for the occurrence.
    Error:
      type: object
      properties:
        message:
          type: string
          description: Error message
      required:
        - message
    ValidationError:
      type: object
      properties:
        message:
          type: string
          description: Validation error message
        errors:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
          description: Field-specific validation errors
      required:
        - message
        - errors
  securitySchemes:
    tenantAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer authentication header of the form `Bearer <token>`, where
        `<token>` is your API token.
      bearerFormat: JWT

````