nextcloud / calendar

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

Timezone is not updated during summer saving #5468

Open ibahnasy opened 1 year ago

ibahnasy commented 1 year ago

Steps to reproduce

  1. Set Calendar timezone to Africa/Cairo
  2. Create an event and sync it on another device that has the same timezone.

Expected behavior

Event on NextCloud Calendar and the other device must have the same time.

Actual behaviour

There is 1 hour difference. Egypt/Cairo is GMT +2 but in summer it's +3 but Calendar app is only using GMT +2 all time.

Calendar app version

4.4.5

CalDAV-clients used

DAVx5

Browser

Firefox 102.15 ESR

Client operating system

Debian 12

Server operating system

Ubuntu 22.04

Web server

Nginx

Database engine version

MariaDB

PHP engine version

PHP 8.1

Nextcloud version

27.0.2

Updated from an older installed version or fresh install

Fresh install

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

ChristophWurst commented 1 year ago

Our timezone info might be out of data (again), like with https://github.com/nextcloud/calendar/issues/5234.

Did Cairo summer time change recently?

ChristophWurst commented 1 year ago

The action didn't catch any updates https://github.com/nextcloud/calendar-js/actions/workflows/update_timezones.yml

ibahnasy commented 1 year ago

Yes summer time was not used for many years but then they started using it recently. ------- Original Message ------- On Monday, September 11th, 2023 at 9:27 AM, Christoph Wurst @.***> wrote:

Our timezone info might be out of data (again), like with #5234.

Did Cairo summer time change recently?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ibahnasy commented 1 year ago

Currently we are on EEST (UTC+3) but Cairo is basically UTC+2. ------- Original Message ------- On Monday, September 11th, 2023 at 10:42 AM, Islam Bahnasy @.***> wrote:

Yes summer time was not used for many years but then they started using it recently. ------- Original Message ------- On Monday, September 11th, 2023 at 9:27 AM, Christoph Wurst @.***> wrote:

Our timezone info might be out of data (again), like with #5234.

Did Cairo summer time change recently?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

JohannesGGE commented 12 months ago

Interesting bug. Our timezone data is up to date I think. zones.json :

"Africa/Cairo": {
      "ics": [
        "BEGIN:DAYLIGHT\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0300\r\nTZNAME:EEST\r\nDTSTART:19700424T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1FR\r\nEND:DAYLIGHT",
        "BEGIN:STANDARD\r\nTZOFFSETFROM:+0300\r\nTZOFFSETTO:+0200\r\nTZNAME:EET\r\nDTSTART:19701030T000000\r\nRRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR\r\nEND:STANDARD"
      ],
      "latitude": "+0300300",
      "longitude": "+0311500"
    },

The Nextcloud Calendar App display correct as well:

Berlin UTC+2 Cairo UTC+3
image image

But I can confirm, that Events created with Africa/Cairo displayed as UTC+2 in mobile Apps (tested Etar, Simple Calendar and Google Calendar App).

I checked the saved data and compared it with a Event created with Europe/Kiev, because they have the same timezone pattern as Africa/Cairo and work in external apps.

BEGIN:VCALENDAR
CALSCALE:GREGORIAN
VERSION:2.0
PRODID:-//IDN nextcloud.com//Calendar app 4.5.1//EN
BEGIN:VEVENT
CREATED:20230926T095426Z
DTSTAMP:20230926T095611Z
LAST-MODIFIED:20230926T095611Z
SEQUENCE:3
-SEQUENCE:2
UID:c37e4ec2-ecb8-4b12-bd16-331206d612d0
DTSTART;TZID=Europe/Kiev:20230926T140000
DTEND;TZID=Europe/Kiev:20230926T150000
-DTSTART;TZID=Africa/Cairo:20230926T140000
-DTEND;TZID=Africa/Cairo:20230926T150000
STATUS:CONFIRMED
SUMMARY:14:00-15:00 Kiev
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Kiev
-TZID:Africa/Cairo
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
TZNAME:EET
DTSTART:19701025T040000
-DTSTART:19701030T000000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
-RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1FR
END:STANDARD
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
TZNAME:EEST
DTSTART:19700329T030000
-DTSTART:19700424T000000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
-RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=-1FR
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR

The marked lines (-) are the Cairo lines which differ from the Kiev data.

It seems that only the DTSTART;TZID=Africa/Cairo:20230926T140000 and DTEND;TZID=Africa/Cairo:20230926T150000 affect the display position in the Apps. If I change Africa/Cairo to Europe/Kiev in these two lines the event is displayed correct in the Apps.

I'm confused :laughing:

JohannesGGE commented 12 months ago

I assume this is not a bug on our side. If you create an event in Etar or Google and try to set the timezone to Egypt there is just an Eastern European Standard Time (UTC+2) option. For Ukraine there is the Eastern European Summer Time option. So the Apps likely have old data.