Subject: Proposed change to RECUR, RFC2445, 4.3.10

From: Eric Busboom <[email-masked]>
Date: Sun, 4 Jun 2000 10:25:16 -0700 (PDT)

To address some of the comments that Bruce Kahn and I have made about
recurrence rules over the last week, I propose the following text changes
to RFC2445. 

Since I was not privy to the original recurrence rule discussions, I don't
have a complete understanding of the complete purpose for the grammar as
it exists today. This proposal is based entirely on implementation
experiences. 

Though the grammar can represent almost any conceivable recurrence
pattern, it can also represent inconceivable patterns. These insensible
patterns are entirely due to the overlaps in ways to specify a specific
day, and the proposed text would make these ambiguous overlaps illegal. 

For instance, BYYEARDAY specifies a day of the year, a day of the week, a
month, and a week number, so it conflicts with many of the other BYxxx
rule parts. We could define a way to merge these rule parts to eliminate
conflicts, but how useful is a rule like "Every year on the 100th day of
the year, when the 100th day is also a Saturday in March"? Weird stuff
like this can be handled with multiple RRULE or EXRULEs. 

eric. 

This proposed text is an addition to RFC2445, section 4.3.10
--------------------------------------------------------------------------

There are two types of BYxxx rules; date BYxxx rule parts that specify
time periods equal to or longer than a day, and time BYxxx rule parts that
specify the time within a day. The day BYxxx rule parts are : BYMONTH,
BYWEEKNO, BYYEARDAY, BYMONTHDAY and BYDAY. The time BYxxx rule parts are
BYHOUR, BYMINUTE, and BYSECOND. BYSETPOS is neither a date rule part nor
a time rule part. 

Not all date BYxxx rule parts can appear simultaneously in a single
recurrence rule. Date BYxxx rule part restrictions are:

  If the BYYEARDAY appears, no other date rule part may appear. 

  BYWEEKNO and BYMONTH rule parts may not both appear. 

Furthermore, not all date rule parts may be used with all recurrence
intervals. 

  For MONTHLY recurrences (FREQ=MONTHLY) neither BYYEARDAY nor BYWEEKNO
  may appear.

  For WEEKLY recurrences (FREQ=WEEKLY) neither BYMONTHDAY nor BYYEARDAY
  may appear.
 
There are no restrictions regarding use of date rule parts and time rule
parts. There are no restrictions with using any combination of time rule
parts