On Wed, 2015-11-25 at 15:23 +0100, Milan Crha wrote: > On Wed, 2015-11-25 at 12:21 +0300, James Bottomley wrote: > > On Tue, 2015-11-24 at 18:32 +0100, Milan Crha wrote: > > > On Tue, 2015-11-24 at 15:17 +0300, James Bottomley wrote: > > > > DTSTART;TZID=America/Los_Angeles:20131024T180000 > > > > DTEND;TZID="America/Los_Angeles;VALUE=":20131024T200000 > > > > > > > > However, this doesn't excuse evolution's handling of it, > > Hi, > it depends. > > > because every other caldav implementation silently ignores this > > How do they ignore it? Do they convert the time into a floating time? > That means that they interpret the end time of the event as being in > the timezone the view is set for.
No, they just drop the bogus VALUE=, so what owncloud supplies is DTEND;TZID=America/Los_Angeles;VALUE=:20151125T190000 simply becomes DTEND;TZID=America/Los_Angeles:20151125T190000 And the appointment ends up being displayed correctly. > Thus, if you've set your view's > (UI's) timezone to America/Los_Angeles, then you won't notice any > difference, the event will be on 2013-10-24 between 18:00 and 20:00. If > you've view's timezone set to UTC, then the time with the floating > interpretation is from 2013-10-25 02:00 to 2013-10-24 20:00. That means > the start of the event is _after_ its end. It's precisely what the > evolution's day view told you: > > (evolution:19872): calendar-gui-CRITICAL **: e_day_view_add_event: > > assertion 'start <= end' failed > > > whereas we mangle it into a potentially unreadable timezone and then > > drop the event. The mangling seems to occur as part of the back end > > caching and is likely the fault of libical. > > Right, I'd like to know which part added the quotes. I tried to read > the same event without the quotes and save it locally and the result > was: > DTEND;VALUE=X;TZID=America/Los_Angeles:20151125T190000 > that means the libical didn't add there the quotes. At least the 1.0.1 > version doesn't do that. You started with the thing the wrong way around you need to feed it DTEND;TZID=America/Los_Angeles;VALUE=:20151125T190000 Which then gets cached as DTEND;TZID="America/Los_Angeles;VALUE=":20151125T190000 So for some reason the bogus value gets appended to the timezone. > I also tried what the evolution's UI will do when I change my view's > timezone to America/Los_Angeles and set the DTENT to the quoted TZID, > as you found it, and the result is that the evolution showed the event > properly. As soon as I changed to another timezone, like a > Europe/Prague, the event disappeared from the view and the evolution > console contained runtime warnings, though different from that yours: > >> e_day_view_add_event: assertion 'start < add_event_data->day_view > >> ->upper' failed > > Interestingly, a change of the view's timeozne to Pacific/Midway didn't > make the event longer. I would expect it to happen. > > > I'll see if I can work out how to fix it. > > Thanks, I appreciate it. Just consider that trying to workaround other > software's fault, especially such specific, is likely not to happen. > It's because the only correct fix is the fix of the broken software > (aka your opened ticket against ownCloud). I'm thinking currently the fix might be in libical. Both the issues: converting VALUE= to VALUE=x and adding it to the TZID look to be bugs in that library. James _______________________________________________ evolution-hackers mailing list evolution-hackers@gnome.org To change your list options or unsubscribe, visit ... https://mail.gnome.org/mailman/listinfo/evolution-hackers