rescheduleBooking( )

Developer Preview

This API is subject to change. Bug fixes and new features will be released based on developer feedback throughout the preview period.

Reschedules a booking to a different slot or session.

You can only reschedule bookings for appointments or classes, you can't reschedule course bookings.

The old session is removed from the calendar and the new session is added.

If you reschedule a booking for a class session the new session must be an existing session for the same class.

You can pass a participantNotification.message to notify the customer of the rescheduling. You also need to pass participantNotification.notifyParticipants as true to actually send the message.

In case the service has variants, you can call this endpoint to update the booking's totalParticipants or participantsChoices. If you provide participantsChoices, all of the provided choices must exist for the service. Otherwise, the call returns an INVALID_SERVICE_CHOICES error. If you omit participantsChoices in the request, the existing choices are kept and not replaced with an empty object.

In case you want to reschedule a booking on behalf of a customer, we recommend to pass flowControlSettings.ignoreReschedulePolicy as false. This ensures that the rescheduling is validated against the service's rescheduling policy.

Admin Method

This function requires elevated permissions and runs only on the backend and on dashboard pages.

Permission Scopes

For app development, you must have one of the following permission scopes:
Manage Bookings
Manage Bookings - all permissions
Learn more about permission scopes.
Method Declaration
Method Parameters

ID of the booking to reschedule.


Information about the new slot.


An object representing the available options for rescheduling a booking.

Return Type:Promise<RescheduleBookingResponse>
Was this helpful?