github olivierlambert/calrs v1.15.0
v1.15.0: Shared bookable resources + team booking fixes

8 hours ago

The shared-resources release: attach instance-level bookable resources (a demo lab, meeting rooms) to your event types. A busy resource blocks the slot, confirmed bookings are reserved in the resource's own CalDAV calendar, and team admins can manage attachments through per-resource allowlists. Plus a round of team booking fixes reported from the field.

Shared bookable resources

  • Resources are backed by a read-only ICS publish feed (BlueMind, Nextcloud, any iCalendar URL) and managed from the admin panel: feed validation, "Sync now", "Test write", sync-failure indicator (#149, #152)
  • Two modes per event type: all (every resource must be free) and round-robin (least-loaded free resource is picked and shown on the booking)
  • Reservation write-back into the resource's CalDAV collection prevents cross-event-type double-booking; released on cancel/reschedule
  • Per-resource team allowlists: team admins attach allowlisted resources to their own team event types, enforced server-side (#153)
  • CLI parity: calrs event-type slots consults resources, calrs booking cancel releases reservations and cleans the host calendar (#150)
  • New docs page: Shared Resources

Team booking fixes

  • Write-back targets the right calendar (#147): team bookings land on the assigned member's calendar, not the event type owner's. Collective mode is now fully implemented at booking time: it verifies every member, pushes to every member's calendar, and notifies every member. Reminders and the sync orphan sweep follow the same resolution.
  • Per-member slot capacity (#146): the double-booking guard is keyed per assigned member, so a round-robin team can take as many parallel bookings per slot as it has free members.
  • No more duplicate Fastmail invites (#141): CalDAV write-back marks attendees SCHEDULE-AGENT=CLIENT (RFC 6638), so scheduling-aware servers no longer send their own UTC invitation on top of the calrs email.

Upgrade notes

Migrations 060 and 061 run automatically on startup (resource team allowlist, per-member booking uniqueness). No config changes required. Thanks to Michael (3dreams-medienagentur) and Matthijs (@MatthijsZw) for the detailed reports and reproducible setups.

🤖 Generated with Claude Code

Don't miss a new calrs release

NewReleases is sending notifications on new releases.