APIAppointments
Reschedules keep the booking length
A customer reschedule moves an appointment to a new time. It now also has to keep the length of the booking:- The new slot must cover the same number of billed units as the current one.
For a custom-duration product priced per hour, a 2-hour booking can move to
any other free 2-hour slot, but not to 3 hours. A different length returns
400(“The new time must be the same length as the current booking …”). - The appointment’s product can’t change. A
slot.productIdthat isn’t the appointment’s own product is ignored, and the slot is checked against the appointment’s product.
What to change
Nothing, if your reschedule UI already keeps the booking length. The open-source templates and the Opencals storefront already do. If you let customers pick a new end time, fix the length to the current booking’s and pass it asduration when you load availability: