From d2da365bd9e343dc61dc71b923ea190468a6912d Mon Sep 17 00:00:00 2001 From: jonas0b1011001 <43352574+jonas0b1011001@users.noreply.github.com> Date: Fri, 22 Dec 2023 18:01:51 +0100 Subject: [PATCH] Fix recurrence timezone handling #398 --- Helpers.gs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Helpers.gs b/Helpers.gs index 5f1e812..e3d255f 100644 --- a/Helpers.gs +++ b/Helpers.gs @@ -844,6 +844,13 @@ function parseRecurrenceRule(vevent, utcOffset){ var recurrence = []; for (var recRule of recurrenceRules){ + if (recRule.getParameter('tzid')){ + let tz = recRule.getParameter('tzid').toString(); + if (tz in tzidreplace){ + tz = tzidreplace[tz]; + } + recRule.setParameter('tzid', tz); + } var recIcal = recRule.toICALString(); var adjustedTime; @@ -858,14 +865,35 @@ function parseRecurrenceRule(vevent, utcOffset){ } for (var exRule of exRules){ + if (exRule.getParameter('tzid')){ + let tz = exRule.getParameter('tzid').toString(); + if (tz in tzidreplace){ + tz = tzidreplace[tz]; + } + exRule.setParameter('tzid', tz); + } recurrence.push(exRule.toICALString()); } for (var exDate of exDates){ + if (exDate.getParameter('tzid')){ + let tz = exDate.getParameter('tzid').toString(); + if (tz in tzidreplace){ + tz = tzidreplace[tz]; + } + exDate.setParameter('tzid', tz); + } recurrence.push(exDate.toICALString()); } for (var rDate of rDates){ + if (rDate.getParameter('tzid')){ + let tz = rDate.getParameter('tzid').toString(); + if (tz in tzidreplace){ + tz = tzidreplace[tz]; + } + rDate.setParameter('tzid', tz); + } recurrence.push(rDate.toICALString()); }