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

# Update an event

> Send only the fields you are changing; anything omitted keeps its current value.
Publish an event by sending `is_published: true`.

Changing the title, location, or dates emails confirmed volunteers about a minute
later. Pass `notify_volunteers: false` to correct a typo without mailing everyone.

Requires the `events:write` scope.



## OpenAPI

````yaml https://api.signupbreeze.com/openapi.yaml patch /v1/events/{id}
openapi: 3.0.3
info:
  title: SignUpBreeze API
  description: >-
    Manage events, shifts, and signups programmatically — from your own scripts,
    an

    automation platform, or an AI agent.


    ## Authentication


    Every request needs a bearer token, which an organization owner or admin
    creates

    under **Organization settings → API**. Tokens belong to the organization
    rather

    than to the person who created one, so an admin leaving does not break a
    live

    integration.


    Each token carries a set of scopes, and every endpoint states the scope it

    requires. A request whose token lacks the scope is refused with `403`.


    **Every token expires**, after at most a year and by default after exactly
    that.

    An expired token is refused with `401`, the same as a revoked one, so plan
    to

    create a replacement before the expiry date shown in settings — nothing
    using

    the old token keeps working past it.


    ## Rate limiting


    Requests are throttled per API token, not per organization — issuing more

    tokens does not raise the ceiling. The limit varies by plan: 30 requests/min

    on Free and Calendar, 120 on Starter, 300 on Pro.


    Every response carries `X-RateLimit-Limit` and `X-RateLimit-Remaining`.

    Exceeding the limit returns `429`, with `Retry-After` and
    `X-RateLimit-Reset`

    added to that response so you know when to try again.


    ## Idempotency


    Writes accept an `Idempotency-Key` header. Send the same key again and the
    original

    response is replayed rather than the write happening twice — worth using
    anywhere a

    retry is possible, which is most places an agent is involved.


    ## Pagination


    Collections are cursor paginated. Follow `meta.next_cursor` rather than
    assuming

    page numbers.


    ## Scoping


    Everything a token can reach belongs to its organization. Another
    organization's

    record answers `404` rather than `403`, so a token cannot be used to
    discover that

    it exists.
  version: 1.0.0
servers:
  - url: https://api.signupbreeze.com
security:
  - default: []
tags:
  - name: Events
    description: >-

      Create and manage events. Every endpoint is scoped to the organization
      that owns the

      token — another organization's event responds `404`, not `403`, so a token
      cannot be

      used to discover that it exists.
  - name: Organization
    description: |-

      The organization a token belongs to.
  - name: Shifts
    description: >-

      The time slots volunteers sign up for. Shift times are wall-clock strings
      like `14:30`,

      interpreted in the parent event's timezone against its start date — you
      never send a

      date or an offset for a shift.
  - name: Signups
    description: >-

      Who has signed up. Read-only in v1: signups are created through the public
      event page,

      which is deliberately the only way a volunteer is added.
externalDocs:
  description: SignUpBreeze documentation
  url: https://docs.signupbreeze.com/api-reference/introduction
