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

# Appointment

> Event payload details and trigger documentation for Appointment data from Intakeq

<img src="https://mintcdn.com/morfhealth/EU2WCxuXGIUQcziR/images/intakeq.svg?fit=max&auto=format&n=EU2WCxuXGIUQcziR&q=85&s=191a6c088f13edff5cd7f23a84babb49" alt="images/intakeq.svg" width="40" height="40" data-path="images/intakeq.svg" />

# Events

## Triggering Webhook Types

The following event types are associated with the Appointment event payload from Intakeq.

* `Intakeq Appointment Scheduled`
* `Intakeq Appointment Cancelled`
* `Intakeq Appointment Confirmed`
* `Intakeq Appointment Rescheduled`
* `Intakeq Appointment Declined`
* `Intakeq Appointment Missed`
* `Intakeq Appointment Deleted`
* `Intakeq Appointment Updated`
* `Intakeq Appointment Assumed Occurred`

<RequestExample>
  ```json Example theme={null}
  {
    "additional_clients": [
      {
        "client_id": 42,
        "email_address": "ettore@bugatti.com",
        "name": "Ettore Bugatti",
        "phone_number": "5554016515"
      }
    ],
    "appointment_client_confirmed": true,
    "appointment_created_at": "2024-01-23T10:00:00Z",
    "appointment_created_by": "John Smith",
    "appointment_date": "January 23, 2024",
    "appointment_datetime": "2024-01-23T10:00:00Z",
    "appointment_day_of_month": "23",
    "appointment_day_of_week": "Tuesday",
    "appointment_email_address": "patient@email.com",
    "appointment_end_datetime": "2024-01-23T11:30:00Z",
    "appointment_first_name": "John",
    "appointment_id": "12342",
    "appointment_last_name": "Smith",
    "appointment_length_minutes": 90,
    "appointment_location_detail": "Manhattan Office",
    "appointment_meeting_join_url": "https://example.com/meeting/123456",
    "appointment_month": "January",
    "appointment_phone_number": "(222) 222-2222",
    "appointment_provider_email": "mariec@radioactiverus.com",
    "appointment_provider_full_name": "Marie Curie",
    "appointment_provider_id": "acbdefg",
    "appointment_status": "Confirmed",
    "appointment_time": "10:00AM",
    "appointment_type_id": "16f7f7e3-8df6-4eab-986d-d1fd8375926b",
    "appointment_type_title": "Initial Consultation",
    "appointment_zoom_meeting_password": "123456",
    "attendance_confirmation_response": "The confirmation response for the appt. (None, Confirmed, Cancelled)",
    "cancellation_reason_note": "Patient will reschedule next week",
    "cancelled_at": "2024-01-22T15:30:00Z",
    "client_note": "(905) 875-7338",
    "full_cancellation_reason": "Patient requested cancellation due to being cured",
    "intake_id": "00000000-0000-0000-0000-000000000000",
    "intakeq_patient_id": "83212",
    "invitation": "Please join the video call using the link below: ....",
    "invoice_id": "65fdd9e89c7e50a54b3090ae",
    "invoice_number": 168,
    "last_updated_at": "2024-01-23T10:21:17Z",
    "practitioner_note": "Patient needs to complete intake form",
    "price": 150
  }
  ```
</RequestExample>

