1. 25
    1. 17

      A gem in the comments from jwz:

      “in the world we live in, any imperfect solution that doesn’t include the words “The Olson Database” is koo-koo-bananas.”

      He’s not wrong, and people have had to learn this over and over again.

    2. 4

      A couple notes from the comments explain some of the reasoning for denormalizing time changes into the files…

      Jon R says: 3 years ago at 4:13 am

      It seems to me that the iCalendar working group had two choices: include the time zone definition in the event description, which carries the risk that the software reading the event may have better knowledge of the time zone than the software creating it, or don’t include the time zone definition in the event description, which carries the risk that the software creating the event may have better knowledge of the time zone than the software reading it.

      Given that the person creating the event is in a better position to judge whether the event is being created at the correct time than the person receiving it, I would suggest that the decision they made is less “batshit insane” and more “practical and sensible”. Also, if the zone is described in the event and there are multiple attendees then at least they will still all turn up at the same time, rather than potentially having different ideas about when it is.

      It seems possible as well that the tzdata file was less ubiquitous in 1997 when they were creating the iCalendar file format. Unfortunately, the IETF Calendaring and Scheduling Working Group’s mail archives appear to be lost in the mists of time.

      At least Apple does use the tzdata zone names, e.g. “Europe/London”, when referring to the time zones - unlike Microsoft who tend to say things like “GMT Standard Time”, by which, in the British summer, they mean not GMT but GMT+1. Now that’s batshit insane.

      … and that you can just use a time zone reference, with the caveat that of course some file consumers are going to handle that differently:

      farktronix says: 3 years ago at 6:22 pm

      They added a way to specify timezones by reference back in 2016 with RFC 7809. You’ll love this quote from that RFC:

      “Observation and experiments have shown that, in the vast majority of cases, CalDAV clients have typically ignored time zone definitions in data received from servers, and instead make use of their own “built-in” definitions for the corresponding time zone identifier.”

      [elided post]

      farktronix says: 3 years ago at 6:26 pm

      Yep, but that comment from the RFC means you can probably leave out the TIMEZONE section in your standalone iCalendar files as long as you’re using Olson names because most clients don’t use the TIMEZONE section as the source of timezone information anyway.

      jwz says: 3 years ago at 6:33 pm

      Yeah, I had been doing that for years, and it seemed to be working fine. The only reason I even noticed this was that the ICS validator I had been using went offline, and the new one I switched to complains about it.