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

# Update Appointment



## OpenAPI

````yaml put /api/2.0/appointments/{id}/
openapi: 3.1.0
info:
  contact:
    name: Elation Health
    url: https://www.elationhealth.com/
  description: Elation Health API v2.0
  title: Scheduling API
  version: 2.0.0
servers:
  - description: Sandbox Server
    url: https://sandbox.elationemr.com
  - description: Production Server
    url: https://api.app.elationemr.com
security: []
paths:
  /api/2.0/appointments/{id}/:
    put:
      tags:
        - Appointments
      summary: Update Appointment
      operationId: appointments_update
      parameters:
        - in: path
          name: id
          required: true
          schema:
            format: int64
            type: integer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Appointment'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Appointment'
          description: ''
      security:
        - oauth2: []
components:
  schemas:
    Appointment:
      properties:
        appointment_type_id:
          description: >-
            The ID of an existing appointment type to assign to the appointment.
            Provide this instead of 'reason' to reference a specific appointment
            type rather than matching or creating one by name. If both 'reason'
            and 'appointment_type_id' are supplied, 'reason' takes precedence.
          format: int64
          type:
            - integer
            - 'null'
        billing_details:
          description: The billing details for the appointment.
          oneOf:
            - $ref: '#/components/schemas/AppointmentBillingDetails'
            - type: 'null'
        created_date:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        deleted_date:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        description:
          type:
            - string
            - 'null'
        duration:
          description: >-
            The duration of the appointment in minutes. If duration is not
            provided, the default duration will be used given a reason.
          maximum: 2147483647
          minimum: -2147483648
          type: integer
        id:
          readOnly: true
          type: integer
        instructions:
          type:
            - string
            - 'null'
        is_blocking:
          readOnly: true
          type: boolean
        last_modified_date:
          format: date-time
          readOnly: true
          type: string
        metadata:
          properties:
            data:
              type: object
            object_id:
              type: string
            object_web_link:
              type: string
          type:
            - object
            - 'null'
        mode:
          $ref: '#/components/schemas/ModeEnum'
        patient:
          format: int64
          type:
            - integer
            - 'null'
        payment:
          oneOf:
            - $ref: '#/components/schemas/Payment'
            - type: 'null'
        physician:
          format: int64
          type: integer
        practice:
          format: int64
          type: integer
        reason:
          maxLength: 50
          type:
            - string
            - 'null'
        recurring_event_schedule:
          format: int64
          type:
            - integer
            - 'null'
        scheduled_date:
          format: date-time
          type: string
        service_location:
          description: The ID of the service location where the appointment will occur.
          properties:
            address_line1:
              nullable: true
              type: string
            address_line2:
              nullable: true
              type: string
            city:
              nullable: true
              type: string
            created_date:
              format: date-time
              nullable: true
              type: string
            deleted_date:
              format: date-time
              nullable: true
              type: string
            id:
              format: int64
              type: integer
            is_primary:
              type: boolean
            name:
              type: string
            phone:
              nullable: true
              type: string
            place_of_service:
              enum:
                - 1
                - 2
                - 3
                - 4
                - 5
                - 6
                - 7
                - 8
                - 9
                - 10
                - 11
                - 12
                - 13
                - 14
                - 15
                - 16
                - 17
                - 18
                - 19
                - 20
                - 21
                - 22
                - 23
                - 24
                - 25
                - 26
                - 27
                - 31
                - 32
                - 33
                - 34
                - 41
                - 42
                - 49
                - 50
                - 51
                - 52
                - 53
                - 54
                - 55
                - 56
                - 57
                - 60
                - 61
                - 62
                - 65
                - 66
                - 71
                - 72
                - 81
                - 99
              nullable: true
              type: integer
            state:
              nullable: true
              type: string
            zip:
              nullable: true
              type: string
          type:
            - object
            - integer
            - 'null'
        status:
          oneOf:
            - $ref: '#/components/schemas/AppointmentStatus'
            - type: 'null'
        telehealth_details:
          deprecated: true
          type:
            - string
            - 'null'
        time_slot_status:
          oneOf:
            - $ref: '#/components/schemas/TimeSlotStatusEnum'
            - $ref: '#/components/schemas/NullEnum'
        time_slot_type:
          $ref: '#/components/schemas/TimeSlotTypeEnum'
        transportation_details:
          description: The transportation details for the appointment.
          oneOf:
            - $ref: '#/components/schemas/TransportationDetails'
            - type: 'null'
      required:
        - patient
        - physician
        - practice
        - scheduled_date
      type: object
    AppointmentBillingDetails:
      properties:
        billing_note:
          type:
            - string
            - 'null'
        prior_authorization:
          maxLength: 50
          type:
            - string
            - 'null'
        referring_provider:
          maxLength: 100
          type:
            - string
            - 'null'
        referring_provider_state:
          maxLength: 2
          type:
            - string
            - 'null'
      type: object
    ModeEnum:
      enum:
        - IN_PERSON
        - VIDEO
      type: string
    Payment:
      properties:
        amount:
          format: decimal
          pattern: ^-?\d{0,10}(?:\.\d{0,2})?$
          type: string
        appointment:
          format: int64
          type:
            - integer
            - 'null'
        bill:
          format: int64
          type:
            - integer
            - 'null'
        create_date:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        delete_date:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        id:
          readOnly: true
          type: integer
        when_collected:
          format: date-time
          type: string
      required:
        - amount
        - when_collected
      type: object
    AppointmentStatus:
      properties:
        room:
          type:
            - string
            - 'null'
        status:
          $ref: '#/components/schemas/AppointmentStatusStatusEnum'
        status_date:
          format: date-time
          readOnly: true
          type:
            - string
            - 'null'
        status_detail:
          type:
            - string
            - 'null'
      required:
        - status
      type: object
    TimeSlotStatusEnum:
      enum:
        - not_avail_for_self_schedule
      type: string
    NullEnum:
      type: 'null'
    TimeSlotTypeEnum:
      enum:
        - appointment
        - appointment_slot
        - event
      type: string
    TransportationDetails:
      description: >-
        Typed API shape for the ``transportation`` attribute, backed by the
        generic

        ``AppointmentAttribute`` store. Fields mirror ``TransportationAttr``;
        that Pydantic

        schema is the authoritative validator on write (length/format
        constraints live there,

        not here, to avoid drift).
      properties:
        is_required:
          type: boolean
        notes:
          type:
            - string
            - 'null'
      type: object
    AppointmentStatusStatusEnum:
      enum:
        - Billed
        - Cancelled
        - Checked In
        - Checked Out
        - Confirmed
        - In Room
        - In Room - Vitals Taken
        - Not Seen
        - Scheduled
        - With Doctor
      type: string
  securitySchemes:
    oauth2:
      flows:
        clientCredentials:
          scopes:
            act_as_user: >-
              Impersonate a provider via X-On-Behalf-Of (combinable with apiv2
              or system scopes)
            apiv2: Full access to the API
            system/{resource_name}.read: Read access to a specific resource
            system/{resource_name}.write: Write access to a specific resource
          tokenUrl: /api/2.0/oauth2/token/
      type: oauth2

````