SPOTIO Appointments V2 API

The controller is responsible for handling the creation, updating, deleting and retrieval of appointment. Mainly the controller allow to manage appointment (current and future). Every appointment has related activity.

Operations 7

GET /api/v2/appointments/{appointmentId} Get an appointment by ID
PUT /api/v2/appointments/{appointmentId} Update an existing appointment
PATCH /api/v2/appointments/{appointmentId} Partially update an existing appointment
GET /api/v2/appointments/byActivity/{activityId} Get an appointment by activity ID
POST /api/v2/appointments Create a new appointment
POST /api/v2/appointments/bulk/create Bulk actions to create appointment for many records
POST /api/v2/appointments/multiple Create multiple appointments (max 20)

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/spotio-appointmentsv2-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

spotio-appointmentsv2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: v1
  title: Spotio 2.0 Appointments V2 API
  description: '

    The controller is responsible for handling the creation, updating, deleting and retrieval of appointment.

    Mainly the controller allow to manage appointment (current and future).

    Every appointment has related activity.

    '
  contact:
    name: Contact us
    url: https://spotio.com/contact/
    email: support@spotio.com
servers:
- url: https://api.spotio2.com
  description: Production
- url: https://app-test.spotio2.com
  description: Test
security:
- Bearer: []
tags:
- name: AppointmentsV2
  description: '

    The controller is responsible for handling the creation, updating, deleting and retrieval of appointment.

    Mainly the controller allow to manage appointment (current and future).

    Every appointment has related activity.

    '
paths:
  /api/v2/appointments/{appointmentId}:
    get:
      tags:
      - AppointmentsV2
      summary: Get an appointment by ID
      description: "### Appointment id formats\n####  Single appointment \n* \"{Id}\"  -->   \"997\"\n####  Single appointment from recurring series (\"ghost\" appointment from future)\n*  \"{Id]-[RecurringDefinitionId}-{OriginalStartDate}\"  -->   \"0-5173-638186040000000000\"            \n"
      parameters:
      - name: appointmentId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '401':
          description: Unauthorized
        '415':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
    put:
      tags:
      - AppointmentsV2
      summary: Update an existing appointment
      description: "### Appointment id formats\n####  Single appointment \n* \"{Id}\"  -->   \"997\"\n####  Single appointment from recurring series (\"ghost\" appointment from future)\n*  \"{Id]-[RecurringDefinitionId}-{OriginalStartDate}\"  -->   \"0-5173-638186040000000000\"            \n"
      parameters:
      - name: appointmentId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9449667+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9449707+00:00'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9449667+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9449707+00:00'
          application/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9449667+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9449707+00:00'
          text/json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9449667+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9449707+00:00'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9449667+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9449707+00:00'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9506031+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9506031+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9506031+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '401':
          description: Unauthorized
        '415':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
    patch:
      tags:
      - AppointmentsV2
      summary: Partially update an existing appointment
      description: "### Appointment id formats\n####  Single appointment \n* \"{Id}\"  -->   \"997\"\n####  Single appointment from recurring series (\"ghost\" appointment from future)\n*  \"{Id]-[RecurringDefinitionId}-{OriginalStartDate}\"  -->   \"0-5173-638186040000000000\"            \n"
      parameters:
      - name: appointmentId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9683473+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9683532+00:00'
          application/json-patch+json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9683473+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9683532+00:00'
          application/json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9683473+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9683532+00:00'
          text/json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9683473+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9683532+00:00'
          application/*+json:
            schema:
              $ref: '#/components/schemas/Morcatko.AspNetCore.JsonMergePatch.JsonMergePatchDocument`1[[Spotio.Frontend.ViewModel.Appointment.V2.PatchAppointmentV2, Spotio.Frontend.ViewModel, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.9683473+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9683532+00:00'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9729001+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9729001+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2'
              examples:
                default:
                  value:
                    id: '2163003'
                    dataObjectId: 6141d5853bf5da0001e891ee
                    ownerId: '2'
                    date: '2026-08-03T07:14:38.9729001+00:00'
                    duration: 60
                    title: Talk about insurance
                    notes: They want to buy
                    activityId: '2163003'
                    allDay: false
                    done: false
                    recurringDefinition:
                      id: '304'
                      periodicity: hours
                      interval: 5
                      repeatOn:
                      - monday
                      - friday
                      count: 5
                    activityTemplateId: '4'
                    remindBeforeInSeconds: 3600
                    auto: false
                    createdById: '1234'
                    dataObjectTypeId: 1
                    access: full
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '401':
          description: Unauthorized
        '415':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/v2/appointments/byActivity/{activityId}:
    get:
      tags:
      - AppointmentsV2
      summary: Get an appointment by activity ID
      parameters:
      - name: activityId
        in: path
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentWithDataObject'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '401':
          description: Unauthorized
        '415':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '422':
          description: Client Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            application/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
            text/json:
              schema:
                $ref: '#/components/schemas/Spotio.Infrastructure.Common.DataModel.Error.Error'
      security:
      - Bearer: []
      servers:
      - url: https://api.spotio2.com
        description: Production
      - url: https://app-test.spotio2.com
        description: Test
  /api/v2/appointments:
    post:
      tags:
      - AppointmentsV2
      summary: Create a new appointment
      description: "If AllDay = true (lasts for the entirety of the date), an appointment is created without a start and end\n### Appointment id formats\n####  Single appointment \n* \"{Id}\"  -->   \"997\"\n####  Single appointment from recurring series (\"ghost\" appointment from future)\n*  \"{Id]-[RecurringDefinitionId}-{OriginalStartDate}\"  -->   \"0-5173-638186040000000000\"            \n"
      requestBody:
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/Spotio.Frontend.ViewModel.Appointment.V2.AppointmentV2Request'
            examples:
              default:
                value:
                  dataObjectId: 6141d5853bf5da0001e891ee
                  ownerId: '2'
                  date: '2026-08-03T07:14:38.981722+00:00'
                  duration: 60
                  title: Talk about insurance
                  notes: They want to buy
                  activityId: '2163003'
                  allDay: false
                  done: false
                  recurringDefinition:
                    id: '304'
                    periodicity: hours
                    interval: 5
                    repeatOn:
                    - monday
                    - friday
                    count: 5
                  remindBeforeInSeconds: 3600
                  activityTemplateId: '4'
                  intention: allFromRecurring
                  originalStartDate: '2026-08-03T07:14:38.9817243+00:00'
          application/json-patch+json:
     

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