---
title: "Appointment updated"
method: POST
path: "appointment.updated"
tags: ["webhooks"]
---

# Appointment updated

`POST appointment.updated` (webhook)

Triggered when an appointment is updated in any other way.

## Payload

- AppointmentUpdatedWebhookPayload
  - `data` object, required: Appointments represent scheduled visits for patients at a clinic. Each appointment is uniquely associated with a patient and can include details about the visit, such as the reason for the appointment, duration, and any special instructions. If a client has scheduled two patients, this will be represented as two separate appointments in our system. Unlike select legacy PIMS systems that create additional appointments for pickup and dropoff events, our appointment object includes both pickup and dropoff times when applicable, streamlining the scheduling process. This means a surgery would be represented as a single appointment with both check-in and check-out times, rather than as multiple separate appointments.
    - `alert_tags` union[], required: Array of alert tags associated with this appointment.
      - union
        - 'CONTAGIOUS'
        - ''
    - `calendar.clinic_id` integer, required: The ID of the clinic this appointment belongs to.
    - `calendar_id` integer, required: The ID of the calendar this appointment belongs to.
    - `cancelation_reason` union, required: The reason for cancelation or no-show, if applicable.
      - 'PATIENT_SEEN_ELSEWHERE' | 'CONCERN_RESOLVED' | 'PENDING_RESCHEDULE' | 'NO_LONGER_NEEDED' | 'WILL_RESCHEDULE' | 'DOCTOR_UNAVAILABLE' | 'CLINIC_SCHEDULE_CHANGE' | 'CREATED_IN_ERROR' | 'DUPLICATE' | 'WRONG_PATIENT' | 'WRONG_DATE_OR_TIME' | 'UNKNOWN' | 'OTHER' | 'NO_SHOW'
      - ''
    - `cancelation_reason_other` string, nullable, required: Free-text explanation of the cancelation, if one was provided.
    - `client_id` integer, nullable, required: The ID of the clinic client responsible for the appointment.
    - `clinic_notes` unknown, required
    - `created` string, date-time, required: The datetime this object was created.
    - `deleted` string, date-time, nullable, required: The datetime this record was soft deleted.
    - `dropoff_start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the patient should be dropped off.
    - `end_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the appointment ends.
    - `followup_appointment_ids` integer[]: List of followup appointment IDs associated with this appointment.
    - `id` integer, required: The unique identifier for the appointment.
    - `is_deleted` boolean, required: Whether this record is soft deleted or not.
    - `kind.label` string, nullable: The appointment kind (type of appointment).
    - `kind_id` integer, nullable: The ID of the appointment kind (type of appointment).
    - `medical_record_id` integer, nullable: The ID of the medical record associated with this appointment, if any.
    - `modified` string, date-time, required: The datetime this object was last modified; changes to related entities will not update this field.
    - `patient_id` integer, nullable, required: The ID of the clinic patient this appointment is for.
    - `pickup_start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the patient should be picked up.
    - `reason` string, nullable, required: The reason for this appointment.
    - `resource.name` string, nullable: The name of the calendar resource (provider/room) assigned to handle this appointment.
    - `resource_id` integer, nullable, required: The ID of the calendar resource (provider/room) assigned to handle this appointment.
    - `room.name` string, nullable: The name of the room assigned to this appointment, if any.
    - `room_id` integer, nullable, required: The ID of the room assigned to this appointment, if any.
    - `start_datetime` string, date-time, nullable, required: ISO 8601 formatted datetime for when the appointment starts.
    - `status` 'CREATING' | 'CLIENT_CREATING' | 'UNSCHEDULED' | 'UNCONFIRMED' | 'CONFIRMED' | 'DROPPED_OFF' | 'CHECKED_IN' | 'IN_PROGRESS' | 'READY_TO_GO' | 'COMPLETED' | 'NO_SHOW' | 'CANCELED' | 'IMPORTED' | 'CLIENT_REQUESTED', required
  - `type` 'appointment.updated', required: The event type identifier.

## Acknowledgement `200`

Webhook received

---

[API](https://skmtc.dev/vetcove/apis/ninjaapi.md) - [All operations](https://skmtc.dev/vetcove/apis/ninjaapi/llms.txt) - [OpenAPI document](https://skmtc.dev/vetcove/apis/ninjaapi/revisions/4ceaed956e15?raw)