<ResponseExample>
  ```json Description theme={null}
  {
    "additional_clients": {
      "client_id": "IntakeQ's unique identifier for the client",
      "email_address": "Email address of the client",
      "name": "Full name of the client",
      "phone_number": "Primary phone number of the client"
    },
    "appointment_client_confirmed": "Whether the appointment was booked/confirmed by the client",
    "appointment_created_at": "Time the appointment was created",
    "appointment_created_by": "Name of person who created the appointment",
    "appointment_date": "Full date of the appointment",
    "appointment_datetime": "Start time of the appointment",
    "appointment_day_of_month": "Day of month for the appointment",
    "appointment_day_of_week": "Day of week for the appointment",
    "appointment_email_address": "Email address of the client",
    "appointment_end_datetime": "End time of the appointment",
    "appointment_first_name": "Client's first name",
    "appointment_id": "Unique identifier for the appointment",
    "appointment_last_name": "Client's last name",
    "appointment_length_minutes": "Duration of appointment in minutes",
    "appointment_location_detail": "Location details - either physical location name or telehealth visit (e.g. Zoom) URL",
    "appointment_meeting_join_url": "URL to join telehealth meeting if applicable",
    "appointment_month": "Month of the appointment",
    "appointment_phone_number": "Phone number of the client",
    "appointment_provider_email": "Email address of the practitioner",
    "appointment_provider_full_name": "Full name of the practitioner",
    "appointment_provider_id": "ID of the practitioner",
    "appointment_status": "Status of the appointment",
    "appointment_time": "Time of the appointment in local timezone",
    "appointment_type_id": "Service ID for the appointment type",
    "appointment_type_title": "Name of the service/appointment type",
    "appointment_zoom_meeting_password": "Password for telehealth meeting if applicable",
    "attendance_confirmation_response": "Response to the attendance confirmation request",
    "cancellation_reason_note": "Additional notes about the cancellation",
    "cancelled_at": "If cancelled: when the appointment was cancelled",
    "client_note": "Client Note",
    "full_cancellation_reason": "Full reason for appointment cancellation",
    "intake_id": "ID of the intake form associated with the appointment, if any",
    "intakeq_patient_id": "IntakeQ's unique identifier for the patient",
    "invitation": "Telehealth invitation text, may include the meeting link and password",
    "invoice_id": "ID of the invoice associated with the appointment",
    "invoice_number": "Invoice number associated with the appointment",
    "last_updated_at": "When the appointment was last updated",
    "practitioner_note": "Note provided by the practitioner",
    "price": "Price of the appointment (USD)"
  }
  ```
</ResponseExample>

### Payload Field Details

