1up-lab / contao-ical-export

A contao module for downloading ical files generated from events. The output will follow RFC 2445 as best as possible.
MIT License
6 stars 2 forks source link

Start-/Endtime wrong (+1 hour) since time change in march #12

Closed Kahmoon closed 2 years ago

Kahmoon commented 2 years ago

Bug Report

Actually there seem to be a time difference since time change in march. iCal sets wrong time in calendartools. Our students are reporting events with +1 hour.

On iPhone and Mac calendar...everything is fine. Problems seems to be on Windows + Outlook

Edit: Also Android has correct times.

Example: Event from 19:15 to 22:15 SCR-20220412-fnj

Calendar: Windows + Outlook SCR-20220412-fn4

ical file BEGIN:VCALENDAR PRODID:-//eluceo/ical//2.0/EN VERSION:2.0 CALSCALE:GREGORIAN BEGIN:VEVENT UID:28e314e2a1271edd30c21924333fba77 DTSTAMP:20220412T091732Z SUMMARY:Federwild Teil 1 (M-2203) DESCRIPTION: URL:xxxx/intern/termin/federwild- teil-1-m-2203-19-04-2022-9259.html DTSTART;TZID=Europe/Berlin:20220419T191500 DTEND;TZID=Europe/Berlin:20220419T221500 LOCATION:Onlineseminar END:VEVENT END:VCALENDAR

Data in iCal fine looks fine for me!? But why the times are set wrong since time change?

Kahmoon commented 2 years ago

On Wikipedia iCal i see an additional letter after time ('Z' zulu suffix) https://de.wikipedia.org/wiki/ICalendar

TZID=Europe/Berlin:20200910T220000Z

Maybe this is the problem? Edit: with "Z" its +2h

Or its the missing timezone

  BEGIN:VTIMEZONE
    TZID:Europe/Berlin
    BEGIN:STANDARD
      DTSTART:16011028T030000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
      TZOFFSETFROM:+0200
      TZOFFSETTO:+0100
    END:STANDARD
    BEGIN:DAYLIGHT
      DTSTART:16010325T020000
      RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
      TZOFFSETFROM:+0100
      TZOFFSETTO:+0200
    END:DAYLIGHT
  END:VTIMEZONE
Kahmoon commented 2 years ago

Maybe i found a solution: https://stackoverflow.com/questions/27711246/recurring-calender-invitation-was-showing-one-hour-off-after-dst-starts

https://stackoverflow.com/questions/14196867/outlook-shows-wrong-time-from-ical

Kahmoon commented 2 years ago

We had this problem in https://github.com/1up-lab/contao-ical-export/issues/9 already (sorry for double post)

bytehead commented 2 years ago

Does it fix the issue on Windows (and not affect the others), if you add Z to the time string? I don't have Windows & Outlook here to test, sorry.

Kahmoon commented 2 years ago

Nope. I mentioned this in „edit“ above.

With Z it’s +2 😁. I will try it on Mac later.

bytehead commented 2 years ago

Ok. I don't know how I can help with Outlook related issues if it works on all other systems.

From stackoverflow.com/questions/27711246/recurring-calender-invitation-was-showing-one-hour-off-after-dst-starts:

If you want an event to be in a time zone, you should specify the local time instead of a UTC time (so no Z at the end) and a TZID property to specify the time zone. I suggest you export some of your existing events as ical entries to see what those look like.

Therefore, the .ics file looks correct.

How does the file look like, if you create one in Outlook and export it?

bytehead commented 2 years ago

What happens if you add the TZID entry to the .ics file: TZID:Europe/Berlin?

Kahmoon commented 2 years ago

Mac: When i add Z to the timestamp on Mac i see GMT in Event. SCR-20220413-bqb

Without Z SCR-20220413-bs6

Even if i add the TZIP separately


TZID:Europe/Berlin
DTSTART;TZID=Europe/Berlin:20220419T191500Z
DTEND;TZID=Europe/Berlin:20220419T221500Z

Windows + Outlook Adding Z makes it + 2. Event with seeting timezone separately

TZID:Europe/Berlin
DTSTART;TZID=Europe/Berlin:20220419T191500Z
DTEND;TZID=Europe/Berlin:20220419T221500Z
Bildschirmfoto 2022-04-13 um 08 37 29

