Feature 3: Read-only Google Calendar panel

- CalendarEvent model with summary, start, end, location
- New scope calendar.readonly in SCOPES
- fetch_upcoming_events() in ApiClient (15 events, next 7 days)
- Focus::Calendar variant, Tab cycle includes Calendar
- Body layout: left column split into Tasks (flex) + Calendar (8)
- render_calendar_panel with day headers and scroll
- refresh_calendar() called on initial sync and Ctrl+R
- Up/Down scroll Calendar panel when focused
This commit is contained in:
Ruben Rosario
2026-06-21 17:18:22 +01:00
parent fa03a30a31
commit 7946b0f102
6 changed files with 202 additions and 7 deletions
+8
View File
@@ -46,3 +46,11 @@ pub struct SyncQueueItem {
}
pub const MAX_SYNC_RETRIES: i32 = 3;
#[derive(Debug, Clone)]
pub struct CalendarEvent {
pub summary: String,
pub start: Option<chrono::NaiveDateTime>,
pub end: Option<chrono::NaiveDateTime>,
pub location: Option<String>,
}