ICS parsing and RRULE expansion

t-721.1·WorkTask·
·
·
Parent:t-721·Created1 month ago·Updated1 week ago·pipeline runs →

Description

Edit

Add iCalendar to Omni/Bild/Deps/Haskell.nix. Create Omni/Cal/Parse.hs that:

1. Scans ~/Calendars/ directories for .ics files 2. Parses VCALENDAR/VEVENT/VTODO using the iCalendar library 3. Expands RRULEs into concrete event instances within a given date range 4. Handles EXDATE (recurrence exceptions) and RECURRENCE-ID (modified instances) 5. Normalizes all times to a target timezone (America/New_York) 6. Deduplicates events by UID across calendars 7. Returns a sorted list of events with: uid, summary, start, end, calendar name, color, location, description, all-day flag

Cache parsed results in an IORef/MVar with mtime-based invalidation.

Timeline (5)

🔄[human]Open → InProgress1 month ago
🔄[human]InProgress → Review1 month ago
💬[human]1 week ago

Ava verified: shipped as commit 5f903638 'ICS parsing and RRULE expansion'. Calendar app live. Moving to Verified.

🔄[human]Review → Verified1 week ago