Rainlendar seems to store time zone info with a prefix which is not really compliant with other clients.
The added prefix is confusing for e.g. Nextcloud, Thunderbird and they fall back to local time with some drawbacks
TZID:/freeassociation.sourceforge.net/Europe/Berlin
DTSTART;TZID=/freeassociation.sourceforge.net/Europe/Berlin:
20230913T130000
should simply be:
TZID:Europe/Berlin
DTSTART;TZID=Europe/Berlin:20230913T130000
Also there is a CRLF created between TZID and timestamp
I think the prefix is coming directly from libical an maybe should be “reset” via
icaltimezone_set_tzid_prefix("");