Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ICS: Timezone über get_option('timezone_string') ermitteln #301

Open
thenickless opened this issue Oct 6, 2021 · 2 comments
Open

ICS: Timezone über get_option('timezone_string') ermitteln #301

thenickless opened this issue Oct 6, 2021 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@thenickless
Copy link
Member

thenickless commented Oct 6, 2021

Mit Version 2.6.23 wurde ein Quickfix eingespielt, das folgende Fehler behebt:

https://icalendar.org/validator.html
Errors
Invalid TZID value or missing VTIMEZONE component (Europe/Amsterdam) near line # 4
Reference: 3.2.19. Time Zone Identifier
Invalid TZID value or missing VTIMEZONE component (Europe/Amsterdam) near line # 4
Reference: 3.2.19. Time Zone Identifier

Aber nun ist die Timezone mit Europe/Berlin hardcoded und das ist nicht gut.

TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin reicht nicht aus.
D.h. "TZURL:http://tzurl.org/zoneinfo-outlook/" . get_option('timezone_string') würde nicht ausreichen.
Es müsste explizit mindestens STANDARD oder DAYLIGHT angegeben werden.

Errors
At least one STANDARD or DAYLIGHT property must be defined here near line # 5
Reference: RFC 5545 3.6.5. Time Zone Component

CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Europe/Berlin
TZURL:http://tzurl.org/zoneinfo-outlook/Europe/Berlin
X-LIC-LOCATION:Europe/Berlin
BEGIN:DAYLIGHT
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
TZNAME:CEST
DTSTART:19700329T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
TZNAME:CET
DTSTART:19701025T030000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE

Fazit:
Entweder get_option('gmt_offset') für TZOFFSETFROM und ..TO für DAYLIGHT und STANDARD nutzen (= umständlich) oder auf Zulu Time Zone (entspricht UTC) setzen (= ideal)

@thenickless thenickless added the enhancement New feature or request label Oct 6, 2021
@thenickless thenickless self-assigned this Oct 6, 2021
thenickless added a commit that referenced this issue Oct 6, 2021
thenickless added a commit that referenced this issue Oct 6, 2021
thenickless added a commit that referenced this issue Oct 7, 2021
thenickless added a commit that referenced this issue Oct 7, 2021
@thenickless
Copy link
Member Author

thenickless commented Oct 7, 2021

Lösung 89a2c9a ist fehlerfrei, zeigt die richtigen Zeiten an (und valid nach https://icalendar.org/validator.html) ABER kann User verwirren, da auf Klick im Kalender Zeiten als GMT angezeigt werden.

Generiertes .ICS :
userid-test-raum-202110071300.txt
(muss von .txt zu .ics umgenannt werden, weil Github kein .ics zulässt)

Anzeige iCal:
Bildschirmfoto 2021-10-07 um 12 09 23

@thenickless
Copy link
Member Author

thenickless commented Oct 7, 2021

Infos zum Thema:

  1. Warum nicht einfach UTC?
    => siehe Screenshot oben

  2. Wir brauchen unbedingt VTIMEZONE
    Gründe:

  1. Vorschlag: VObject library nutzen
    https://packagist.org/packages/sabre/vobject
    Denn es ist einfacher, als wie zB https://wordpress.org/plugins/ics-calendar/ es macht: das mühsam nachzubauen.
    Anleitung / Snippets dafür: https://stackoverflow.com/questions/6682304/generating-an-icalender-vtimezone-component-from-phps-timezone-value

  2. Wir können es in diversen Plugins nutzen
    => in https://github.com/RRZE-Webteam/rrze-wp packen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant