Closed Bug 357252 Opened 13 years ago Closed 13 years ago

Import of ICS from Microsoft Entourage fails (TZID with double-quotes)

Categories

(Calendar :: Provider: ICS/WebDAV, defect)

x86
Windows XP
defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: adrian.revill, Assigned: mvl)

References

Details

Attachments

(1 file)

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 1.5.0.7 (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:chee@zim.com
SEQUENCE:1
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN=Devteam@zim.com;PARTSTAT
 =NEEDS-ACTION:MAILTO:devteam@zim.com
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN="Tony
  Miller";PARTSTAT=NEEDS-ACTION:MAILTO:tony@zim.com
ATTENDEE;ROLE=REQ-PARTICIPANT;RSVP=TRUE;CN="Adrian
  Revill";PARTSTAT=NEEDS-ACTION:MAILTO:adrian@zim.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
Whiteboard: dupeme
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.
Attached patch punch libicalSplinter Review
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+
Whiteboard: dupeme
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 ago13 years ago
Resolution: --- → FIXED
*** Bug 336577 has been marked as a duplicate of this bug. ***
Flags: blocking-calendar0.3.1-
Duplicate of this bug: 364363
Duplicate of this bug: 364363
Duplicate of this bug: 368787
Duplicate of this bug: 356387
Duplicate of this bug: 369838
Summary: Import of ICS from Microsoft Entourage fails → Import of ICS from Microsoft Entourage fails (TZID with double-quotes)
Duplicate of this bug: 369903
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.
Duplicate of this bug: 384189
You need to log in before you can comment on or make changes to this bug.