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 

InputTypeDescription
appointmentTypesArrayRequired, if none of workTypeId, serviceTypes, or serviceCategories is provided.
Type of appointment, for example, Follow-up.
channelIdStringRequired, if an engagement channel is configured for a visit type.
The engagement channel associated with the appointment.
commentStringOptional
The notes associated with the appointment. Maximum length is 256 characters.
descriptionStringOptional
The description of the appointment.
endDateStringOptional
The end time of the appointment.
participantsArrayRequired. 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.
List of participants involved in the appointment.
serviceCategoriesArrayRequired, if none of workTypeId, serviceTypes, or appointmentTypes is provided.
List of broad categorizations of the service to be performed during this appointment.
serviceTypesArrayRequired, if none of workTypeId, appointmentTypes, or serviceCategories is provided.
List of specific services that are to be performed during this appointment.
slotsArrayRequired, if the appointment is being booked for an external resource.
List of references to the slots that this appointment is filling.
sourceSystemStringRequired, if workTypeId is not provided but one of appointmentTypes, serviceTypes, or serviceCategories is provided.
Describes the external system defined in Salesforce, such as “cerner”.
specialtiesArrayOptional
List of the specialty of a practitioner that would be required to perform the service requested in this appointment.
startDateStringRequired
The start time of the appointment.
timeZoneStringOptional
Creates the appointment in the specified time zone.
workTypeIdStringRequired, if none of appointmentTypes, serviceTypes, or serviceCategories is provided.
The visit type associated with the appointment.

Outputs 

OutputTypeDescription
idStringThe ID of the Appointment.
isSuccessBooleanIndicates whether the appointment was created successfully.
statusStringThe status of the Appointment, such as Scheduled or Rejected.
errorMessagesArrayA list of errors that occurred, if any.

Example 

Sample Request

1{
2    "workTypeId": "08qxxG000000Axq6xxC",
3    "channelId": "0eFxx000000NNOVxx0",
4    "description": "Discussion",
5    "startDate": "2025-07-21T18:00:00.000Z",
6    "endDate": "2025-07-21T18:30:00.000Z",
7    "comment": "Payload for the testing",
8    "participants": [
9        {
10            "reference": "Patient/001xx000012udqQxxQ"
11        },
12        {
13            "reference": "Practitioner/0bSxx0000005JoaxxE",
14            "isReferenceRequired": true
15        },
16        {
17            "reference": "Facility/001xx000012udqhxxA"
18        }
19    ]
20}

Sample Response

1[
2    {
3        "id": "08pxx000000Axq6xxC",
4        "isSuccess": true,
5        "status": "scheduled",
6        "error": []
7    }
8]