Subject: [ietf-calsify] Fw: Re: EXRULE Question

From: Adrian Crum <[email-masked]>
Date: Wed, 19 Nov 2008 20:33:06 -0800 (PST)

Oops, I meant for this to go to the mailing list.

--- On Wed, 11/19/08, Adrian Crum <[email-masked]> wrote:

> From: Adrian Crum <[email-masked]>
> Subject: Re: [ietf-calsify] EXRULE Question
> To: "Bernard Desruisseaux" <[email-masked]>
> Date: Wednesday, November 19, 2008, 8:26 PM
> Thank you for the reply!
> 
> That is very disappointing. Now I'm forced to define a
> finite amount of discreet dates for exclusions instead of
> specifying a few rules.
> 
> I was better off with the original specification.
> 
> Other than "no one is using EXRULE" - what is the
> compelling reason to remove it from the RFC? Is everyone in
> calcify that sure that it will never be used?
> 
> I thought the objective was to simplify and clarify the
> RFC, not cripple it.
> 
> -Adrian
> 
> 
> --- On Wed, 11/19/08, Bernard Desruisseaux
> <[email-masked]> wrote:
> 
> > From: Bernard Desruisseaux
> <[email-masked]>
> > Subject: Re: [ietf-calsify] EXRULE Question
> > To: [email-masked]
> > Cc: [email-masked]
> > Date: Wednesday, November 19, 2008, 5:34 PM
> > Adrian Crum wrote:
> > > While browsing the internet I ran across the
> notes
> > from 2006
> > > regarding deprecating or removing EXRULE and
> EXDATE
> > from RFC 2445.
> > > The comments made at the time indicated that no
> one
> > was using it.
> > 
> > Only EXRULE was deprecated.  EXDATE can still be used.
> > 
> > > 
> > > I'm curious - without those properties, how
> would
> > one express a
> > > Monday through Friday at 8:00 AM event, except on
> US
> > federal
> > > holidays?
> > 
> > Now, you are forced to specify EXDATE one by one. And
> of
> > course the number of EXDATE needs to be finite...
> > 
> > Which is what you'll end up with if you create
> your
> > event with pretty much any calendar client in use
> today...
> > 
> > Cheers,
> > Bernard
> > 
> > > 
> > > I created an example iCalendar based on the
> original
> > RFC: >
> > > BEGIN:VCALENDAR
> > > PRODID:-//Apache Open For Business//Work Effort
> > Calendar//EN
> > > VERSION:2.0
> > > CALSCALE:GREGORIAN
> > > DESCRIPTION:Adrian's Calendar
> > > BEGIN:VEVENT
> > > DTSTAMP:20081112T180905Z
> > > CREATED:20081111T231419Z
> > > LAST-MODIFIED:20081111T232507Z
> > > X-ORG-OFBIZ-WORKEFFORT-ID:10020
> > > SUMMARY:Work Schedule
> > > DESCRIPTION:Work Schedule
> > > ORGANIZER;CN=THE ADMINISTRATOR:
> > > DTSTART:20080101T000043
> > > RRULE:FREQ=DAILY;BYDAY=MO,TU,WE,TH,FR;BYHOUR=8
> > > EXRULE:FREQ=MONTHLY;BYMONTH=1;BYDAY=3MO
> > > EXRULE:FREQ=MONTHLY;BYMONTH=1;BYMONTHDAY=1
> > > EXRULE:FREQ=MONTHLY;BYMONTH=2;BYDAY=3MO
> > > EXRULE:FREQ=MONTHLY;BYMONTH=5;BYDAY=-1MO
> > > EXRULE:FREQ=MONTHLY;BYMONTH=7;BYMONTHDAY=4
> > > EXRULE:FREQ=MONTHLY;BYMONTH=9;BYDAY=1MO
> > > EXRULE:FREQ=MONTHLY;BYMONTH=10;BYDAY=2MO
> > > EXRULE:FREQ=MONTHLY;BYMONTH=11;BYMONTHDAY=11
> > > EXRULE:FREQ=MONTHLY;BYMONTH=11;BYDAY=4TH
> > > EXRULE:FREQ=MONTHLY;BYMONTH=12;BYMONTHDAY=25
> > > END:VEVENT
> > > END:VCALENDAR
> > > 
> > > I can't find any mention of an alternative to
> > using the EXRULE property, so where would one go from
> here?
> > > 
> > > -Adrian
> > > 
> > > 
> > > 
> > > 
> > > 
> > >      
> _______________________________________________
> > > ietf-calsify mailing list
> > > [email-masked]
> > >
> >
> http://lists.osafoundation.org/mailman/listinfo/ietf-calsify
> > >