Event created from Windows + Outlook

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20220413T063701Z
DESCRIPTION: \n
DTEND;TZID="W. Europe Standard Time":20220413T221500
DTSTAMP:20220413T063701Z
DTSTART;TZID="W. Europe Standard Time":20220413T191500
LAST-MODIFIED:20220413T063701Z
LOCATION:Onlineseminar
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:Testevent
TRANSP:OPAQUE
UID:040000008200E00074C5B7101A82E0080000000020C328A5114FD801000000000000000
    0100000004DB6A10CC675514EA76817275F61A2D5
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
X-MICROSOFT-DISALLOW-COUNTER:FALSE
X-MS-OLK-AUTOFILLLOCATION:FALSE
X-MS-OLK-CONFTYPE:0
END:VEVENT
END:VCALENDAR

Importing the .ics file which i created in windows on mac, every setting is fine. Microsoft has names time zone "W. Europe Standard Time". I think this could be the difference.

I tried this in the original ical file and it is fine.

BEGIN:VCALENDAR
PRODID:-//eluceo/ical//2.0/EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:867290d39ace54401ec2313cf8e07cfe
DTSTAMP:20220413T063140Z
SUMMARY:Federwild Timezone W. Europe Standard Time (M-2203)
DESCRIPTION:
URL:https://www.jagdbildungszentrum.de/intern/termin/federwild-teil-1-m-220
 3-19-04-2022-9259.html
DTSTART;TZID=W. Europe Standard Time:20220419T191500
DTEND;TZID=W. Europe Standard Time:20220419T221500
LOCATION:Onlineseminar
END:VEVENT
END:VCALENDAR
Bildschirmfoto 2022-04-13 um 08 43 39
bytehead commented 2 years ago

The W. Europe Standard Time timezone looks totally weird to me. It is a Microsoft creation actually: https://github.com/rlanvin/php-rrule/issues/69

Kahmoon commented 2 years ago

Sadly a combination does not work

TZID:W. Europe Standard Time
DTSTART;TZID=Europe/Berlin:20220419T191500
DTEND;TZID=Europe/Berlin:20220419T221500

or

DTSTART;TZID=Europe/Berlin:20220419T191500
DTEND;TZID=Europe/Berlin:20220419T221500
DTSTART;TZID=W. Europe Standard Time:20220419T191500
DTEND;TZID=W. Europe Standard Time:20220419T221500
bytehead commented 2 years ago

Problem here, this this timezone is not in the official list of PHP's timezones: https://www.php.net/manual/en/timezones.php

And just generating .ics files with these Windows timezones mentioned above seems totally wrong to me. Do you even need timezones? Or would it help to have an option to disable the timezones? If we omit the TZ data explicitly (on configured option), it may work?

Kahmoon commented 2 years ago

I don´t need timezones but don´t we get the problem from https://github.com/1up-lab/contao-ical-export/issues/9 without them?

bytehead commented 2 years ago

Hmm, it possibly works then on Windows but not anymore on Apple devices 🙈

Kahmoon commented 2 years ago

Funfact....using "W. Europe Standard Time" works on Mac, Windows, Android :-D

bytehead commented 2 years ago

But what happens with the other windows timezones?

Kahmoon commented 2 years ago

.ics activating timezone created in Outlook

BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:W. Europe Standard Time
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20220413T071553Z
DTEND;TZID="W. Europe Standard Time":20220419T221500
DTSTAMP:20220413T063140Z
DTSTART;TZID="W. Europe Standard Time":20220419T191500
LAST-MODIFIED:20220413T071553Z
LOCATION:Onlineseminar
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:Federwild Timezone test (M-2203)
TRANSP:OPAQUE
UID:867290d39ace54401ec2313cf8e07cfe
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
Bildschirmfoto 2022-04-13 um 09 17 36
Kahmoon commented 2 years ago

Maybe use UTC in genereal? This is "koordinierte Weltzeit" but maybe we run into #9


BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:-0000
TZOFFSETTO:-0000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20220413T071810Z
DTEND;TZID=UTC:20220419T221500
DTSTAMP:20220413T063140Z
DTSTART;TZID=UTC:20220419T191500
LAST-MODIFIED:20220413T071810Z
LOCATION:Onlineseminar
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:Federwild Timezone test (M-2203)
TRANSP:OPAQUE
UID:867290d39ace54401ec2313cf8e07cfe
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR
Bildschirmfoto 2022-04-13 um 09 20 20
bytehead commented 2 years ago

