Closed Bug 357252 Opened 13 years ago Closed 13 years ago
Import of ICS from Microsoft Entourage fails (TZID with double-quotes)
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1) Build Identifier: version 188.8.131.52 (20060909) I recieved a meeting request form a mac user and the meetin.ics attachment doesnt automatically import into lightning, when i try to manually import the meeting.ics it throws an exception. Component returned failure code 0x80004005(NS_ERROR_FALURE)[calIcalComponnet.recurrenceId] ... da de da de da ... calItemBase.js line 514 data:no This is the meeting.ics BEGIN:VCALENDAR VERSION:2.0 PRODID:-//Microsoft Corporation//Entourage Mac 11.0 MIMEDIR//EN METHOD:REQUEST BEGIN:VTIMEZONE TZID:Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London X-ENTOURAGE-TZID:8 X-ENTOURAGE-CFTIMEZONE:Europe/London BEGIN:STANDARD TZNAME:Standard Time RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=10 TZOFFSETFROM:+0100 TZOFFSETTO:+0000 DTSTART:20001029T020000 END:STANDARD BEGIN:DAYLIGHT TZNAME:Daylight Savings Time RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=-1SU;BYMONTH=3 TZOFFSETFROM:+0000 TZOFFSETTO:+0100 DTSTART:20010325T010000 END:DAYLIGHT END:VTIMEZONE BEGIN:VEVENT UID:76008AA6-FEBA-11D9-B494-00112479F930 X-ENTOURAGE_UUID:89901129-5E9C-11DB-B7AC-00112479F930 RECURRENCE-ID;TZID="Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London":20061019T110000 DTSTAMP:20061018T113300Z DTSTART;TZID="Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London":20061019T150000 DTEND;TZID="Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London":20061019T160000 LAST-MODIFIED:20061018T113300Z SUMMARY:DevTeam Meeting DESCRIPTION:Change tomorrow's Dev Team meeting start time to 3pm as there is a special Board meeting in the morning. ORGANIZER:MAILTO:firstname.lastname@example.org SEQUENCE:1 ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN=Devteam@zim.com;PARTSTAT =NEEDS-ACTION:MAILTO:email@example.com ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN="Tony Miller";PARTSTAT=NEEDS-ACTION:MAILTO:firstname.lastname@example.org ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN="Adrian Revill";PARTSTAT=NEEDS-ACTION:MAILTO:email@example.com X-MICROSOFT-CDO-BUSYSTATUS:BUSY X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY X-MICROSOFT-CDO-ALLDAYEVENT:FALSE X-MICROSOFT-CDO-INSTTYPE:3 BEGIN:VALARM ACTION:DISPLAY DESCRIPTION:REMINDER TRIGGER;RELATED=START:-PT00H15M00S END:VALARM END:VEVENT END:VCALENDAR Reproducible: Always
This looks to be another case of the source application wrapping the TZID in double-quotes when using it in the VEVENT. I get this error when importing: WARNING: Can't find specified VTIMEZONE in VCALENDAR!: file /Users/mwillis/moz/trunk/mozilla/calendar/base/src/calICSService.cpp, line 719 I can't seem to find the bug to dupe this against at the moment.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: meeting.ics not working when sent from Mac → Import of ICS from Microsoft Entourage fails
The first problem seems to be the quotes. The second is that in parsing the TZID= line, libical cuts everything starting at the comma. It claims it are multiple values.
I fixed the quotes-problem by working around libical oddities from our own ics service. For the comma's, it seems that libical is correct by assuming they split different values. But only some properties can actually have multiple values. For all other properties, it should be safe to assume that the comma should have been escaped. I made libical do that. With that change, import is a little more error-tolerant.
Assignee: nobody → mvl
Status: NEW → ASSIGNED
Attachment #243244 - Flags: first-review?(daniel.boelzle)
I just found out that the patch doesn't totally fix the bug: after a restart, the item is not shown anymore. I imported it into an ics calendar. The file still has the item, it's just not displayed anymore. I don't know yet why. Maybe it has to do with foreign timezones. But still, the patch should at least fix part of the problem.
Comment on attachment 243244 [details] [diff] [review] punch libical > + *end = (char*)(size_t)line+length; IMO no casts at all are necessary here. Casting variable line to size_t then back to char * makes no sense (cast-operator takes precedence over +). The rest looks good, r1=dbo.
Attachment #243244 - Flags: first-review?(daniel.boelzle) → first-review+
patch checked in
Status: ASSIGNED → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
*** Bug 356799 has been marked as a duplicate of this bug. ***
patch was not entirely checked in. the calICSService.cpp part is missing.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
tried again to check in.
Status: REOPENED → RESOLVED
Closed: 13 years ago → 13 years ago
Resolution: --- → FIXED
*** Bug 336577 has been marked as a duplicate of this bug. ***
Summary: Import of ICS from Microsoft Entourage fails → Import of ICS from Microsoft Entourage fails (TZID with double-quotes)
I am still seeing this bug in Lightning 0.3.1, released Feb 19 2007. Incoming event from outlook has following DTSTART: DTSTART;TZID="Greenwich Mean Time - Dublin, Edinburgh, Lisbon, London":2007 0508T173000 Importing this fails with failure code 0x80004005 (NS_ERROR_FAILURE)[calIIcalComponent.startTime] Changing the TZID for DTSTART and DTEND to "/mozilla.org/20070129_1/Europe/London" allows event to be imported.
Phil, this patch was not checked in to SUNBIRD_0_3_BRANCH (where Lightning 0.3.1 comes from). The bug is fixed in the next major release, i.e. Lightning 0.5.
You need to log in before you can comment on or make changes to this bug.