_______________________________________________
ietf-calsify mailing list
[email-masked]
http://lists.osafoundation.org/mailman/listinfo/ietf-calsify

---

From: "Ben Fortuna" <[email-masked]>
Date: Thu, 20 Nov 2008 16:24:18 +1100

Adrian,

I think you'll find it was removed as it is hard to implement, meaning that
many CUAs either didn't support it or had a broken implementation.

It should be possible to write some code that converts a recurrence rule to
a list of  dates in a specified period (see iCal4j), so from there it
shouldn't be hard to convert an EXRULE to a list of EXDATES, and if you
choose a large enough period of time it should achieve the same effect
(albeit a bit more verbose).

Once the new RFC is approved I might investigate supporting automatic
conversion of deprecated properties, so things like this should ultimately
be transparent.

regards,
ben

-- 
Less Talk More Gossip
http://elbento.com

Dan Quayle  - "This President is going to lead us out of this recovery."

---

From: "Ben Fortuna" <[email-masked]>
Date: Thu, 20 Nov 2008 16:26:33 +1100

Sorry, that should read:

"Once the new RFC is approved I might investigate supporting automatic
conversion of deprecated properties *in iCal4j*, so things like this should
ultimately be transparent."

On Thu, Nov 20, 2008 at 4:24 PM, Ben Fortuna
<[email-masked]>wrote:

> On Thu, Nov 20, 2008 at 3:33 PM, Adrian Crum <[email-masked]>wrote:
>

-- 
Fred Allen  - "An associate producer is the only guy in Hollywood who will
associate with a producer."
_______________________________________________
ietf-calsify mailing list
[email-masked]
http://lists.osafoundation.org/mailman/listinfo/ietf-calsify

---

From: Adrian Crum <[email-masked]>
Date: Wed, 19 Nov 2008 21:36:18 -0800 (PST)

Ben,

Thanks for the reply.

I disagree that it is hard to implement. The original RFC was clear and easy to implement:

1. Create a union of all RDATEs and RRULEs
2. Create a union of all EXDATEs and EXRULEs
3. Create a difference of the two unions

I know this is easy to implement because I've done it. My example works with the original RFC. I challenge anyone to prove that it doesn't work with the original RFC.

Now it doesn't work with the DRAFT RFC. So, in essence, the draft BREAKS the original.

That is the point I am trying to make. Calcify isn't just simplifying or clarifying the spec, it is breaking it.

-Adrian

--- On Wed, 11/19/08, Ben Fortuna <[email-masked]> wrote:

> From: Ben Fortuna <[email-masked]>
> Subject: Re: [ietf-calsify] Fw: Re: EXRULE Question
> Date: Wednesday, November 19, 2008, 9:24 PM
> Adrian,
>

---

From: Reinhold Kainhofer <[email-masked]>
Date: Thu, 20 Nov 2008 12:12:05 +0100

Am Donnerstag, 20. November 2008 schrieb Adrian Crum:
> I disagree that it is hard to implement. 

So do I. While KOrganizer has no GUI for creating EXRULE, our libkcal library 
supports an arbitrary number of RRULEs and EXRULEs. KOrganizer of course also 
correctly shows these events.

> The original RFC was clear and 
> easy to implement:
>

Exactly. Once you have some code creating the recurrence set for one rule, the 
rest is really simple.

Cheers,
Reinhold

