v2.1.0
A minor, additive release: per-tenant timezones for the custom admin views in multiTenant mode. No breaking changes — plain single-tenant installs are byte-for-byte unaffected.
Added
- Per-tenant timezones (
multiTenant). The admin Calendar, Availability grid, and Dashboard widget now resolve day-boundaries in the selected tenant's timezone instead of one global zone, so tenants in different zones each see their own local days. Resolution precedence:tenant.<timezoneField> → global timezone → 'UTC'. multiTenant.timezoneFieldoption (default'timezone') — points at the IANA timezone field on your tenant document. A missing or invalid value transparently falls back to the globaltimezone.GET /api/reserve/effective-timezoneendpoint — returns the resolved zone for the current request's selected tenant (read from the tenant cookie); the client calendar uses it for day-boundary rendering. Authenticated only.
Fixed
GET /api/reserve/resource-availabilitynow resolves day windows in the selected tenant's zone (was a single global zone for every tenant) and echoes the resolvedtimeZonein its response.
Notes
- Purely additive:
multiTenant.timezoneFieldis optional, and installs with no tenant relationship / no tenant cookie keep the global zone with no extra DB read.