Would be a possibility. What happens if you import the UTC one on Apple and android systems?

Kahmoon commented 2 years ago

UTC is fine on Windows, Apple but not on Android. Argh!!!! Why is this such a mess!


BEGIN:VCALENDAR
PRODID:-//Microsoft Corporation//Outlook 16.0 MIMEDIR//EN
VERSION:2.0
METHOD:PUBLISH
X-MS-OLK-FORCEINSPECTOROPEN:TRUE
BEGIN:VTIMEZONE
TZID:UTC
BEGIN:STANDARD
DTSTART:16010101T000000
TZOFFSETFROM:-0000
TZOFFSETTO:-0000
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
CLASS:PUBLIC
CREATED:20220413T074356Z
DTEND;TZID=UTC:20220418T221500
DTSTAMP:20220413T063140Z
DTSTART;TZID=UTC:20220418T191500
LAST-MODIFIED:20220413T074356Z
LOCATION:Onlineseminar
PRIORITY:5
SEQUENCE:0
SUMMARY;LANGUAGE=de:UTC test
TRANSP:OPAQUE
UID:867290d39ace54401ec2313cf8e07cfe
X-MICROSOFT-CDO-BUSYSTATUS:BUSY
X-MICROSOFT-CDO-IMPORTANCE:1
END:VEVENT
END:VCALENDAR

Apple SCR-20220413-dl7

Android WhatsApp Image 2022-04-13 at 09 56 57

Kahmoon commented 2 years ago

I probably found a solution which is working on all devices. Waiting for android confirmation (confirmed).

It seems to be a solution to set timezone block separately and removing it from DTSTART/DTEND itself.

Snipped VTIMEZONE

BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE

Complete ICS

BEGIN:VCALENDAR
PRODID:-//eluceo/ical//2.0/EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART:16011028T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:16010325T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:388da7b9f948e885edf4dff51a7b4891
DTSTAMP:20220413T062556Z
SUMMARY:Federwild Teil 1 (M-2203)
DESCRIPTION:
URL:xxx.de/intern/termin/federwild- teil-1-m-2203-19-04-2022-9259.html
DTSTART:20220419T191500
DTEND:20220419T221500
LOCATION:Onlineseminar
END:VEVENT
END:VCALENDAR

After importing this ical in outlook, timezone is activated and time/timezone is set correctly

Bildschirmfoto 2022-04-13 um 10 30 04
Kahmoon commented 2 years ago

OK, Android also confirmed successful :-D

I did a small edit in my last post.

Kahmoon commented 2 years ago

Any updates here? Sorry for bumping. We had to disable this function meanwhile for all of our students.

bytehead commented 2 years ago

Not yet as of current workload 😞

Kahmoon commented 2 years ago

Let me know via PM if a sponsoring would help ;-)

bytehead commented 2 years ago

I can't buy more time with any money atm 😬

bytehead commented 2 years ago

But i try to have a look next week or at the Contao Camp 😎

Kahmoon commented 2 years ago

Thanks! :)

bytehead commented 2 years ago

Can you test the branch fix/timezone?

Kahmoon commented 2 years ago

what do i have to set in my composer json?

bytehead commented 2 years ago

dev-fix/timezone :)

Kahmoon commented 2 years ago

iCal Files are super long now (800+ lines). Is that intentional? The example above just had the timezone nodes seperate. Actually there a many lines for LMT, CET and CEST.

Also there is a linebreak in the url!?, but URL is working.

BEGIN:VCALENDAR
PRODID:-//eluceo/ical//2.0/EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:8fe0742edd0ecedb72fe9effa5be6b0d
DTSTAMP:20220505T144953Z
SUMMARY:Jagdrecht Teil 1 (M-2201)
DESCRIPTION:
URL:https://dev.xxx.de/preview.php/intern/termin/jagdrecht-
 teil-1-m-2201-19-05-2022-9169.html
