github olivierlambert/calrs v0.22.0
v0.22.0 — Reschedule flow

latest releases: v1.9.0, v1.8.0, v1.7.0...
one month ago

What's new

Reschedule flow — guests and hosts can reschedule bookings without cancelling and rebooking.

Guest reschedule

  • Click "Reschedule" in the confirmation email → pick a new slot → booking goes to pending for host approval
  • Host receives an approval email with Approve/Decline buttons

Host reschedule

  • Click "Reschedule" on any booking in the dashboard → pick a new slot → booking stays confirmed
  • CalDAV event updated in place (same UID), guest notified with updated .ics

Details

  • Amber banner on slot picker shows current booking info ("Rescheduling: 30-Minute Intro Call")
  • Reschedule confirmation page with strikethrough old time → green new time
  • All tokens (reschedule, cancel, confirm) regenerated after each reschedule — old email links stop working
  • Self-conflict handled: the booking being rescheduled doesn't block its own new slot
  • reminder_sent_at cleared so reminders fire for the updated time
  • Confirmation and pending emails now include a "Reschedule" button alongside "Cancel"
  • Dark mode support for the reschedule banner

Other improvements

  • Dashboard bookings: Reschedule + Cancel buttons, cleaner expand/collapse for cancel form
  • Reschedule confirmation page: branded header, 12h time format support
  • Guest reschedule shows "Reschedule requested" instead of generic "Pending confirmation"
  • All 22 screenshots refreshed with seeded data
  • seed_screenshots.sh for reproducible screenshot generation
  • Updated README and booking-flow docs

Quality

  • 243 tests (18 new): token lookup, status filtering, token regeneration, self-conflict exclusion, host stays confirmed, reminder reset
  • cargo clippy clean, cargo fmt clean

Full Changelog: https://github.com/olivierlambert/calrs/blob/main/CHANGELOG.md#0220---2026-03-14

Don't miss a new calrs release

NewReleases is sending notifications on new releases.