From a3156a2f399ea03c645ee23b0099d9d722ce7e1e Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 26 Jan 2026 20:55:50 -1000 Subject: Add Google Tasks integration (#43) - New GoogleTasksClient for fetching and managing Google Tasks - Tasks appear in Timeline view with yellow indicator dot - Tap checkbox to complete/uncomplete tasks via Google API - Shares credentials file with Google Calendar (GOOGLE_CREDENTIALS_FILE) - Configure task list via GOOGLE_TASKS_LIST_ID env var (default: @default) - Supports comma-separated list IDs for multiple lists New files: - internal/api/google_tasks.go - Google Tasks API client Co-Authored-By: Claude Opus 4.5 --- internal/api/interfaces.go | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'internal/api/interfaces.go') diff --git a/internal/api/interfaces.go b/internal/api/interfaces.go index 70bba1f..aa351ab 100644 --- a/internal/api/interfaces.go +++ b/internal/api/interfaces.go @@ -42,10 +42,19 @@ type GoogleCalendarAPI interface { GetEventsByDateRange(ctx context.Context, start, end time.Time) ([]models.CalendarEvent, error) } +// GoogleTasksAPI defines the interface for Google Tasks operations +type GoogleTasksAPI interface { + GetTasks(ctx context.Context) ([]models.GoogleTask, error) + GetTasksByDateRange(ctx context.Context, start, end time.Time) ([]models.GoogleTask, error) + CompleteTask(ctx context.Context, listID, taskID string) error + UncompleteTask(ctx context.Context, listID, taskID string) error +} + // Ensure concrete types implement interfaces var ( _ TodoistAPI = (*TodoistClient)(nil) _ TrelloAPI = (*TrelloClient)(nil) _ PlanToEatAPI = (*PlanToEatClient)(nil) _ GoogleCalendarAPI = (*GoogleCalendarClient)(nil) + _ GoogleTasksAPI = (*GoogleTasksClient)(nil) ) -- cgit v1.2.3