package models import "time" // WidgetItem is a single item in the widget API response. // Source values: "doot", "trello", "plantoeat", "calendar", "gtasks" // Type values: "task", "event" type WidgetItem struct { ID string `json:"id"` Title string `json:"title"` Source string `json:"source"` Type string `json:"type"` Start *time.Time `json:"start,omitempty"` // nil = no specific time (floating task) End *time.Time `json:"end,omitempty"` IsAllDay bool `json:"is_all_day"` IsOverdue bool `json:"is_overdue"` DueDate *time.Time `json:"due_date,omitempty"` // doot tasks only -- see TimelineItemToWidgetItem URL string `json:"url,omitempty"` Completable bool `json:"completable"` // true = doot task (checkbox shown) RecurringEventID string `json:"recurring_event_id,omitempty"` } // WidgetResponse is the full /api/widget response body. type WidgetResponse struct { Now time.Time `json:"now"` Items []WidgetItem `json:"items"` }