Spotnana Events API

APIs to create and manage events.

Operations 24

POST /v2/events Create event #
GET /v2/events/{eventId} Get event #
DELETE /v2/events/{eventId} Delete a draft event #
GET /v2/events/read-by-external-id Get event by external ID #
POST /v2/events/{eventId}/travelers/add Add travelers to an event #
POST /v2/events/{eventId}/travelers/remove Remove travelers from an event #
POST /v2/events/list List events #
POST /v2/events/{eventId}/publish Publish event #
POST /v2/events/{eventId}/edit-basic-info Edit basic details of an event #
POST /v2/events/{eventId}/edit-booking-guidelines Update event booking guidelines #
POST /v2/events/{eventId}/travelers/{travelerId}/rsvp Set traveler RSVP #
GET /v2/events/{eventId}/travelers/{travelerId}/rsvp Get traveler RSVP #
POST /v2/events/{eventId}/invite/send Send invite #
POST /v2/events/{eventId}/invite/test Send a test invite #
POST /v2/events/summaries Get event summaries #
GET /v2/events/payment-sources Get allowed payment sources #
POST /v2/events/{eventId}/cancel Cancel event #
POST /v2/events/{eventId}/travelers-list Get travelers list #
PUT /v2/events/{eventId}/custom-field-responses Update event custom field responses #
POST /v2/events/bulk-publish Bulk publish events #
POST /v2/events/bulk-edit Bulk edit/modify events. #
POST /v2/events/bulk-delete Bulk delete draft events #
POST /v2/events/bulk-cancel Bulk cancel events #
POST /v2/events/jobs/status Get current details of an async event job. #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spotnana-events-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

spotnana-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Air Events API
  version: v2
  description: APIs to perform search, checkout and book an air pnr
servers:
- url: https://api-ext-sboxmeta.partners.spotnana.com
  description: Sandbox URL
security:
- Bearer: []
tags:
- name: Events
  description: APIs to create and manage events.
