Elation Health Appointments API

Scheduling and appointment management

Operations 23

DELETE /appointments/{id}/ Delete Event #
GET /appointments/{id}/ Get Event #
PUT /appointments/{id}/ Update Event #
PATCH /appointments/{id}/ Update Event #
POST /appointments/ Create Event #
GET /appointments/ Find Events #
GET /appointments/rooms Find Appointment Rooms #
PATCH /appointments/id/ Update Appointment Slot #
PUT /appointments/id/ Update Appointment Slot #
OPTIONS /appointments/slots/ Create Appointment Slot #
GET /appointments/ [WIP] Find Events [WIP] #
POST /appointments/ [WIP] Create Event [WIP] #
PUT /appointments/{id}/ [WIP] Update Event [WIP] #
PATCH /appointments/{id}/ [WIP] Update Event [WIP] #
POST /appointments/[WIP] Create Appointment [WIP] #
PUT /appointments/{id}/ [WIP] Update Appointment [WIP] #
PATCH /appointments/{id}/ [WIP] Update Appointment [WIP] #
GET /api/2.0/appointments/ List Appointments #
POST /api/2.0/appointments/ Create Appointment #
DELETE /api/2.0/appointments/{id}/ Delete Appointment #
GET /api/2.0/appointments/{id}/ Retrieve Appointment #
PATCH /api/2.0/appointments/{id}/ Partially Update Appointment #
PUT /api/2.0/appointments/{id}/ Update Appointment #

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/elation-appointments-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 email required.

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

OpenAPI Specification

elation-health-appointments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Elation Health Appointments API
  version: '1.0'
  description: 'Operations tagged Appointments across 4 of this provider''s published API definitions: elation-api-settings.json, elation-health-api-full-openapi.yaml, elation-health-appointments-api-openapi.yml, elation-scheduling-api.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://sandbox.elationemr.com/api/2.0
- description: Sandbox Server
  url: https://sandbox.elationemr.com
- description: Production Server
  url: https://api.app.elationemr.com
- url: https://app.elationemr.com/api/2.0
  description: Production
