From 8e56555adb7d3c77f2da62288cbf484f7102a74a Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 13 Jul 2026 18:03:12 +0000 Subject: fix(widget): forward End for all-day multi-day calendar events A genuine all-day Google Calendar event spanning multiple days (e.g. a 3-day conference) never got its EndTime forwarded to the widget client, since the conversion only set End when !IsAllDay. The client has no way to detect a multi-day span without both Start and End. --- internal/handlers/widget.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'internal/handlers/widget.go') diff --git a/internal/handlers/widget.go b/internal/handlers/widget.go index 0092b6b..f0fd101 100644 --- a/internal/handlers/widget.go +++ b/internal/handlers/widget.go @@ -70,7 +70,15 @@ func TimelineItemToWidgetItem(item models.TimelineItem) models.WidgetItem { if !item.Time.IsZero() && (!item.IsAllDay || item.Type == models.TimelineItemTypeEvent) { t := item.Time wi.Start = &t - if !item.IsAllDay { + if item.Type == models.TimelineItemTypeEvent { + // Events always forward End when known, even when IsAllDay -- + // a multi-day all-day event (e.g. a 3-day conference) needs its + // End date reaching the client so it can detect the span and + // render "starts"/"ends"/spans-through labels per rendered day. + if item.EndTime != nil { + wi.End = item.EndTime + } + } else if !item.IsAllDay { if item.EndTime != nil { wi.End = item.EndTime } else { -- cgit v1.2.3