paths:
  /v2/events:
    post:
      tags:
      - Events
      summary: Create event
      description: 'Create a draft event. Optionally pass newTraveler to create a new traveler and add them to the event. If the traveler already exists, the request fails — use the travellers field with the existing userId.

        '
      operationId: createEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    get:
      tags:
      - Events
      summary: Get event
      description: Get event details for the specified event ID.
      operationId: getEvent
      parameters:
      - name: type
        in: query
        description: EventType of the event.
        schema:
          $ref: '#/components/schemas/EventType'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      tags:
      - Events
      summary: Delete a draft event
      description: Delete a draft (i.e., unpublished) event. A deleted event cannot be accessed or viewed again.
      operationId: deleteEvent
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/read-by-external-id:
    parameters:
    - name: externalId
      in: query
      description: External ID
      required: true
      schema:
        type: string
        example: '6926658168'
    - name: companyId
      in: query
      description: Company ID
      required: true
      schema:
        type: string
        format: uuid
        example: f49d00fe-1eda-4304-ba79-a980f565281d
    get:
      tags:
      - Events
      summary: Get event by external ID
      description: 'Get event details using the event''s `externalId`. External IDs are unique identifiers which can be set based on the company''s preference.

        '
      operationId: getEventByExternalID
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/travelers/add:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Add travelers to an event
      description: Add the list of travelers to be invited to the event.
      operationId: addTravelersToEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddTravelersToEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AddTravelersToEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/travelers/remove:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Remove travelers from an event
      description: Remove travelers from an event. This endpoint allows you to remove up to 10 travelers per API call.
      operationId: removeTravelersFromEvent
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveTravelersFromEventRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RemoveTravelersFromEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/list:
    post:
      tags:
      - Events
      summary: List events
      description: List all the events that match the specified criteria in the request.
      operationId: listEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ListEventsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListEventsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/publish:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Publish event
      description: Publish a draft event.
      operationId: publishEvent
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/edit-basic-info:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Edit basic details of an event
      description: Edit the basic information of an event such as the event name, description, date and time, location, and contacts.
      operationId: updateEventBasicInfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventBasicInfoRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/edit-booking-guidelines:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Update event booking guidelines
      description: "Update the booking guidelines for an event.\nYou can update booking guidelines such as maximum number of guests allowed to accompany a traveler, \narrival and departure window for the event, payment methods, and allowed travel types.\n"
      operationId: updateEventBookingGuidelines
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEventBookingGuidelinesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNonUUIDId'
                example:
                  id: 1234567890
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/travelers/{travelerId}/rsvp:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    - name: travelerId
      in: path
      description: Traveler User ID
      required: true
      schema:
        type: string
        format: uuid
        example: f49d00fe-1eda-4304-ba79-a980f565281d
    post:
      tags:
      - Events
      summary: Set traveler RSVP
      description: Update the RSVP status and the RSVP response for a traveler.
      operationId: setUserEventRsvp
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetUserEventRsvpRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    get:
      tags:
      - Events
      summary: Get traveler RSVP
      description: Get the RSVP status and the RSVP response for a traveler.
      operationId: getUserEventRsvp
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventUserRsvp'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/invite/send:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Send invite
      description: "Send event invites to the travelers via email. \nThe invites can be sent to all travelers using a single API call, or you can send invites to specific travelers.\n"
      operationId: sendInvite
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendInviteRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/invite/test:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Send a test invite
      description: Send a test event invite to the API caller. This endpoint can be used to preview the invite before sending it to the travelers.
      operationId: testInvite
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/summaries:
    post:
      tags:
      - Events
      summary: Get event summaries
      description: View summaries of specific events. This endpoint retrieves a list of traveler event summaries based on specified `userId`, `companyId`, and `tripIds`.
      operationId: getEventSummaries
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetEventSummariesRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventSummariesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/payment-sources:
    parameters:
    - name: userId
      in: query
      description: ID of the event coordinator
      required: true
      schema:
        type: string
        format: uuid
        example: f49d00fe-1eda-4304-ba79-a980f565281d
    get:
      tags:
      - Events
      summary: Get allowed payment sources
      description: Get the payment sources that are associated with the `userId` of the event coordinator.
      operationId: getAllowedPaymentSources
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsPaymentSourcesResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/cancel:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    - name: type
      in: query
      description: 'EventType of the event.

        '
      schema:
        $ref: '#/components/schemas/EventType'
    post:
      tags:
      - Events
      summary: Cancel event
      description: "Cancel a published event. \nAfter you've canceled the event, it's recommended that you cancel the bookings using the Cancel PNR API.\n"
      operationId: cancelEvent
      responses:
        '200':
          description: OK
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /v2/events/{eventId}/travelers-list:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    post:
      tags:
      - Events
      summary: Get travelers list
      description: 'Get a paginated list of travelers for an event, including each traveler''s RSVP status, RSVP response, and `tripId`.

        '
      operationId: listEventTravelers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventTravelersRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventTravelersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/{eventId}/custom-field-responses:
    parameters:
    - name: eventId
      in: path
      description: Event ID
      required: true
      schema:
        type: string
        example: '6926658168'
    put:
      tags:
      - Events
      summary: Update event custom field responses
      description: Update the response to a custom field question.
      operationId: updateCustomFieldResponses
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventCustomFieldResponsesRequest'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-publish:
    post:
      tags:
      - Events
      summary: Bulk publish events
      description: API to bulk publish events and has a support for sending invite to selective users
      operationId: bulkPublishEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkPublishEventRequest'
      responses:
        '200':
          description: Bulk publish response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkPublishResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-edit:
    post:
      tags:
      - Events
      summary: Bulk edit/modify events.
      description: Edit the basic info and booking guidelines in bulk for events.
      operationId: bulkEditEvents
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkUpdateEventsRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkUpdateEventsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-delete:
    post:
      tags:
      - Events
      summary: Bulk delete draft events
      description: API to bulk delete draft events.
      operationId: bulkDeleteEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkDeleteEventRequest'
      responses:
        '200':
          description: Bulk delete response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkDeleteEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/bulk-cancel:
    post:
      tags:
      - Events
      summary: Bulk cancel events
      description: API to bulk cancel events.
      operationId: bulkCancelEvents
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BulkCancelEventRequest'
      responses:
        '200':
          description: Bulk cancel response with event statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BulkCancelEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /v2/events/jobs/status:
    post:
      tags:
      - Events
      summary: Get current details of an async event job.
      description: Get current details of an async event job
      operationId: getAsyncEventJobDetails
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncJobDetailRequest'
      responses:
        '200':
          description: Async job details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncJobDetailResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    AsyncJobDetailRequest:
      title: AsyncJobDetailRequest
      type: object
      required:
      - companyId
      properties:
        companyId:
          description: Company Id for which job was created.
          type: string
          example: c5977a9b-095a-40be-a1bb-b9d3c894e4a5
        filters:
          description: Filter to fetch the job details.
          $ref: '#/components/schemas/AsyncJobFilter'
    PersonalFilter:
      type: object
      title: PersonalFilter
      description: TmcFilter details.
      required:
      - id
      properties:
        id:
          description: user id
          $ref: '#/components/schemas/UserId'
        managedTravelerAccess:
          description: Config for providing the access to Managed Travelers if any. Applicable for Arranger roles.
          $ref: '#/components/schemas/ManagedTravelerPaymentAccess'
    TravelerEventSummary:
      title: TravelerEventSummary
      type: object
      description: Event summary for a traveler
      required:
      - id
      properties:
        id:
          type: string
          description: Event ID
          example: '12345'
        type:
          description: Event Type
          $ref: '#/components/schemas/EventType'
        name:
          type: string
          description: Name of the event
          example: My event
        description:
          type: string
          description: Description of the event
          example: This is an event description
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        contacts:
          type: array
          description: Event contacts for the traveler
          items:
            $ref: '#/components/schemas/UserId'
          deprecated: true
          x-sunset: '2026-07-01'
        documents:
          type: array
          description: List of documents associated with this event for the traveler
          items:
            $ref: '#/components/schemas/Document'
        bookingGuidelines:
          description: Booking details allowed for the event for the traveler
          type: array
          items:
            $ref: '#/components/schemas/EventBookingGuideline'
        allowedBookingTypes:
          type: array
          description: Allowed booking types for the event for the traveler
          items:
            $ref: '#/components/schemas/EventAllowedBookingType'
        eventUserRsvp:
          $ref: '#/components/schemas/EventUserRsvp'
        contactInfoList:
          type: array
          description: Event contacts for the traveler
          items:
            $ref: '#/components/schemas/EventUserInfo'
        companyId:
          $ref: '#/components/schemas/EntityId'
        runningStatus:
          $ref: '#/components/schemas/EventRunningStatus'
        status:
          $ref: '#/components/schemas/EventStatus'
        isRemovedParticipant:
          type: boolean
          description: Whether the traveler is part of the event.
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
        parentEventId:
          type: string
          description: Optional parent event's id.
          example: '56789012'
        bookingStyle:
          description: Whether the event bookings will be self served by the traveler or would be arranged by an agent for the traveler.
          $ref: '#/components/schemas/EventBookingStyle'
        allowTravelersToRsvp:
          description: Allow travelers to rsvp for the event
          $ref: '#/components/schemas/AllowTravelersToRsvp'
    NameSuffix:
      title: NameSuffix
      description: Suffix for name
      type: string
      enum:
      - NAME_SUFFIX_UNKNOWN
      - SR
      - JR
      - MD
      - PHD
      - II
      - III
      - IV
      - DO
      - ATTY
      - V
      - VI
      - ESQ
      - DC
      - DDS
      - VM
      - JD
      - SECOND
      - THIRD
      example: SR
    SeatPref:
      type: object
      title: SeatPref
      description: Preference about seat of rail.
      properties:
        hasAccessibility:
          type: boolean
          description: Whether or not requires assistance for disability.
          default: false
          example: false
        seatTypes:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefType'
        seatLocations:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefLocation'
        deckLevels:
          type: array
          items:
            $ref: '#/components/schemas/DeckLevel'
        seatDirections:
          type: array
          items:
            $ref: '#/components/schemas/SeatPrefDirection'
    EventNameFilterWrapper:
      type: object
      title: EventNameFilterWrapper
      description: Wrapper for EventNameFilter
      properties:
        eventNameFilter:
          $ref: '#/components/schemas/EventNameFilter'
    UpdateEventBasicInfoRequest:
      title: UpdateEventBasicInfoRequest
      description: Update Event basic info request object
      type: object
      required:
      - name
      - location
      properties:
        name:
          type: string
          description: Name of the event
        type:
          $ref: '#/components/schemas/EventType'
        description:
          type: string
          description: Description of the event
        documents:
          type: array
          description: Documents attached for an event
          items:
            $ref: '#/components/schemas/Document'
        startDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        endDateTime:
          $ref: '#/components/schemas/DateTimeLocal'
        location:
          $ref: '#/components/schemas/EventLocation'
        contacts:
          type: array
          description: Contacts for the event
          items:
            $ref: '#/components/schemas/UserId'
        referenceUsers:
          type: array
          description: Event group reference user ids
          items:
            $ref: '#/components/schemas/UserId'
        travelerTypes:
          type: array
          description: Allowed traveler types for the event
          items:
            $ref: '#/components/schemas/Persona'
        bookingStyle:
          description: Whether the event bookings will be self served by the traveler or would be arranged by an agent for the traveler.
          $ref: '#/components/schemas/EventBookingStyle'
        policyId:
          type: string
          format: uuid
          description: Policy associated with the event.
          example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        allowTravelersPolicy:
          $ref: '#/components/schemas/AllowTravelersPolicy'
        emailPreferences:
          $ref: '#/components/schemas/BucketEmailPreferences'
        allowTravelersToRsvp:
          $ref: '#/components/schemas/AllowTravelersToRsvp'
        internalNotes:
          type: string
          description: Internal notes of the event
          example: Use travelers default as payment method.
        tripOverrides:
          $ref: '#/components/schemas/TripOverrides'
        tripContacts:
          type: array
          description: Trip contacts for the event. These are passed through to created trips.
          items:
            $ref: '#/components/schemas/TripContact'
        inheritedCustomFieldIds:
          type: array
          description: List of custom field IDs that were inherited from parent
          items:
            type: string
            format: uuid
            example: f7b3b3b3-7b3b-4b3b-8b3b-3b3b3b3b3b3b
        eventCustomFieldV3Responses:
          type: array
          description: List of custom field responses for an event.
          items:
            $ref: '#/components/schemas/CustomFieldPrefilledResponse'
        eventCustomFieldResponses:
          deprecated: true
          x-sunset: '2026-07-01'
          type: array
          description: List of custom field responses for the event.
          items:
            $ref: '#/components/schemas/CustomFieldResponse'
        inviteEmailConfig:
          $ref: '#/components/schemas/InviteEmailConfig'
    OperationStatus:
      title: OperationStatus
      description: Generic operation/execution status.
      type: string
      enum:
      - SUCCESS
      - FAILED
      - PARTIAL_SUCCESS
      example: SUCCESS
    EventTravelersResponse:
      title: EventTravelersResponse
      description: List of travelers response
      type: object
      properties:
        travelerEventInfos:
          type: array
          description: List of user rsvp responses & trip details
          items:
            $ref: '#/components/schemas/TravelerEventInfo'
        userGroupInfo:
          description: Details about group's users
          $ref: '#/components/schemas/UserGroupInfo'
        paginationParams:
          description: Total number of active travelers in the event
          $ref: '#/components/schemas/OffsetBasedPaginationResponseParams'
    PaymentSourceTravelType:
      type: object
      title: PaymentSourceTravelType
      required:
      - travelType
      properties:
        travelType:
          description: Applicable travel segment type, e.g. AIR, HOTEL etc.
          $ref: '#/components/schemas/TravelType'
        isRequired:
          type: boolean
          description: Whether this is a required payment source for this travel type.
        allowPostPaidBookings:
          type: boolean
          description: Whether post paid bookings are allowed for this travel type.
          default: false
        metadata:
          description: Travel Type specific metadata for payment source.
          $ref: '#/components/schemas/PaymentSourceTravelTypeMetadata'
    HotelAmenities:
      title: HotelAmenities
      type: object
      description: Type of hotel amenity
      properties:
        type:
          $ref: '#/components/schemas/HotelAmenityType'
        additionalInfo:
          type: string
          description: Amenity description
          example: Complimentary in-room coffee or tea
        complimentary:
          type: boolean
          description: Is Amenity complimentary
          example: true
    DepartmentId:
      type: object
      title: DepartmentId
      description: Department id.
      required:
      - id
      properties:
        id:
          type: string
          example: 631ccbcf-9414-5fe0-c234-b324dfbe7422
    EventBookingGuideline:
      title: EventBookingGuideline
      description: Booking details allowed for the event
      type: object
      oneOf:
      - $ref: '#/components/schemas/AirBookingGuidelineWrapper'
      - $ref: '#/components/schemas/HotelBookingGuidelineWrapper'
      - $ref: '#/components/schemas/CarBookingGuidelineWrapper'
      - $ref: '#/components/schemas/RailBookingGuidelineWrapper'
      properties:
        numGuestsAllowed:
          type: integer
          description: Number of guests allowed to be booked for this booking
          example: 1
    IndividualFilter:
      type: object
      title: IndividualFilter
      description: IndividualFilter details.
      required:
      - ids
      - companyId
      properties:
        ids:
          type: array
          description: List of user id
          items:
            $ref: '#/components/schemas/UserId'
        companyId:
          description: company id
          $ref: '#/components/schemas/CompanyId'
    AdhocUserInfo:
      type: object
      title:

# --- truncated at 32 KB (235 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/spotnana/refs/heads/main/openapi/spotnana-events-api-openapi.yml