From 7e7d652efee87cefd9120cd84d806d79296ac651 Mon Sep 17 00:00:00 2001 From: Alexander Huck Date: Tue, 10 Sep 2024 20:57:23 +0200 Subject: [PATCH] fix: retrieve events in UTC --- internal/adapter/google/client.go | 1 + internal/adapter/outlook_http/client.go | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/internal/adapter/google/client.go b/internal/adapter/google/client.go index 80f5097..25c0034 100644 --- a/internal/adapter/google/client.go +++ b/internal/adapter/google/client.go @@ -58,6 +58,7 @@ func (g *GCalClient) ListEvents(ctx context.Context, starttime time.Time, endtim TimeMin(starttime.Format(time.RFC3339)). TimeMax(endtime.Format(time.RFC3339)). MaxResults(defaultPageMaxResults). + TimeZone("UTC"). OrderBy("startTime"). Context(ctx) diff --git a/internal/adapter/outlook_http/client.go b/internal/adapter/outlook_http/client.go index 1c8f56b..37aae49 100644 --- a/internal/adapter/outlook_http/client.go +++ b/internal/adapter/outlook_http/client.go @@ -36,7 +36,16 @@ func (o *OutlookClient) ListEvents(ctx context.Context, start time.Time, end tim // Otherwise this always ends in a 500 return code, see also https://stackoverflow.com/a/62770941 query := "?startDateTime=" + startDate + "&endDateTime=" + endDate + "&$expand=extensions($filter=Id%20eq%20'inovex.calendarsync.meta')" - resp, err := o.Client.Get(baseUrl + "/me/calendars/" + o.CalendarID + "/CalendarView" + query) + req, err := http.NewRequestWithContext(ctx, http.MethodGet, baseUrl+"/me/calendars/"+o.CalendarID+"/CalendarView"+query, nil) + if err != nil { + return nil, err + } + + // Get all the events in UTC timezone + // when we retrieve them from other adapters they will also be in UTC + req.Header.Add("Prefer", "outlook.timezone=\"UTC\"") + + resp, err := o.Client.Do(req) if err != nil { return nil, err }