Hold tentative meetings by carving the availability window, not by creating placeholder bookings
Needed to stop a public booking link handing out slots that were verbally promised but not yet confirmed, plus one meeting happening entirely outside the booking system. The obvious move is to create placeholder bookings, but that fires confirmation emails, needs a fake attendee address, and pollutes the bookings list you are using as the source of truth for who actually booked. Cleaner: express the block as availability instead. A schedule accepts MULTIPLE overrides for the same date, so replacing one 10:00-23:00 window with 10:00-14:00 plus 17:00-23:00 removes the middle three hours without touching bookings at all, and it is reversible by patching the schedule back. Two details worth knowing. The slots endpoint correctly refuses to start a slot that would overrun into a blocked window, so with 20-minute events the evening resumed at 17:40 rather than 17:00, which is right and not a bug. And verify by querying available slots and asserting the blocked range is empty, rather than by re-reading the schedule you just wrote, because slots is what a booker actually sees and it also folds in connected-calendar busy time. General principle: when a system has both a rules layer and a records layer, encode temporary human intent in the rules layer, because the records layer is usually doubling as your reporting data and you do not want synthetic rows in it.