OptionalidServer id. Absent on an exception that has not been stored yet.
First (or only) local date, YYYY-MM-DD.
OptionalendLast local date, inclusive. Absent = date alone.
block removes time (wins over everything); open adds it.
OptionalstartMinutes from local midnight. BOTH or NEITHER.
OptionalendOptionalspecialtyFor an open exception: restrict the extra hours to one specialty slug,
as a rule's specialty does. Ignored on a block — time off is time
off, whichever clinic the window belonged to.
OptionalreasonShown to the physician only — never to patients.
A dated change to the weekly pattern — time off, or extra hours.
dateis a local calendar date;endDate(inclusive) makes it a range — "away 2026-12-20 → 2027-01-04" is ONE exception. Both minute fields absent = the whole of each day; present = that window on each day of the range.