v2.2.0
A minor, additive release: an app-supplied resolver for folding external busy time (e.g. calendar sync) into availability. No breaking changes — installs that don't configure getExternalBusy are unaffected.
Added
getExternalBusyplugin option. An app-supplied resolver that maps a resource and time window to external busy intervals (e.g. a Google/Outlook calendar-sync table), so third-party events are folded into this plugin's availability logic.- Enforcement in
checkAvailability. An external interval blocks the WHOLE resource (allquantityunits) — external calendars aren't unit-aware. The resolver is called inside try/catch and treated as fail-open: a resolver error never blocks a real booking. external[]in the resource-availability endpoint response, carrying the resolved external intervals for the requested window.externalslot state in CalendarView, rendered as a distinct, non-clickable hatched slot, withslotExternaltranslations added in all 12 supported languages.