Skip to content

fix(dashboard): honor fixed-offset event timezones - #8649

Open
pi0n00r wants to merge 3 commits into
nextcloud:mainfrom
pi0n00r:fix/dashboard-fixed-offset-tz
Open

fix(dashboard): honor fixed-offset event timezones#8649
pi0n00r wants to merge 3 commits into
nextcloud:mainfrom
pi0n00r:fix/dashboard-fixed-offset-tz

Conversation

@pi0n00r

@pi0n00r pi0n00r commented Jul 28, 2026

Copy link
Copy Markdown

Summary

  • normalize valid UTC+/-HH:MM and UTC+/-HHMM TZID values before the dashboard widget compares or formats event start times
  • preserve the event wall clock while attaching its explicit fixed offset
  • leave UTC, IANA TZIDs, floating values, all-day values, and source event data unchanged

Problem

Sabre VObject falls back to PHP's default timezone when a non-IANA fixed-offset TZID such as UTC-04:00 cannot be resolved. The Calendar view can still render the wall time correctly, but CalendarWidget receives a DateTimeImmutable carrying the fallback timezone and emits the wrong sinceId and relative subtitle.

For example, DTSTART;TZID="UTC-04:00":20260728T111500 can be emitted by the dashboard as 11:15 UTC instead of 11:15 at -04:00.

Validation

  • added a full widget regression covering fixed-offset normalization
  • asserted the original search result and TZID remain unchanged
  • PHP 8.4 syntax checks pass for the implementation and test

The change is display-only and performs no calendar write.

pi0n00r added 2 commits July 28, 2026 01:46
Signed-off-by: pi0n00r <131018595+pi0n00r@users.noreply.github.com>
Signed-off-by: pi0n00r <131018595+pi0n00r@users.noreply.github.com>
@pi0n00r
pi0n00r force-pushed the fix/dashboard-fixed-offset-tz branch from 4ac7d19 to 4b3751b Compare July 28, 2026 05:46
Signed-off-by: pi0n00r <131018595+pi0n00r@users.noreply.github.com>
@pi0n00r pi0n00r closed this Jul 28, 2026
@pi0n00r
pi0n00r deleted the fix/dashboard-fixed-offset-tz branch July 28, 2026 05:55
@pi0n00r
pi0n00r restored the fix/dashboard-fixed-offset-tz branch July 28, 2026 06:04
@pi0n00r pi0n00r reopened this Jul 28, 2026
@codecov

codecov Bot commented Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant