# Calendar & Time-Blocking Grid Specification ## 1. Display Interface - Multi-day, Weekly, and Monthly time-blocking grids rendered via Flutter custom painter. - Drag-and-drop task placement: Dragging an unscheduled task onto the grid automatically updates its `due_date` timestamp and reserves a dedicated block based on its `estimated_duration`. - Unscheduled tasks panel on the left sidebar allows drag-and-drop onto time slots. - Scheduled task blocks render with color-coded namespace indicators. - View toggle: Day / Week / Month granularity. ## 2. Local CalDAV Bridge Protocol - **Local Endpoint**: Embedded HTTP/CalDAV service running locally on `127.0.0.1:4242`. - **Interoperability**: Allows native OS calendar tools (Outlook, Thunderbird, Android DAVx⁵) to read scheduled task blocks directly as standard calendar events without sending data to external cloud servers. - **Protocol**: RFC 4791 (CalDAV) with RFC 5545 (iCalendar) event serialization. - **Sync Direction**: Read-write — external calendar tools can create time blocks that appear in ChronoGrid, and ChronoGrid time blocks appear in external calendars.