summaryrefslogtreecommitdiff
path: root/internal/models/timeline.go
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-01-26 20:55:50 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-01-26 20:55:50 -1000
commita3156a2f399ea03c645ee23b0099d9d722ce7e1e (patch)
tree03c813717e77ae27d8aee9e676f1b75a6a01648c /internal/models/timeline.go
parent70e6e51b6781a3986c51e3496b81c88665286872 (diff)
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 <noreply@anthropic.com>
Diffstat (limited to 'internal/models/timeline.go')
-rw-r--r--internal/models/timeline.go14
1 files changed, 9 insertions, 5 deletions
diff --git a/internal/models/timeline.go b/internal/models/timeline.go
index 3475696..0968d41 100644
--- a/internal/models/timeline.go
+++ b/internal/models/timeline.go
@@ -9,10 +9,11 @@ import (
type TimelineItemType string
const (
- TimelineItemTypeTask TimelineItemType = "task"
- TimelineItemTypeMeal TimelineItemType = "meal"
- TimelineItemTypeCard TimelineItemType = "card"
- TimelineItemTypeEvent TimelineItemType = "event"
+ TimelineItemTypeTask TimelineItemType = "task"
+ TimelineItemTypeMeal TimelineItemType = "meal"
+ TimelineItemTypeCard TimelineItemType = "card"
+ TimelineItemTypeEvent TimelineItemType = "event"
+ TimelineItemTypeGTask TimelineItemType = "gtask" // Google Tasks
)
type DaySection string
@@ -36,7 +37,10 @@ type TimelineItem struct {
// UI enhancement fields
IsCompleted bool `json:"is_completed"`
DaySection DaySection `json:"day_section"`
- Source string `json:"source"` // "todoist", "trello", "plantoeat", "calendar"
+ Source string `json:"source"` // "todoist", "trello", "plantoeat", "calendar", "gtasks"
+
+ // Source-specific metadata
+ ListID string `json:"list_id,omitempty"` // For Google Tasks
}
// ComputeDaySection sets the DaySection based on the item's time