Please find below a revision for productivity/baikal.
As explained in [0], when creating a calendar via the web interface,
Baikal sets cal:calendar-timezone to a timezone string instead of a
VTIMEZONE. This causes an issue when querying events with expanded
recurrences, see [1].
The patch below --proposed in [0], but not yet merged-- fixes this
issue. Tested on my server running Baikal.
Ok?
[0] https://github.com/sabre-io/Baikal/issues/1241
[1] https://github.com/sabre-io/Baikal/issues/1325
Index: Makefile
===================================================================
RCS file: /cvs/ports/productivity/baikal/Makefile,v
diff -u -p -r1.42 Makefile
--- Makefile 25 Dec 2025 08:35:45 -0000 1.42
+++ Makefile 1 Feb 2026 12:24:09 -0000
@@ -2,6 +2,7 @@ COMMENT= lightweight CalDAV and CardDAV
VERSION= 0.11.1
DISTNAME= baikal-${VERSION}
+REVISION= 0
SITES= https://github.com/sabre-io/Baikal/releases/download/${VERSION}/
DISTFILES= ${DISTNAME}.zip
CATEGORIES= productivity www
Index: patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
===================================================================
RCS file: patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
diff -N patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-vendor_sabre_dav_lib_CalDAV_Plugin_php 1 Feb 2026 12:24:09 -0000
@@ -0,0 +1,22 @@
+https://github.com/sabre-io/Baikal/issues/1241
+https://github.com/sabre-io/Baikal/issues/1325
+
+Index: vendor/sabre/dav/lib/CalDAV/Plugin.php
+--- vendor/sabre/dav/lib/CalDAV/Plugin.php.orig
++++ vendor/sabre/dav/lib/CalDAV/Plugin.php
+@@ -508,14 +508,7 @@ class Plugin extends DAV\ServerPlugin
+ $tzProp = '{'.self::NS_CALDAV.'}calendar-timezone';
+ $tzResult = $this->server->getProperties($path, [$tzProp]);
+ if (isset($tzResult[$tzProp])) {
+- // This property contains a VCALENDAR with a single
+- // VTIMEZONE.
+- $vtimezoneObj = VObject\Reader::read($tzResult[$tzProp]);
+- $calendarTimeZone = $vtimezoneObj->VTIMEZONE->getTimeZone();
+-
+- // Destroy circular references so PHP will garbage collect the
+- // object.
+- $vtimezoneObj->destroy();
++ $calendarTimeZone = new DateTimeZone($tzResult[$tzProp]);
+ } else {
+ // Defaulting to UTC.
+ $calendarTimeZone = new DateTimeZone('UTC');
No comments:
Post a Comment