tags:
- name: Appointments
paths:
  /appointments/{id}/:
    delete:
      summary: Delete Event
      description: ''
      operationId: delete-event
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '204':
          description: '204'
          content:
            application/json:
              examples:
                Result:
                  value: ''
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.delete(\"https://sandbox.elationemr.com/api/2.0/appointments/54233202689/\",\n                       headers={'Authorization': auth_header})\n\nprint resp.status_code"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    get:
      summary: Get Event
      description: ''
      operationId: get-event
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 65097433178,\n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/65097433179/\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    put:
      summary: Update Event
      description: ''
      operationId: update-appointment
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\ndata = {\n  \"scheduled_date\": \"2016-11-28T18:30:00Z\",\n  \"duration\": 15,\n  \"reason\": None,       # typically None, can be a string of appointment type\n  \"patient\": None,      # must be None\n  \"description\": \"\",\n  \"physician\": 720898,\n  \"practice\": 655364,\n}\n\nresp = requests.put(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497154/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2))"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    patch:
      summary: Update Event
      description: ''
      operationId: update-event
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: integer
          format: int64
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# enter the value you want to update only. PUT will require all values, and PATCH will only require values you want to update.\ndata = {\n  \"scheduled_date\": \"2016-10-13T11:30:00Z\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/:
    post:
      summary: Create Event
      description: ''
      operationId: create-event
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - scheduled_date
              - reason
              - patient
              - physician
              - practice
              - time_slot_type
              properties:
                scheduled_date:
                  type: string
                  format: date
                duration:
                  type: integer
                  description: If duration is not provided, duration will be set to 15 minutes or the default duration for a particular reason
                  default: 15
                  format: int32
                reason:
                  type: string
                  description: typically should be null but can also be string of appointment type
                description:
                  type: string
                patient:
                  type: string
                  description: value must be null
                  default: 'null'
                  format: json
                physician:
                  type: integer
                  format: int32
                practice:
                  type: integer
                  format: int32
                time_slot_type:
                  type: string
                  description: value must be "event"
                  default: event
                service_location:
                  type: integer
                  description: ID of an active (non-deleted) practice location where the appointment will occur
                  format: int32
      responses:
        '201':
          description: '201'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 67176497154, \n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# sending only required data\ndata = {\n  \"scheduled_date\": \"2016-10-13T11:15:00Z\",\n  \"reason\": None,       # typically None, can be a string of appointment type\n  \"patient\": None,      # must be None\n  \"physician\": 131074,\n  \"practice\": 65540,\n  \"time_slot_type\": \"event\"\n}\n\nresp = requests.post(\"https://sandbox.elationemr.com/api/2.0/appointments/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    get:
      summary: Find Events
      description: ''
      operationId: testinput
      parameters:
      - name: time_slot_type
        in: query
        description: value must be "event"
        required: true
        schema:
          type: string
      - name: physician
        in: query
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: from_date
        in: query
        schema:
          type: string
          format: date
      - name: to_date
        in: query
        schema:
          type: string
          format: date
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"count\": 123,\n  \"next\": \"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event&limit=10&offset=10\",\n  \"previous\": \"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event&limit=10\",\n  \"results\": [  // list of objects\n    { // See Object Definition },\n    // ...\n    { // See Object Definition },\n  ]\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"VFroUHsmrErlVI6nJ08Alwhri5RGCW\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event\",\n                    headers={'Authorization': auth_header})\n\n# to search for events by scheduled_date, use the following url in the get request instead of the above \nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/?from_date=2016- 11-28T18:00:00Z&to_date=2016-11-29T18:00:00Z&time_slot_type=event\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/rooms:
    get:
      summary: Find Appointment Rooms
      description: ''
      operationId: find-appointment-rooms
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: practice
        in: query
        schema:
          type: array
          items:
            type: integer
            format: int64
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"count\": 123,\n  \"next\": \"https://sandbox.elationemr.com/api/2.0/appointments/rooms/?limit=10&offset=10\",\n  \"previous\": \"https://sandbox.elationemr.com/api/2.0/appointments/rooms/?limit=10\",\n  \"results\": [  // list of objects\n    { // See Object Definition },\n    // ...\n    { // See Object Definition },\n  ]\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"VFroUHsmrErlVI6nJ08Alwhri5RGCW\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/rooms/\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/id/:
    patch:
      summary: Update Appointment Slot
      description: ''
      operationId: update-appointment-slot
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - patient
              properties:
                patient:
                  type: integer
                  format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# The main 2 use cases for PATCH is patient reservation and cancellation\n\n# Setting the patient field to a valid patient will \"reserve\" the appointment slot for the patient\n# Setting the patient to null will cancel the reservation\n\n# if you only need to update the patient field, use the PATCH method\ndata = {\n  \"patient\": 123123\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2))"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    put:
      summary: Update Appointment Slot
      description: ''
      operationId: update-appointment-slot-1
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: id
        in: path
        schema:
          type: integer
          format: int64
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 83792571234,\n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# setting a patient will \"reserve\" the appointment slot for the patient\n# if you need to update other fields as well, use the PUT method\ndata = {\n  \"patient\": 123123,\n  \"description\": \"this is a new desc\"\n}\n\nresp = requests.put(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497153/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2))"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/slots/:
    options:
      summary: Create Appointment Slot
      description: ''
      operationId: create-appointment-slot
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      responses:
        '201':
          description: '201'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 67176497153, \n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# sending only required data\n# the following creates an \"unreserved\" appointment slot\ndata = {\n  \"scheduled_date\": \"2016-10-13T11:15:00Z\",\n  \"reason\": \"Follow-Up\",\n  \"physician\": 131074,\n  \"practice\": 65540,\n  \"time_slot_type\": \"appointment_slot\"\n}\n\nresp = requests.post(\"https://sandbox.elationemr.com/api/2.0/appointments/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/ [WIP]:
    get:
      summary: Find Events [WIP]
      description: ''
      operationId: find-events-wip
      parameters:
      - name: time_slot_type
        in: query
        description: if you want only events, value must be "event"
        required: true
        schema:
          type: string
      - name: physician
        in: query
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: from_date
        in: query
        description: lookup_expr="gte"
        schema:
          type: string
          format: date
      - name: to_date
        in: query
        description: lookup_expr="lte"
        schema:
          type: string
          format: date
      - name: Authorization
        in: header
        description: Bearer token
        required: true
        schema:
          type: string
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"count\": 123,\n  \"next\": \"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event&limit=10&offset=10\",\n  \"previous\": \"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event&limit=10\",\n  \"results\": [  // list of objects\n    { // See Object Definition },\n    // ...\n    { // See Object Definition },\n  ]\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"VFroUHsmrErlVI6nJ08Alwhri5RGCW\"\nauth_header = \"Bearer %s\" % (access_token)\n\nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/?time_slot_type=event\",\n                    headers={'Authorization': auth_header})\n\n# to search for events by scheduled_date, use the following url in the get request instead of the above \nresp = requests.get(\"https://sandbox.elationemr.com/api/2.0/appointments/?from_date=2016- 11-28T18:00:00Z&to_date=2016-11-29T18:00:00Z&time_slot_type=event\",\n                    headers={'Authorization': auth_header})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    post:
      summary: Create Event [WIP]
      description: ''
      operationId: create-event-wip
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - scheduled_date
              - reason
              - patient
              - physician
              - practice
              - time_slot_type
              properties:
                scheduled_date:
                  type: string
                  format: date
                duration:
                  type: integer
                  description: If duration is not provided, duration will be set to 15 minutes or the default duration for a particular reason
                  default: 15
                  format: int32
                reason:
                  type: string
                  description: typically should be null but can also be string of appointment type
                description:
                  type: string
                patient:
                  type: integer
                  description: value must be null
                  default: null
                  format: int32
                physician:
                  type: integer
                  format: int32
                practice:
                  type: integer
                  format: int32
                time_slot_type:
                  type: string
                  description: value must be "event"
                  default: event
                  enum:
                  - (1
                  - '"appointment")'
                  - (2
                  - '"event")'
                  - (3
                  - '"appointment_slot")'
                service_location:
                  type: integer
                  description: ID of an active (non-deleted) practice location where the appointment will occur
                  format: int32
      responses:
        '201':
          description: '201'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 67176497154, \n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# sending only required data\ndata = {\n  \"scheduled_date\": \"2016-10-13T11:15:00Z\",\n  \"reason\": None,       # typically None, can be a string of appointment type\n  \"patient\": None,      # must be None\n  \"physician\": 131074,\n  \"practice\": 65540,\n  \"time_slot_type\": \"event\"\n}\n\nresp = requests.post(\"https://sandbox.elationemr.com/api/2.0/appointments/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: https://sandbox.elationemr.com/api/2.0
  /appointments/{id}/ [WIP]:
    put:
      summary: Update Event [WIP]
      description: ''
      operationId: update-event-wip
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: id
        in: path
        schema:
          type: integer
          format: int64
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - scheduled_date
              - reason
              - patient
              - physician
              - practice
              - time_slot_type
              properties:
                scheduled_date:
                  type: string
                  format: date
                duration:
                  type: integer
                  description: If duration is not provided, duration will be set to 15 minutes or the default duration for a particular reason
                  default: 15
                  format: int32
                reason:
                  type: string
                  description: typically should be null but can also be string of appointment type
                description:
                  type: string
                patient:
                  type: integer
                  description: value must be null or belong to the practice
                  default: null
                  format: int32
                physician:
                  type: integer
                  format: int32
                practice:
                  type: integer
                  format: int32
                time_slot_type:
                  type: string
                  description: value must be "event"
                  default: event
                  enum:
                  - (1
                  - '"appointment")'
                  - (2
                  - '"event")'
                  - (3
                  - '"appointment_slot")'
                service_location:
                  type: integer
                  description: ID of an active (non-deleted) practice location where the appointment will occur
                  format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 67176497154, \n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\ndata = {\n  \"scheduled_date\": \"2016-11-28T18:30:00Z\",\n  \"duration\": 15,\n  \"reason\": None,       # typically None, can be a string of appointment type\n  \"patient\": None,      # must be None\n  \"description\": \"\",\n  \"physician\": 720898,\n  \"practice\": 655364,\n}\n\nresp = requests.put(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497154/\",\n                     data=json.dumps(data),\n                     headers={'Authorization': auth_header,\n                              'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2))"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    patch:
      summary: Update Event [WIP]
      description: ''
      operationId: update-event-wip-1
      parameters:
      - name: Authorization
        in: header
        required: true
        schema:
          type: string
      - name: id
        in: path
        schema:
          type: integer
          format: int64
        required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                scheduled_date:
                  type: string
                  format: date
                duration:
                  type: integer
                  description: If duration is not provided, duration will be set to 15 minutes or the default duration for a particular reason
                  default: 15
                  format: int32
                reason:
                  type: string
                  description: typically should be null but can also be string of appointment type
                description:
                  type: string
                patient:
                  type: integer
                  description: value must be null
                  default: null
                  format: int32
                physician:
                  type: integer
                  format: int32
                practice:
                  type: integer
                  format: int32
                time_slot_type:
                  type: string
                  description: value must be "event"
                  default: event
                  enum:
                  - (1
                  - '"appointment")'
                  - (2
                  - '"event")'
                  - (3
                  - '"appointment_slot")'
                service_location:
                  type: integer
                  description: ID of an active (non-deleted) practice location where the appointment will occur
                  format: int32
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"id\": 67176497154, \n  // See Object Definition\n}"
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: '{}'
              schema:
                type: object
                properties: {}
      deprecated: false
      x-readme:
        code-samples:
        - language: python
          code: "import requests\nimport json\n\naccess_token = \"TyEPKw8fVGRKpCBa81ygwjCLXDNIAm\"\nauth_header = \"Bearer %s\" % (access_token)\n\n# enter the value you want to update only. PUT will require all values, and PATCH will only require values you want to update.\ndata = {\n  \"scheduled_date\": \"2016-10-13T11:30:00Z\n}\n\nresp = requests.patch(\"https://sandbox.elationemr.com/api/2.0/appointments/67176497153/\",\n                       data=json.dumps(data),\n                       headers={'Authorization': auth_header,\n                                'Content-type': 'application/json'})\n\nprint resp.status_code\nprint json.dumps(json.loads(resp.content), indent=2)"
        samples-languages:
        - python
      tags:
      - Appointments
      security:
      - sec0: []
    servers:
    - url: 

# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elation-health/refs/heads/main/openapi/elation-health-appointments-api-openapi.yml