nextcloud / calendar

📆 Calendar app for Nextcloud
https://apps.nextcloud.com/apps/calendar
GNU Affero General Public License v3.0
985 stars 239 forks source link

Appointment module does not generate proper time zone definition causing events to display incorrectly #6476

Closed SebastianKrupinski closed 1 week ago

SebastianKrupinski commented 2 weeks ago

Steps to reproduce

  1. Create appointment schedule with 'Europe/Berlin' time zone
  2. Use link to book appointment in 'America/Mexico_City' timezone
  3. Confirm appointment with link
  4. Open event in calendar, export, open file

Expected behavior

A proper time zone definition should be contained in the event.

BEGIN:VTIMEZONE
TZID:America/Mexico_City
BEGIN:STANDARD
TZOFFSETFROM:-0600
TZOFFSETTO:-0600
TZNAME:CST
DTSTART:19700101T000000
END:STANDARD
END:VTIMEZONE

Actual behaviour

The event is generated without a proper timezone which causes calendar app and other clients (emClient Tested) to display the event in the wrong time zone.

BEGIN:VTIMEZONE
TZID:America/Mexico_City
X-MICROSOFT-CDO-TZID:37
END:VTIMEZONE

Calendar app version

Dev - Main

CalDAV-clients used

No response

Browser

No response

Client operating system

No response

Server operating system

No response

Web server

Nginx

Database engine version

MySQL

PHP engine version

PHP 8.2

Nextcloud version

Dev - Main

Updated from an older installed version or fresh install

None

List of activated apps

No response

Nextcloud configuration

No response

Web server error log

No response

Log file

No response

Browser log

No response

Additional info

No response

SebastianKrupinski commented 2 weeks ago

Diagnosed.

The problem is OCA\Calendar\Service\Appointments\TimezoneGenerator::generateVtimezone() function only handles time zone's that have Daylight/Standard time transitions but does not handle timezone that do not have a transition.