paths:
  /v1/events/{id}:
    parameters:
      - in: path
        name: id
        description: The ID of the event.
        example: 019fdf11-4bb2-7039-92c3-9e7f1ee711a1
        required: true
        schema:
          type: string
      - in: path
        name: event
        description: The event's id.
        example: 019fdf11-4bb2-7039-92c3-9e7f1ee711a1
        required: true
        schema:
          type: string
    patch:
      tags:
        - Events
      summary: Update an event
      description: >-
        Send only the fields you are changing; anything omitted keeps its
        current value.

        Publish an event by sending `is_published: true`.


        Changing the title, location, or dates emails confirmed volunteers about
        a minute

        later. Pass `notify_volunteers: false` to correct a typo without mailing
        everyone.


        Requires the `events:write` scope.
      operationId: updateAnEvent
      parameters: []
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: The event's name.
                  example: Fall Festival 2026
                description:
                  type: string
                  description: A longer description.
                  example: Now with a bouncy castle.
                  nullable: true
                location:
                  type: string
                  description: A street address, or a URL for a virtual event.
                  example: 14 Main St
                  nullable: true
                is_virtual:
                  type: boolean
                  description: ''
                  example: true
                location_lat:
                  type: number
                  description: Must be between -90 and 90.
                  example: -89
                  nullable: true
                location_lng:
                  type: number
                  description: Must be between -180 and 180.
                  example: -179
                  nullable: true
                location_data:
                  type: object
                  description: ''
                  example: null
                  properties: {}
                  nullable: true
                start_date:
                  type: string
                  description: The day the event starts, as YYYY-MM-DD.
                  example: '2026-09-19'
                end_date:
                  type: string
                  description: The last day, for multi-day events.
                  example: '2026-09-20'
                  nullable: true
                timezone:
                  type: string
                  description: An IANA timezone.
                  example: America/Los_Angeles
                is_published:
                  type: boolean
                  description: Publish or unpublish the event.
                  example: true
                theme:
                  type: string
                  description: ''
                  example: midnight
                  enum:
                    - purple-indigo
                    - ocean-blue
                    - sunset-orange
                    - forest-green
                    - rose-pink
                    - slate-charcoal
                    - golden-hour
                    - midnight
                  nullable: true
                badge_label:
                  type: string
                  description: Must not be greater than 255 characters.
                  example: g
                  nullable: true
                notify_volunteers:
                  type: boolean
                  description: >-
                    Email confirmed volunteers about the change. Defaults to
                    true.
                  example: false
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                example:
                  data:
                    id: 019ff256-ecd6-73a6-9030-359475f32da1
                    title: Quos velit et fugiat.
                    description: >-
                      Harum mollitia modi deserunt aut ab provident perspiciatis
                      quo. Nostrum aut adipisci quidem nostrum. Commodi incidunt
                      iure odit. Et modi ipsum nostrum omnis autem et
                      consequatur.


                      Enim non facere tempora ex voluptatem laboriosam
                      praesentium. Adipisci molestias fugit deleniti distinctio
                      eum doloremque id. Libero aliquam veniam corporis dolorem
                      mollitia deleniti.
                    slug: quos-velit-et-fugiat-224
                    location: |-
                      2669 Wolff Trail
                      Beierburgh, VA 78637
                    is_virtual: false
                    start_date: '2026-08-31T14:55:29+00:00'
                    end_date: '2026-08-31T22:20:33+00:00'
                    timezone: UTC
                    is_published: false
                    public_url: http://localhost/e/quos-velit-et-fugiat-224
                    slots:
                      - id: 019ff256-ecd7-7294-8899-bc3c1bd2d97b
                        event_id: 019ff256-ecd6-73a6-9030-359475f32da1
                        title: Clean-up Crew
                        location: null
                        is_virtual: false
                        start_time: '2026-10-16T07:52:54+00:00'
                        end_time: '2026-10-16T09:52:54+00:00'
                        capacity: 3
                        filled: 0
                        remaining: 3
                        created_at: '2026-08-11T19:40:10+00:00'
                        updated_at: '2026-08-11T19:40:10+00:00'
                    created_at: '2026-08-11T19:40:10+00:00'
                    updated_at: '2026-08-11T19:40:10+00:00'
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        example: 019ff256-ecd6-73a6-9030-359475f32da1
                      title:
                        type: string
                        example: Quos velit et fugiat.
                      description:
                        type: string
                        example: >-
                          Harum mollitia modi deserunt aut ab provident
                          perspiciatis quo. Nostrum aut adipisci quidem nostrum.
                          Commodi incidunt iure odit. Et modi ipsum nostrum
                          omnis autem et consequatur.


                          Enim non facere tempora ex voluptatem laboriosam
                          praesentium. Adipisci molestias fugit deleniti
                          distinctio eum doloremque id. Libero aliquam veniam
                          corporis dolorem mollitia deleniti.
                      slug:
                        type: string
                        example: quos-velit-et-fugiat-224
                      location:
                        type: string
                        example: |-
                          2669 Wolff Trail
                          Beierburgh, VA 78637
                      is_virtual:
                        type: boolean
                        example: false
                      start_date:
                        type: string
                        example: '2026-08-31T14:55:29+00:00'
                      end_date:
                        type: string
                        example: '2026-08-31T22:20:33+00:00'
                      timezone:
                        type: string
                        example: UTC
                      is_published:
                        type: boolean
                        example: false
                      public_url:
                        type: string
                        example: http://localhost/e/quos-velit-et-fugiat-224
                      slots:
                        type: array
                        example:
                          - id: 019ff256-ecd7-7294-8899-bc3c1bd2d97b
                            event_id: 019ff256-ecd6-73a6-9030-359475f32da1
                            title: Clean-up Crew
                            location: null
                            is_virtual: false
                            start_time: '2026-10-16T07:52:54+00:00'
                            end_time: '2026-10-16T09:52:54+00:00'
                            capacity: 3
                            filled: 0
                            remaining: 3
                            created_at: '2026-08-11T19:40:10+00:00'
                            updated_at: '2026-08-11T19:40:10+00:00'
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              example: 019ff256-ecd7-7294-8899-bc3c1bd2d97b
                            event_id:
                              type: string
                              example: 019ff256-ecd6-73a6-9030-359475f32da1
                            title:
                              type: string
                              example: Clean-up Crew
                            location:
                              type: string
                              example: null
                              nullable: true
                            is_virtual:
                              type: boolean
                              example: false
                            start_time:
                              type: string
                              example: '2026-10-16T07:52:54+00:00'
                            end_time:
                              type: string
                              example: '2026-10-16T09:52:54+00:00'
                            capacity:
                              type: integer
                              example: 3
                            filled:
                              type: integer
                              example: 0
                            remaining:
                              type: integer
                              example: 3
                            created_at:
                              type: string
                              example: '2026-08-11T19:40:10+00:00'
                            updated_at:
                              type: string
                              example: '2026-08-11T19:40:10+00:00'
                      created_at:
                        type: string
                        example: '2026-08-11T19:40:10+00:00'
                      updated_at:
                        type: string
                        example: '2026-08-11T19:40:10+00:00'
        '404':
          description: no such event, or it belongs to another organization
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Not found.
                properties:
                  message:
                    type: string
                    example: Not found.
        '422':
          description: publishing would exceed the plan's active-event limit
          content:
            application/json:
              schema:
                type: object
                example:
                  message: Your plan allows a maximum of 3 active events.
                  error: plan_limit_reached
                  limit:
                    limit_type: active_events
                    current_count: 3
                    max_allowed: 3
                properties:
                  message:
                    type: string
                    example: Your plan allows a maximum of 3 active events.
                  error:
                    type: string
                    example: plan_limit_reached
                  limit:
                    type: object
                    properties:
                      limit_type:
                        type: string
                        example: active_events
                      current_count:
                        type: integer
                        example: 3
                      max_allowed:
                        type: integer
                        example: 3
components:
  securitySchemes:
    default:
      type: http
      scheme: bearer
      description: >-
        Create a token under <b>Organization settings → API</b>. Tokens are
        shown once, on creation. They belong to the organization, not to you, so
        they keep working if you leave the team. API access is included on every
        plan; the rate limit depends on the plan.

````