Max Nikulin <maniku...@gmail.com> writes: > The TZ environment variable is not set and that is the issue. Otherwise > the .ics file would have > > X-WR-TIMEZONE:Europe/London > > The problem is that there is no API to get time zone identifier in elisp > because such function is missed in libc. It is possible to get only > BST/GMT (depending on current season). > > Identifiers like Europe/London allows to get history of time > transitions. (format-time-string "%z %Z") and (current-time-zone) may > only report time offset and ambiguous abbreviation at particular moment. > Return values of these functions may vary for different timestamps in > the calendar file. If list of time zones were available then it would be > possible to iterate over it and to match particular time zone by > abbreviation and offset for most of zones (perhaps some ambiguity would > remain). > > Actually `current-time-zone' is an example of fragile API for *current* > time. Offset is valid for particular moment. There is no guarantee that > offset would not change between obtaining it and applying to a > timestamp. So the only safe way of using this function is with the > SPECIFIED-TIME argument. In such case *current* in the function name is > confusing. > > So in my previous message I was considering feasibility of some > platform-dependent code to determine time zone when neither TIMEZONE Org > file property nor TZ environment are specified.
Thanks for the explanation. I do not think that it is a problem Org has to solve. Rather Emacs. Or even libc. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>