From cbb0b53de1d06918c142171fd084f14f03798bc1 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Sat, 31 Jan 2026 20:16:12 -1000 Subject: Add feature toggles system with settings UI (#74) - Add feature_toggles table (migration 012) - Add source_config table for future source selection (migration 013) - Create settings page at /settings with: - Feature toggle management (enable/disable/create/delete) - Data source configuration (sync and toggle boards/calendars) - Add store methods for feature toggles and source config - Add GetCalendarList and GetTaskLists to Google API clients - Document feature toggle workflow in DESIGN.md Co-Authored-By: Claude Opus 4.5 --- internal/api/google_calendar.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'internal/api/google_calendar.go') diff --git a/internal/api/google_calendar.go b/internal/api/google_calendar.go index d2d4355..68d423b 100644 --- a/internal/api/google_calendar.go +++ b/internal/api/google_calendar.go @@ -175,3 +175,24 @@ func (c *GoogleCalendarClient) GetEventsByDateRange(ctx context.Context, start, return deduplicateEvents(allEvents), nil } + +// GetCalendarList returns all calendars accessible to the user +func (c *GoogleCalendarClient) GetCalendarList(ctx context.Context) ([]models.CalendarInfo, error) { + list, err := c.srv.CalendarList.List().Do() + if err != nil { + return nil, fmt.Errorf("failed to fetch calendar list: %w", err) + } + + var calendars []models.CalendarInfo + for _, item := range list.Items { + name := item.Summary + if name == "" { + name = item.Id + } + calendars = append(calendars, models.CalendarInfo{ + ID: item.Id, + Name: name, + }) + } + return calendars, nil +} -- cgit v1.2.3