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.

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