DTSTART:20220519T191500
DTEND:20220519T221500
LOCATION:Onlineseminar
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:STANDARD
DTSTART:00000101T120000
TZNAME:LMT
TZOFFSETTO:+0053
TZOFFSETFROM:+0053
END:STANDARD
BEGIN:STANDARD
DTSTART:18930401T000632
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0053
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19160501T000000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19161001T000000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19170416T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19170917T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19180415T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19180916T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19400401T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19421102T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19430329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19431004T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19440403T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19441002T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19450402T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19450524T030000
TZNAME:CEMT
TZOFFSETTO:+0300
TZOFFSETFROM:+0200
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19450924T020000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0300
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19451118T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19460414T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19461007T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19470406T040000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19470511T040000
TZNAME:CEMT
TZOFFSETTO:+0300
TZOFFSETFROM:+0200
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19470629T020000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0300
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19471005T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19480418T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19481003T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19490410T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19491002T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19800406T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19800928T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19810329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19810927T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19820328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19820926T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19830327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19830925T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19840325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19840930T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19850331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19850929T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19860330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19860928T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19870927T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19880327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19880925T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19890326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19890924T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19900325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19900930T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19910331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19910929T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19920329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19920927T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19930328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19930926T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19940327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19940925T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19950326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19950924T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19960331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19961027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19970330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19971026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19980329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19981025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19990328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19991031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20001029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20010325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20011028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20020331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20021027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20030330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20031026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20040328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20041031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20050327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20051030T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20060326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20061029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20071028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20080330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20081026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20090329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20091025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20100328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20101031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20110327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20111030T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20120325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20121028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20130331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20131027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20140330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20141026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20150329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20151025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20160327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20161030T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20170326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20171029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20180325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20181028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20190331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20191027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20200329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20201025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20210328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20211031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20220327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20221030T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20230326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20231029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20240331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20241027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20250330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20251026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20260329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20261025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20270328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20271031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20280326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20281029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20290325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20291028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20300331T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20301027T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20310330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20311026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20320328T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20321031T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20330327T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20331030T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20340326T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20341029T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20350325T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20351028T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20360330T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20361026T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20370329T030000
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0100
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20371025T020000
TZNAME:CET
TZOFFSETTO:+0100
TZOFFSETFROM:+0200
END:STANDARD
END:VTIMEZONE
END:VCALENDAR
bytehead commented 2 years ago

Hmm weird. I've added the timezone information to the calendar file rather than to the time entries (according to https://ical.poerschke.nrw/docs/component-calendar#adding-time-zones)

bytehead commented 2 years ago

Can you run a composer update and try again? :)

Kahmoon commented 2 years ago

Actually the file is looking good so far. Less lines...26 left :-D. But still CEST included? I don´t mind as long as its working for us.

Actually eveything is correct in: Mac + Calendar Windows + Outlook Android + Calendar iPhone + Outlook

👍

BEGIN:VCALENDAR
PRODID:-//eluceo/ical//2.0/EN
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:82fc37a93d6f2710fbd145134d229a7b
DTSTAMP:20220506T063407Z
SUMMARY:Jagdrecht Teil 1 (M-2201)
DESCRIPTION:
URL:https://dev.xxx.de/preview.php/intern/termin/jagdrecht-
 teil-1-m-2201-19-05-2022-9169.html
DTSTART:20220519T191500
DTEND:20220519T221500
LOCATION:Onlineseminar
END:VEVENT
BEGIN:VTIMEZONE
TZID:Europe/Berlin
BEGIN:DAYLIGHT
DTSTART:20220519T191500
TZNAME:CEST
TZOFFSETTO:+0200
TZOFFSETFROM:+0200
END:DAYLIGHT
END:VTIMEZONE
END:VCALENDAR

Dunno where the linebreak in url comes from.

Kahmoon commented 2 years ago

By the way...which field is set into "DESCRIPTION:" value? Event teaser is ignored but would be the correct element (imho)?

bytehead commented 2 years ago

It should be the event teaser for description and event title for the title.

It is even tested: https://github.com/1up-lab/contao-ical-export/blob/dbd2bb4190bda9f9e0d1ae63685cefea9c34eb3b/tests/Calendar/CalendarCreatorTest.php#L45-L54

What does your title look like?

bytehead commented 2 years ago

CEST is just the TZNAME of the TZID:Europe/Berlin i think :)

Kahmoon commented 2 years ago

I made a separat issue to don´t mix things up here https://github.com/1up-lab/contao-ical-export/issues/16

Timezone is fine for me. Thank you very much!

bytehead commented 2 years ago

Released 2.1.2.