> I know this is easy to implement because I've done it. My example works
> with the original RFC. I challenge anyone to prove that it doesn't work
> with the original RFC.
>
> > On Thu, Nov 20, 2008 at 3:33 PM, Adrian Crum
> >
> > <[email-masked]> wrote:
> > > --- On Wed, 11/19/08, Adrian Crum
> >
> > <[email-masked]> wrote:
> > > > To: "Bernard Desruisseaux"
> >
> > > > That is very disappointing. Now I'm forced to
> >
> > define a
> >
> > > > finite amount of discreet dates for exclusions
> >
> > instead of
> >
> > > > specifying a few rules.
> > > >
> > > > Other than "no one is using EXRULE" -
> >
> > what is the
> >
> > > > compelling reason to remove it from the RFC? Is
> >
> > everyone in
> >
> > > > I thought the objective was to simplify and
> >
> > clarify the
> >
> > > > RFC, not cripple it.
> > > >
> > > > -Adrian
> > > >
> > > >
> > > > > > While browsing the internet I ran
> >
> > across the
> >
> > > > notes
> > > >
> > > > > from 2006
> > > > >
> > > > > > regarding deprecating or removing
> >
> > EXRULE and
> >
> > > > EXDATE
> > > >
> > > > > from RFC 2445.
> > > > >
> > > > > > The comments made at the time indicated
> >
> > that no
> >
> > > > one
> > > >
> > > > > was using it.
> > > > >
> > > > > Only EXRULE was deprecated.  EXDATE can
> >
> > still be used.
> >
> > > > > > I'm curious - without those
> >
> > properties, how
> >
> > > > would
> > > >
> > > > > one express a
> > > > >
> > > > > > Monday through Friday at 8:00 AM event,
> >
> > except on
> >
> > > > US
> > > >
> > > > > federal
> > > > >
> > > > > > holidays?
> > > > >
> > > > > Now, you are forced to specify EXDATE one by
> >
> > one. And
> >
> > > > of
> > > >
> > > > > course the number of EXDATE needs to be
> >
> > finite...
> >
> > > > > Which is what you'll end up with if you
> >
> > create
> >
> > > > your
> > > >
> > > > > event with pretty much any calendar client
> >
> > in use
> >
> > > > today...
> > > >
> > > > > Cheers,
> > > > > Bernard
> > > > >
> > > > > > I created an example iCalendar based on
> >
> > the
> >
> > > > original
> > > >
> > > > > RFC: >
> > > > >
> > > > > > BEGIN:VCALENDAR
> > > > > > PRODID:-//Apache Open For
> >
> > Business//Work Effort
> >
> > > > > Calendar//EN
> > > > >
> > > > > > VERSION:2.0
> > > > > > CALSCALE:GREGORIAN
> > > > > > I can't find any mention of an
> >
> > alternative to
> >
> > > > > using the EXRULE property, so where would
> >
> > one go from
> >
> > > > here?
> > > >
> > > > > > -Adrian
> > > >

- -- 
- ------------------------------------------------------------------
Reinhold Kainhofer, Vienna University of Technology, Austria
email: [email-masked], http://reinhold.kainhofer.com/
 * Financial and Actuarial Mathematics, TU Wien, http://www.fam.tuwien.ac.at/
 * K Desktop Environment, http://www.kde.org, KOrganizer maintainer
 * Chorvereinigung "Jung-Wien", http://www.jung-wien.at/
_______________________________________________
ietf-calsify mailing list
[email-masked]
http://lists.osafoundation.org/mailman/listinfo/ietf-calsify

---

From: "Nigel Swinson" <[email-masked]>
Date: Thu, 20 Nov 2008 13:04:30 -0000

> clarifying the spec, it is breaking it.

Dropping EXRULE doesn't mean it can never exist, it just means it doesn't 
exist in the base spec.  This makes the spec overall simpler to implement, 
which will increase the number of implementations, and maximize 
interoperability.  I class the two most complex areas of iCalendar to be 
timezone processing and recurrence, and think dropping EXRULE from the 
"base" spec was an excellent idea as it simplifies one of those complex 
areas, while still providing in the "base" spec a way to achieve the same 
functionality - using EXDATE.

Perhaps there's a need for an extension to iCalendar that defines all the 
stuff that got taken out, so implementations like yours can cite support for 
the extended specification, and new impelementations can start with the base 
spec, and then later on consider implementing the extended specifications?

Nigel

---

From: Cyrus Daboo <[email-masked]>
Date: Thu, 20 Nov 2008 09:07:04 -0600

Hi Adrian,

> I disagree that it is hard to implement. The original RFC was clear and

Actually it was not clear. Without restating all the discussion we had 
before on this, there are some clear ambiguities in the spec that meant 
interpretation of EXRULE was up to the implementer. Just because you 
implemented it in a way that works for your data does not mean it will work 
the same way in some other product/library.

As an example, the original spec states in the EXRULE definition: "The 
"DTSTART" defines the first instance in the recurrence set.". The (correct) 
reading of this is that an EXRULE will always exclude the first instance in 
any recurrence set. This means, if you really don't want the first instance 
cancelled, you have to adjust the event in some way to create a fake 
"first" instance that is OK to cancel, and then hope the rule does not 
match the second etc but in doing that you may break the behavior of RRULEs 
also present.

That is just one example of ambiguity and lack of clarity. Whilst it might 
have been possible to tighten up the definitions like this, the WG looked 
not only looked at these ambiguities but also at how widely the feature was 
supported and used (interoperably)  and then came to consensus on removal.

-- 
Cyrus Daboo