v0.21.0 — Private invites, Cal.com-style slots, theme toggle, additional attendees, team link editing
Added
- Private event types — hide event types from your public profile. Only accessible via invite links.
- Booking invites — send personalized invite links with pre-filled guest info, expiration, and usage limits. Works with both personal and group event types.
- Cal.com-style slot picker — redesigned booking page with 3-panel layout: meeting info sidebar, month calendar, and time slots.
- Reusable team links — team links are now reusable by default. Opt-in "one-time use" checkbox auto-deletes after a single booking.
- Team link editing — edit existing team links (title, duration, members, settings) from the dashboard.
- Dark/light theme toggle — manual System/Light/Dark switcher on public pages (footer) and in dashboard settings. Flash-free loading from localStorage.
- Additional attendees — guests can invite additional people to bookings (configurable per event type: 0/1/3/5/10 max). ICS invites and confirmation emails sent to all attendees.
- 2 new ICS tests for additional attendee ATTENDEE lines (225 total tests).
Fixed
- Stale cancelled events — cancelling a booking now removes the cached event from the local database, so it no longer blocks availability.
- Stale deleted events on sync — full sync compares local events against the server and deletes orphans.
- Hidden meeting details before booking — video call links and phone numbers no longer visible on the public slot picker.
- 24h time selects — availability time inputs now use proper select dropdowns.
- XSS in team link form — replaced innerHTML with DOM methods for user-supplied data.
Full changelog: https://github.com/olivierlambert/calrs/blob/main/CHANGELOG.md