<ResponseField name="Appointment" type="Event Payload">
  <Expandable title="fields" defaultOpen="true">
    <ResponseField name="appointment_id" type="string" required>
      Unique identifier for the appointment

      ```json CEL theme={null}
      appointment_id
      ```

      ```json Example theme={null}
      "12342"
      ```
    </ResponseField>

    <ResponseField name="appointment_email_address" type="string" required>
      Email address of the client

      ```json CEL theme={null}
      appointment_email_address
      ```

      ```json Example theme={null}
      "patient@email.com"
      ```
    </ResponseField>

    <ResponseField name="appointment_phone_number" type="string" required>
      Phone number of the client

      ```json CEL theme={null}
      appointment_phone_number
      ```

      ```json Example theme={null}
      "(222) 222-2222"
      ```
    </ResponseField>

    <ResponseField name="appointment_type_id" type="string" required>
      Service ID for the appointment type

      ```json CEL theme={null}
      appointment_type_id
      ```

      ```json Example theme={null}
      "16f7f7e3-8df6-4eab-986d-d1fd8375926b"
      ```
    </ResponseField>

    <ResponseField name="appointment_type_title" type="string" required>
      Name of the service/appointment type

      ```json CEL theme={null}
      appointment_type_title
      ```

      ```json Example theme={null}
      "Initial Consultation"
      ```
    </ResponseField>

    <ResponseField name="appointment_client_confirmed" type="bool" required>
      Whether the appointment was booked/confirmed by the client

      ```json CEL theme={null}
      appointment_client_confirmed
      ```

      ```json Example theme={null}
      true
      ```
    </ResponseField>

    <ResponseField name="appointment_location_detail" type="string" required>
      Location details - either physical location name or telehealth visit (e.g. Zoom) URL

      ```json CEL theme={null}
      appointment_location_detail
      ```

      ```json Example theme={null}
      "Manhattan Office"
      ```
    </ResponseField>

    <ResponseField name="appointment_zoom_meeting_password" type="string">
      Password for telehealth meeting if applicable

      ```json CEL theme={null}
      appointment_zoom_meeting_password
      ```

      ```json Example theme={null}
      "123456"
      ```
    </ResponseField>

    <ResponseField name="appointment_provider_id" type="string" required>
      ID of the practitioner

      ```json CEL theme={null}
      appointment_provider_id
      ```

      ```json Example theme={null}
      "acbdefg"
      ```
    </ResponseField>

    <ResponseField name="appointment_provider_full_name" type="string" required>
      Full name of the practitioner

      ```json CEL theme={null}
      appointment_provider_full_name
      ```

      ```json Example theme={null}
      "Marie Curie"
      ```
    </ResponseField>

    <ResponseField name="appointment_provider_email" type="string" required>
      Email address of the practitioner

      ```json CEL theme={null}
      appointment_provider_email
      ```

      ```json Example theme={null}
      "mariec@radioactiverus.com"
      ```
    </ResponseField>

    <ResponseField name="appointment_datetime" type="timing.v1.Timestamp" required>
      Start time of the appointment

      ```json CEL theme={null}
      appointment_datetime
      ```

      ```json Example theme={null}
      "2024-01-23T10:00:00Z"
      ```
    </ResponseField>

    <ResponseField name="appointment_end_datetime" type="timing.v1.Timestamp" required>
      End time of the appointment

      ```json CEL theme={null}
      appointment_end_datetime
      ```

      ```json Example theme={null}
      "2024-01-23T11:30:00Z"
      ```
    </ResponseField>

    <ResponseField name="appointment_length_minutes" type="uint64" required>
      Duration of appointment in minutes

      ```json CEL theme={null}
      appointment_length_minutes
      ```

      ```json Example theme={null}
      90
      ```
    </ResponseField>

    <ResponseField name="appointment_created_at" type="timing.v1.Timestamp" required>
      Time the appointment was created

      ```json CEL theme={null}
      appointment_created_at
      ```

      ```json Example theme={null}
      "2024-01-23T10:00:00Z"
      ```
    </ResponseField>

    <ResponseField name="appointment_created_by" type="string" required>
      Name of person who created the appointment

      ```json CEL theme={null}
      appointment_created_by
      ```

      ```json Example theme={null}
      "John Smith"
      ```
    </ResponseField>

    <ResponseField name="appointment_first_name" type="string" required>
      Client's first name

      ```json CEL theme={null}
      appointment_first_name
      ```

      ```json Example theme={null}
      "John"
      ```
    </ResponseField>

    <ResponseField name="appointment_last_name" type="string" required>
      Client's last name

      ```json CEL theme={null}
      appointment_last_name
      ```

      ```json Example theme={null}
      "Smith"
      ```
    </ResponseField>

    <ResponseField name="appointment_day_of_week" type="string" required>
      Day of week for the appointment

      ```json CEL theme={null}
      appointment_day_of_week
      ```

      ```json Example theme={null}
      "Tuesday"
      ```
    </ResponseField>

    <ResponseField name="appointment_day_of_month" type="string" required>
      Day of month for the appointment

      ```json CEL theme={null}
      appointment_day_of_month
      ```

      ```json Example theme={null}
      "23"
      ```
    </ResponseField>

    <ResponseField name="appointment_month" type="string" required>
      Month of the appointment

      ```json CEL theme={null}
      appointment_month
      ```

      ```json Example theme={null}
      "January"
      ```
    </ResponseField>

    <ResponseField name="appointment_date" type="string" required>
      Full date of the appointment

      ```json CEL theme={null}
      appointment_date
      ```

      ```json Example theme={null}
      "January 23, 2024"
      ```
    </ResponseField>

    <ResponseField name="appointment_time" type="string" required>
      Time of the appointment in local timezone

      ```json CEL theme={null}
      appointment_time
      ```

      ```json Example theme={null}
      "10:00AM"
      ```
    </ResponseField>

    <ResponseField name="appointment_status" type="string" required>
      Status of the appointment

      ```json CEL theme={null}
      appointment_status
      ```

      ```json Example theme={null}
      "Confirmed"
      ```
    </ResponseField>

    <ResponseField name="intakeq_patient_id" type="string" required>
      IntakeQ's unique identifier for the patient

      ```json CEL theme={null}
      intakeq_patient_id
      ```

      ```json Example theme={null}
      "83212"
      ```
    </ResponseField>

    <ResponseField name="last_updated_at" type="timing.v1.Timestamp" required>
      When the appointment was last updated

      ```json CEL theme={null}
      last_updated_at
      ```

      ```json Example theme={null}
      "2024-01-23T10:21:17Z"
      ```
    </ResponseField>

    <ResponseField name="price" type="float64 (double)">
      Price of the appointment (USD)

      ```json CEL theme={null}
      price
      ```

      ```json Example theme={null}
      150
      ```
    </ResponseField>

    <ResponseField name="invoice_id" type="string">
      ID of the invoice associated with the appointment

      ```json CEL theme={null}
      invoice_id
      ```

      ```json Example theme={null}
      "65fdd9e89c7e50a54b3090ae"
      ```
    </ResponseField>

    <ResponseField name="invoice_number" type="int64">
      Invoice number associated with the appointment

      ```json CEL theme={null}
      invoice_number
      ```

      ```json Example theme={null}
      168
      ```
    </ResponseField>

    <ResponseField name="client_note" type="string">
      Client Note

      ```json CEL theme={null}
      client_note
      ```

      ```json Example theme={null}
      "(905) 875-7338"
      ```
    </ResponseField>

    <ResponseField name="practitioner_note" type="string">
      Note provided by the practitioner

      ```json CEL theme={null}
      practitioner_note
      ```

      ```json Example theme={null}
      "Patient needs to complete intake form"
      ```
    </ResponseField>

    <ResponseField name="full_cancellation_reason" type="string">
      Full reason for appointment cancellation

      ```json CEL theme={null}
      full_cancellation_reason
      ```

      ```json Example theme={null}
      "Patient requested cancellation due to being cured"
      ```
    </ResponseField>

    <ResponseField name="cancellation_reason_note" type="string">
      Additional notes about the cancellation

      ```json CEL theme={null}
      cancellation_reason_note
      ```

      ```json Example theme={null}
      "Patient will reschedule next week"
      ```
    </ResponseField>

    <ResponseField name="cancelled_at" type="timing.v1.Timestamp">
      If cancelled: when the appointment was cancelled

      ```json CEL theme={null}
      cancelled_at
      ```

      ```json Example theme={null}
      "2024-01-22T15:30:00Z"
      ```
    </ResponseField>

    <ResponseField name="attendance_confirmation_response" type="string">
      Response to the attendance confirmation request

      ```json CEL theme={null}
      attendance_confirmation_response
      ```

      ```json Example theme={null}
      "The confirmation response for the appt. (None, Confirmed, Cancelled)"
      ```
    </ResponseField>

    <ResponseField name="additional_clients" type="[]object" required>
      Additional clients associated with the appointment

      ```json CEL theme={null}
      additional_clients
      ```

      ```json Example theme={null}
      [
      {
      "client_id": 42,
      "email_address": "ettore@bugatti.com",
      "name": "Ettore Bugatti",
      "phone_number": "5554016515"
      }
      ]
      ```
    </ResponseField>

    <ResponseField name="additional_clients.map(x, x.client_id)" type="[]int64" required>
      Mapped array of: IntakeQ's unique identifier for the client

      ```json CEL theme={null}
      additional_clients.map(x, x.client_id)
      ```

      ```json Example theme={null}
      [
      42
      ]
      ```
    </ResponseField>

    <ResponseField name="additional_clients.map(x, x.name)" type="[]string" required>
      Mapped array of: Full name of the client

      ```json CEL theme={null}
      additional_clients.map(x, x.name)
      ```

      ```json Example theme={null}
      [
      "Ettore Bugatti"
      ]
      ```
    </ResponseField>

    <ResponseField name="additional_clients.map(x, x.email_address)" type="[]string" required>
      Mapped array of: Email address of the client

      ```json CEL theme={null}
      additional_clients.map(x, x.email_address)
      ```

      ```json Example theme={null}
      [
      "ettore@bugatti.com"
      ]
      ```
    </ResponseField>

    <ResponseField name="additional_clients.map(x, x.phone_number)" type="[]string" required>
      Mapped array of: Primary phone number of the client

      ```json CEL theme={null}
      additional_clients.map(x, x.phone_number)
      ```

      ```json Example theme={null}
      [
      "5554016515"
      ]
      ```
    </ResponseField>

    <ResponseField name="invitation" type="string">
      Telehealth invitation text, may include the meeting link and password

      ```json CEL theme={null}
      invitation
      ```

      ```json Example theme={null}
      "Please join the video call using the link below: ...."
      ```
    </ResponseField>

    <ResponseField name="appointment_meeting_join_url" type="string">
      URL to join telehealth meeting if applicable

      ```json CEL theme={null}
      appointment_meeting_join_url
      ```

      ```json Example theme={null}
      "https://example.com/meeting/123456"
      ```
    </ResponseField>

    <ResponseField name="intake_id" type="string">
      ID of the intake form associated with the appointment, if any

      ```json CEL theme={null}
      intake_id
      ```

      ```json Example theme={null}
      "00000000-0000-0000-0000-000000000000"
      ```
    </ResponseField>
  </Expandable>
</ResponseField>
