github olivierlambert/calrs v0.9.0
v0.9.0 — Timezone-aware CalDAV events

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

What's new

Timezone-aware CalDAV event handling — calrs now extracts and respects the timezone embedded in your CalDAV events (e.g., DTSTART;TZID=Europe/Paris:...), converting them to your host timezone before computing availability. Previously, all event times were treated as-is, causing miscalculations when your calendar events lived in a different timezone than your server.

Example

An event at 10:00 America/New_York now correctly blocks 16:00 for a Europe/Paris host — instead of incorrectly blocking 10:00.

Details

  • TZID extracted from iCal DTSTART/DTEND during sync and stored in events.timezone
  • All availability computations (slot picker, booking conflicts, group scheduling, troubleshoot timeline) convert event times to the host's timezone
  • RRULE expansion happens in the event's own timezone, then converted — correct across DST transitions
  • Fully backward-compatible: pre-existing events with no timezone are treated as host-local
  • Invalid or unrecognized timezone strings gracefully degrade (no conversion)
  • 12 new unit tests for timezone extraction and conversion

Files changed

File Change
src/utils.rs New extract_vevent_tzid() + convert_event_to_tz() + 12 tests
src/commands/sync.rs Populate timezone column during CLI sync
src/web/mod.rs Web sync + all busy-time queries now timezone-aware
src/commands/event_type.rs CLI slot computation with timezone conversion
src/commands/booking.rs CLI booking conflict check with timezone conversion
CHANGELOG.md v0.9.0 entry
Cargo.toml Version bump to 0.9.0

Full changelog: https://github.com/olivierlambert/calrs/blob/main/CHANGELOG.md

Don't miss a new calrs release

NewReleases is sending notifications on new releases.