[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Changes to RECUR
On Tuesday, March 27 2001, "Eric Busboom" wrote to "ietf-calendar@xxxxxxx" saying:
> Not all date BYxxx rule parts can appear simultaneously in a
> single recurrence rule. Date BYxxx rule part restrictions are:
What's the motivation for this? Is the idea to forbid self-contradictory
rules, ones that never result in any recurrence at all?
It's not clear to me that that's really necessary. A self-contradictory
rule isn't *ambiguous* -- it's clear that it means "no recurrence at all,
except for the DTSTART." Mind you, a user interface probably wants to warn
the user if they've constructed a useless recurrence, but there's no
interoperability problem with them.
Also note that self-contradictory rules are still possible with your
restrictions, and I don't think they can in general be eliminated. Consider
the obvious
RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=31
or the somewhat less obvious
DTSTART;TZID=America/New_York:20010329T0230
DURATION:T20M
RRULE:FREQ=YEARLY;BYMONTH=4;BYDAY=1SU
In the interest of keeping the spec simple, I'd be inclined to say
"self-contradictory rules are allowed, and they mean no recurrence. If the
total number of possible recurrences of an event is less than its COUNT
parameter, the COUNT parameter is ignored."
> [ The following is a change to section 4.3.10]
>
> Change:
>
> The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
> 44) separated list of values which corresponds to the nth occurrence
> within the set of events specified by the rule. Valid values are 1 to
> 366 or -366 to -1. It MUST only be used in conjunction with another
> BYxxx rule part
>
> To:
>
> The BYSETPOS rule part specifies a COMMA character (US-ASCII decimal
> 44) separated list of values which corresponds to the nth occurrence
> within the set of events specified by the rule. Valid values are 1 to
> 31622401 or -31622401 to -1. It MUST only be used in conjunction
> with another BYxxx rule part
>
> [31622401 is the number of seconds in a year plus a leap second, 366 *
> 24 * 60 * 60 + 1]
Is this really sufficient? Are you sure you don't need the number of
seconds in a 28-year leap year cycle? (Or worse, a 2800-year Gregorian leap
year cycle, but I'll ignore that for now.)
(This is the reason I dropped bysetpos from CPL...)
--
Jonathan Lennox
lennox@xxxxxxxxxxxxxxx