diff options
Diffstat (limited to 'internal/api/todoist.go')
| -rw-r--r-- | internal/api/todoist.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/internal/api/todoist.go b/internal/api/todoist.go index d6058d3..2454233 100644 --- a/internal/api/todoist.go +++ b/internal/api/todoist.go @@ -3,6 +3,7 @@ package api import ( "context" "fmt" + "strings" "time" "task-dashboard/internal/config" @@ -239,8 +240,14 @@ func parseDueDate(due *dueInfo) *time.Time { dueDate = config.ToDisplayTZ(dueDate) } } else if due.Date != "" { - // Date-only, parse in display timezone - dueDate, err = config.ParseDateInDisplayTZ(due.Date) + // Todoist may put a local datetime (no tz offset) in the date field + // e.g. "2026-03-22T19:00:00" for recurring tasks with a set time. + // Fall back to date-only "2006-01-02" if no T is present. + if strings.Contains(due.Date, "T") { + dueDate, err = config.ParseDateTimeInDisplayTZ("2006-01-02T15:04:05", due.Date) + } else { + dueDate, err = config.ParseDateInDisplayTZ(due.Date) + } } if err != nil { return nil |
