---
schema_version: "1"
id: 74e5c9461d05500066fd458da71c52d4308ede6bb48e2fa03b65fb1141c8e810
title: Book Appointment Action
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/health_cloud_object_reference/actions_obj_book_appointment.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.health_cloud_object_reference.meta/health_cloud_object_reference/actions_obj_book_appointment.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: b8e68cdcbd376670bb1a6ddc4186eb4e30240cfd0600c23db699b20c3eca3553
description: Create or book a new appointment.
---
# Book Appointment Action

Create or book a new appointment.

This action is available in API version 65.0 and later.

## Supported REST HTTP Methods

**URI**: /services/data/vXX.X/connect/health/appointment-management/appointment

Where XX.X is the latest API version.

**Formats**: JSON, XML

**HTTP Methods**: POST

**Authentication**: Authorization: OAuth2 Bearer TOKEN

Where TOKEN is your OAuth access token.

## Inputs

<table class="featureTable sort_table" summary="">



          <thead class="thead sorted" align="left">
            <tr>
              <th class="featureTableHeader  " id="d300067e98">Input</th>

              <th class="featureTableHeader  " id="d300067e101">Type</th>

              <th class="featureTableHeader  " id="d300067e104">Description</th>

            </tr>

          </thead>

          <tbody class="tbody">
            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">appointmentTypes</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if none of <span class="keyword parmname">workTypeId</span>,
                <span class="keyword parmname">serviceTypes</span>, or <span class="keyword parmname">serviceCategories</span>
                is provided.<p class="p">Type of appointment, for example, Follow-up.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">channelId</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if an engagement channel is configured for a visit type.<p class="p">The engagement channel associated with the appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">comment</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Optional<p class="p">The notes associated with the appointment. Maximum length is 256
                  characters.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">description</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Optional<p class="p">The description of the appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">endDate</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Optional<p class="p">The end time of the appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">participants</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required. Patient and Facility (Location) are mandatory. Additionally,
                either a Device (asset) or a Provider is required for a single resource
                appointment, and both are required for a multi-resource appointment.<p class="p">List of participants involved in the appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">serviceCategories</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if none of <span class="keyword parmname">workTypeId</span>,
                <span class="keyword parmname">serviceTypes</span>, or <span class="keyword parmname">appointmentTypes</span>
                is provided.<p class="p">List of broad categorizations of the service to be performed during this
                  appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">serviceTypes</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if none of <span class="keyword parmname">workTypeId</span>,
                <span class="keyword parmname">appointmentTypes</span>, or
                <span class="keyword parmname">serviceCategories</span> is provided.<p class="p">List of specific services that are to be performed during this
                  appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">slots</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if the appointment is being booked for an external resource.<p class="p">List of references to the slots that this appointment is filling.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">sourceSystem</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if <span class="keyword parmname">workTypeId</span> is not provided but one of
                <span class="keyword parmname">appointmentTypes</span>, <span class="keyword parmname">serviceTypes</span>, or
                <span class="keyword parmname">serviceCategories</span> is provided.<p class="p">Describes the external system defined in Salesforce, such as "cerner".</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">specialties</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">Array</td>

              <td class="entry" headers="d300067e104" data-title="Description">Optional<p class="p">List of the specialty of a practitioner that would be required to perform
                  the service requested in this appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">startDate</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required<p class="p">The start time of the appointment.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">timeZone</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Optional<p class="p">Creates the appointment in the specified time zone.</p>
              </td>

            </tr>

            <tr>
              <td class="entry" headers="d300067e98" data-title="Input"><span class="keyword parmname">workTypeId</span></td>

              <td class="entry" headers="d300067e101" data-title="Type">String</td>

              <td class="entry" headers="d300067e104" data-title="Description">Required, if none of <span class="keyword parmname">appointmentTypes</span>,
                <span class="keyword parmname">serviceTypes</span>, or <span class="keyword parmname">serviceCategories</span>
                is provided.<p class="p">The visit type associated with the appointment.</p>
              </td>

            </tr>

          </tbody>

        </table>

## Outputs

| Output | Type | Description |
| --- | --- | --- |
| id | String | The ID of the Appointment. |
| isSuccess | Boolean | Indicates whether the appointment was created successfully. |
| status | String | The status of the Appointment, such as Scheduled or Rejected. |
| errorMessages | Array | A list of errors that occurred, if any. |

## Example

Sample Request

{
    "workTypeId": "08qxxG000000Axq6xxC",
    "channelId": "0eFxx000000NNOVxx0",
    "description": "Discussion",
    "startDate": "2025-07-21T18:00:00.000Z",
    "endDate": "2025-07-21T18:30:00.000Z",
    "comment": "Payload for the testing",
    "participants": \[
        {
            "reference": "Patient/001xx000012udqQxxQ"
        },
        {
            "reference": "Practitioner/0bSxx0000005JoaxxE",
            "isReferenceRequired": true
        },
        {
            "reference": "Facility/001xx000012udqhxxA"
        }
    \]
}

Sample Response

\[
    {
        "id": "08pxx000000Axq6xxC",
        "isSuccess": true,
        "status": "scheduled",
        "error": \[\]
    }
\]