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

Reply via email to