Closed Bug 129660 (cal-standards) Opened 22 years ago Closed 16 years ago

iCalendar standard tracking bug

Categories

(Calendar :: Internal Components, defect)

defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: gary.frederick, Unassigned)

References

()

Details

(Keywords: meta)

Attachments

(1 file)

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."


4.8.8.1 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
Attached patch fix VERSION and PRODID — — Splinter Review
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.


Blocks: 141280
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.
Depends on: 157169
No longer depends on: 157169
Depends on: 156495
I am making this a tracking bug for iCalendar standard issues.  Mark issues with
standards as dependencies of this bug.
Alias: cal-standards
Keywords: meta
Summary: the calendar should output RFC 2445 iCalendar data → iCalendar standard tracking bug
Blocks: 166339
Depends on: 221808
No longer blocks: 141280, 166339
Depends on: 141280, 166339
Depends on: 254356
Depends on: 255121
Blocks: 273039
No longer blocks: 273039
Depends on: 273039
Depends on: 283881
QA Contact: colint → libical
iCalendar format allows dates before 1970. 319270 should be added to the dependancy list
Depends on: 330573
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
Assignee: gary.frederick → nobody
All dependencies have been fixed -> Meta bug is FIXED.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: