The calendar is not generating a valid RFC 2445 iCalendar event. The following is some picky input on the data file. It's only appropriate if the file is to be of valid rfc 2445 format. The file is ok as is, but with a few tweaks, it can be even 'better'. Reading the iCalendar standard and looking at the file, I noted the following: 4.6 Calendar Components ... An iCalendar object MUST include the "PRODID" and "VERSION" calendar properties. In addition, it MUST include at least one calendar component. 4.7.4 Version ... Description: A value of "2.0" corresponds to this memo. "It currently has VERSION:1.1." "It currently does not include a PRODID." 126.96.36.199 Non-standard Properties Property Name: Any property name with a "X-" prefix "It currently uses X. Changing that to X- makes the property valid." Not a big deal, but... Gary I entered Valentine's day and got. BEGIN:VCALENDAR VERSION :1.1 BEGIN:VEVENT UID :959420326 SUMMARY :Valentine's Day DESCRIPTION :The day we show our loved ones how much we care. LOCATION :In our hearts CLASS :PRIVATE X ;MEMBER=AllDay :TRUE X ;MEMBER=AlarmUnits :minutes X ;MEMBER=AlarmLength :15 X ;MEMBER=RecurUnits :years X ;MEMBER=RecurInterval :1 RRULE :FREQ=YEARLY;INTERVAL=1;BYMONTH=2 DTSTART :20020214T000000 DTEND :20020214T235900 END:VEVENT END:VCALENDAR
Confirming. I've noticed that the CRLFs need to be cleaned up as well. Some lines leave out the CR, some insert a line break early... A careful comparison with the spec in general is probably in order.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Summary: the calendar should output RFC 2445 iCalendar data → the calendar should output RFC 2445 iCalendar data
Looking at the CalendarDataFile.ics: The file uses multiple iCalendar objects. The spec is ok with that ... "Typically, this information will consist of a single iCalendar object. However, multiple iCalendar objects can be sequentially grouped together." I hand edited a test with several events and the calendar only displayed the first event. I then added another event. All the events were in the file, but only the first event in both iCalendar objects were displayed
I'm moving reassigning this bug to me. The changes have nothing to to with libical and are in the OEOne C++ source. I'm also documenting more iCalendar standards 'issues'.
Assignee: gray → gary.frederick
Created attachment 77465 [details] [diff] [review] fix VERSION and PRODID Update oeICalEventImpl.cpp to output VERSION:2.0 and a PRODID to CalendarDataFile.ics BEGIN:VCALENDAR VERSION :2.0 PRODID :PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.0//EN BEGIN:VEVENT ...
Approved & checked in patch for fixing VERSION & PRODID. Way to go Gary.
The calendar file has lines like this X;MEMBER=AlarmUnits:minutes There are several problems with that property. X is not a valid iCalendar property. and MEMBER is already a defined param (memberparam). Using it to select which "X" property is not a good idea. Fixing the code to use a correct x-prop will break things. X;MEMBER=AlarmUnits:minutes could become X-AlarmUnits:minutes But... that's still an x-prop and x-props are not to be part of a production system. I think we should find anoter way to hold the info. ===== I would like to add the PRIORITY and the SEQUENCE property. They could be useful in the future. ===== The property 'class' is a boolean. The standard specifies public, private, confidential, iana-name and x-name.
The problems in the description of this bug are fixed. New problems mentioned in the comments should probably better be added as new bugs blocking this 'tracker' bug. New bugs in comments are very hard to find for Bugzilla users like me...
> The file uses multiple iCalendar objects. The spec is ok with that > ... "Typically, this information > will consist of a single iCalendar object. However, multiple > iCalendar objects can be sequentially grouped together." Adding multiple events to an iCalendar object might give problems when Calendar starts using the iTip protocols. From the iTip RFC: multiple "VEVENT" components in a single iCalendar object are only permitted when for components with the same "UID" property. That is, a series of recurring events may have instance-specific information. In this case, multiple "VEVENT" components are needed to express the entire series.
I am making this a tracking bug for iCalendar standard issues. Mark issues with standards as dependencies of this bug.
Summary: the calendar should output RFC 2445 iCalendar data → iCalendar standard tracking bug
iCalendar format allows dates before 1970. 319270 should be added to the dependancy list
Component: libical → Internal Components
The bugspam monkeys have been set free and are feeding on Calendar :: Internal Components. Be afraid for your sanity!
QA Contact: libical → base
All dependencies have been fixed -> Meta bug is FIXED.
Status: NEW → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.