Fixed
- Calendar – recurring event end time shifted by UTC offset: When expanding recurring events server-side,
end_datetimefor each instance was computed via.toISOString(), which always appends aZ(UTC) suffix. Stored datetimes use no timezone marker (naive local-time strings), so browsers interpreted theZ-suffixed recurring instances as UTC — shifting displayed end times by the user's UTC offset (e.g. +2 h for UTC+2). The fix preserves the format of the original datetime: naive sources produce a timezone-freeYYYY-MM-DDTHH:MMstring;Z-suffixed sources (e.g. CalDAV imports) retain the ISO/UTC path.
Full Changelog: https://github.com/ulsklyc/oikos/blob/main/CHANGELOG.md