From 3e777dfaeb5d8b9fb58809014a98a973af2e9ae3 Mon Sep 17 00:00:00 2001 From: m4tze Date: Wed, 15 Jun 2022 14:52:24 +0200 Subject: [PATCH] Update CalendarService.ts (#3060) --- packages/lib/CalendarService.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/lib/CalendarService.ts b/packages/lib/CalendarService.ts index c13b480469..64ddda0410 100644 --- a/packages/lib/CalendarService.ts +++ b/packages/lib/CalendarService.ts @@ -284,8 +284,14 @@ export default abstract class BaseCalendarService implements Calendar { } } if (!currentEvent) return; - // as pointed out in https://datatracker.ietf.org/doc/html/rfc4791#section-9.6.5 - // recurring events are always in utc + // do not mix up caldav and icalendar! For the recurring events here, the timezone + // provided is relevant, not as pointed out in https://datatracker.ietf.org/doc/html/rfc4791#section-9.6.5 + // where recurring events are always in utc (in caldav!). Thus, apply the time zone here. + if (vtimezone) { + const zone = new ICAL.Timezone(vtimezone); + currentEvent.startDate = currentEvent.startDate.convertToZone(zone); + currentEvent.endDate = currentEvent.endDate.convertToZone(zone); + } currentStart = dayjs(currentEvent.startDate.toJSDate()); if (currentStart.isBetween(start, end) === true) {