User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:126.96.36.199) Gecko/20081029 Firefox/188.8.131.52 Build Identifier: Lightning 0.9 While testing Lightning's CalDAV support with Google Calendar I noticed that a bunch of meetings weren't displayed in Lightning. Turns out the meetings that were not displayed had UID values that looks like: UID:20070215-0030@firstname.lastname@example.org Most likely the '/' characters are causing issues here. I can confirm that Google Calendar is actually returning those calendar components to Lightning and is properly percent encoding the '/' in their URL. <D:response> <D:href>/calendar/dav/abcdef012345%40group.calendar.google.com/events/20070215-0030%40example%2F%2Fabcdef012345%40group.calendar.google.com.ics</D:href> <D:propstat> <D:status>HTTP/1.1 200 OK</D:status> <D:prop> <D:getetag>1-63327058174</D:getetag> </D:prop> </D:propstat> </D:response> Reproducible: Always Steps to Reproduce: 1. Create event with a UID value that contains a '/' in a CalDAV calendar collection. Actual Results: Mozilla Lightning doesn't display the event. Expected Results: Event should be displayed. I've lost track of how these events were imported into the calendar. I'm pretty sure the events originally had UID such as: UID:20070215-0030@example and that Google must have changed them automatically to UID:20070215-0030@email@example.com It's possible that I actually moved those events from one calendar to another at some point and that would be when Google changes their UID... Don't know for sure. Anyway, only Google would know and care about this...
I'm not quite sure this is the reason, but I believe it may have to do with the way we separate the id from the rest of the url. Needs investigation...
Bernard, is it possible that you could invite me to the event with the strange id (kewisch.moz at gmail.com) ? Otherwise, it would be nice if you could provide some more debug output so I can find out exactly where its failing...
Philipp, I just added you as a "guest" to one of those events.
Thanks Bernard. Some debugging shows that while the event is shown during the getetag query, it is not found on the server when doing the calendar-multiget. The same happens on a simple get. I've extended http://code.google.com/p/google-caldav-issues/issues/detail?id=31 to track the issue on the server side.
I think this needs to be tracked for 1.0, at least relnoted.
This is a Google Server issue against which we can't do a thing. I'm fine with relnoting though.
I see also the phenomenon that VEVENT's with an UID containing a slash "/" are not displayed. However, I do not use any Google calendar, but the ical data is experted from phpScheduleIt and imported in DavICal server. Events with an UID like this are not displayed: UID:503ca6c43ab87&https://intranet.ist.local/scheduleit2/Web After removing the slashes, the events are displayed. UID:503ca6c43ab87&https:==intranet.ist.local=scheduleit2=Web UID:503ca6c43ab87&intranet.ist.local/scheduleit2/Web I've also checked with RFC 2445 and 5545, and the forward slash ASCII(x2f) is part of the TSAFE-CHAR set. Therefore, I'm pretty sure this is not google server issue, but an issue of the mozilla calendar client. For testing, I've been using Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:184.108.40.206) Gecko/20120724 Iceowl/1.0b1 Icedove/3.0.11
Another observation is, that this bug is only triggered when importing the calender using the format "CalDav"; when using the option "iCalendar (ICS)", there is no problem and all events are properly shown. Perhaps this can help fixing the problem.
(In reply to Alois Schloegl from comment #7) .. of course, this does also not work, > UID:503ca6c43ab87&intranet.ist.local/scheduleit2/Web It should read like this: UID:503ca6c43ab87&intranet.ist.local
Its been a while since I checked this, but I think it had to do with how Google responds to certain calendar queries that contain the UID. Could you enable calendar.debug.log and calendar.debug.log.verbose in the advanced config editor, do an update (preferably on a new calendar that only has this one event, otherwise you will get a lot of logging) and post the log messages here? The ones that contain the UID should be enough.
Created attachment 666534 [details] messages in error console when loading event with and without slashes in UID from davical server The attachment contains the log messages from the console. It contains two parts, the first part are the messages when a new calendar in davical was imported containing a single event with an UID containing slashes, namely: UID:50697be34fee2&https://intranet.ist.local/scheduleit3/Web The second part contains the log, when the same event but with UID:50697be34fee2&intranet.ist.local was important into davical, and then the calendar was reloaded. Only after the second step was performed, the event became visible in the client. Of course, the problem might be also on the server side (we are using davical 0.9.9.3 from debian squeeze). Either the mozilla client or davical does not handle forward slashes in a correct way.
Alois, it looks to me like the event is not even being returned in the XML, this means it might be a server issue. I think this deserves a new bug, possibly with davical.
Created attachment 724908 [details] [diff] [review] Always Encode Paths - v1 Not requesting review for this yet, since there is more testing to do. Specifically: * On a Davmail Server, where the item path contains the title, does adding an event with an "ü" in its name still work (compare bug 575782). * Does upgrading with a cached calendar that saves the location path decoded work, i.e is it still possible to: change events client side, change events serverside then update, ... * Any other regressions with different caldav servers?
Alois, can you give this patch a test run?
I'm unable to comment on this patch. Sorry.