This end point creates a new appointment in an Initial "IN" status. The exception is if completeBooking parameter set.
If you supply a valid customerId in the body, then the POST will create either a booking or reservation using the customer data.
A valid serviceId is required. Use GET consumer/v1/services to retrieve a list of your services.
A valid resourceId is required if your calendar is a resource based calendar and you are booking single resource appointments.
Use consumer/v1/resources to retrieve a list of your resources or use a resourceId returned from the /availability endpoints.
The resourceIds parameter is required for multi-resource appointments. Pass in comma separated valid resourceIds. This is beta until we update the notifications.
The customerIds parameter is required for multi-customer appointments. Pass in comma separated valid customerIds. This is beta until we update the notifications.
The locationId is optional. If the locationId is not passed, the system will default to the primary company location.
ServiceId provided must be valid for the location being searched. A valid serviceId is one that is scoped to
Primary Company Location or is associated with that business LocationId
The customerId is optional. If supplied you can use the completeBooking option and skip the PUT /book step.
The completeBooking option provides a mechanism for immediate booking with a POST. Applies if you have enough customer information
to complete the booking. Either supply email and name or customerId with required information.
Normally, completeBooking is for the BK or RS status, however IN is included to support payment flows.
The email, name and phone fields are only used with the completeBooking option. As with customerId you can
skip the PUT /book step. This endpoint completes the booking, and sends notifications.
A bookingWindowId is required if you are booking appointments into a defined booking window on the service.
BookedBy is an optional parameter. If it is not supplied the email address of the booked appointment is used or the ip address if no email address is
used in the /appointment/book endpoint. Booked by is used in the Appointment Audit trail which can be viewed in the Admin Portal.
Location is optional. This is a string representing the location of the actual appointment, not to be confused with a Business Location.
Timezone name is optional. The Timezone name is in Iana format e.g. America/New_York. This is the timezone where the appointment was booked. Populating
this information can help later in situations where appointments are booked before a Daylight Savings change.
StartDateTime and EndDateTime are required. Use the ISO 8601 format for DateTime Timezone. e.g. 2016-10-30T09:00:00-5:00
TravelTimeMins and TravelAppointmentId are optional. These are important if you factor in Travel Time for resources to move between appointments.
This information is returned from the availability/times endpoint.
See more information at Appointments Overview