[Ietf-calsify] FREQ=MONTHLY when DTSTART = 29/30/31st.
Mike Samuel
mikesamuel at gmail.com
Wed Feb 21 19:16:23 PST 2007
Ack, sorry, rules with a BYSETPOS with non-negative indices don't have
this property either but I think that's a small enough set of rules
that the principal is one that shouldn't be violated needlessly.
mike
On 21/02/07, Mike Samuel <mikesamuel at gmail.com> wrote:
> My objection to your interpretation of
> RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30 is that it does not have the
> property that
>
> for every RRULE r (with no count) and a DTSTART d1, if I pick a date
> d2 from the series (r, d1)
> then the series (r, d2) should be a tail of (r, d1)
>
>
> On 19/02/07, Nigel Swinson <Nigel.Swinson at rockliffe.com> wrote:
> >
> >
> > Please could you confirm to me that the following does not include the 15th
> > of February:
> >
> > DTSTART;VALUE=DATE:20070130
> > RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30
> >
> > Nor does this include any date in February:
> >
> >
> >
> > DTSTART;VALUE=DATE:20070130
> > RRULE:FREQ=MONTHLY;BYMONTHDAY=1,-1
> >
> >
> > Whereas these would:
> >
> >
> > DTSTART;VALUE=DATE:20070115
> > RRULE:FREQ=MONTHLY;BYMONTHDAY=15,30
> > EXDATE:20070115
> >
> >
> > DTSTART;VALUE=DATE:20070130
> > RRULE:FREQ=DAILY;BYMONTHDAY=15,30
> >
> >
> > I don't find the above particularly obvious, so in case it helps, my
> > thinking is that you use DTSTART and FREQ to create the initial recurrence
> > set, and then refine/expand it using the BYXXX rules. As there is no 30th
> > of Feb, the initial recurrence set contains no dates in February, and hence
> > we have no date in february to expand or refine to create additional dates
> > in february in the context of a monthly rule.
> >
> > If I am right, and you also consider the above not particularly obvious,
> > perhaps it worth refining this paragraph in RFC2445 to spell out the
> > algorithm. I suggest we move the "invalid date" paragraph down one, and
> > then:
> >
> > http://tools.ietf.org/html/draft-ietf-calsify-rfc2445bis-05#section-3.3.10
> >
> > Information, not contained in the rule, necessary to determine the
> > various recurrence instance start time and dates are derived from
> > the Start Time ("DTSTART") component attribute. For example,
> > "FREQ=YEARLY;BYMONTH=1" doesn't specify a specific day within the
> > month or a time. This information would be the same as what is
> > specified for "DTSTART".
> >
> > Recurrence rules may generate recurrence instances with invalid
> > date (e.g., February 30) or nonexistent local time (e.g., 1:30 AM
> > on a day where the local time is moved forward by an hour at 1:00
> > AM). Such recurrence instances MUST be ignored and MUST NOT be
> > counted as part of the recurrence set.
> > + Should the combination of DTSTART and FREQ itself create
> > + recurrences that lie on non existant dates, then you end up skipping
> > + entire intervals. For example "DTSTART;VALUE=DATE:20070130" with
> > + "FREQ=MONTHLY" will never contain any instances in February regardless
> > + of what BYXXX rule parts are specified.
> >
> > If multiple BYxxx rule parts are specified, then after evaluating
> > the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
> > are applied to the current set of evaluated occurrences in the
> > following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
> > BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
> > evaluated.
> >
> > Cheers
> >
> >
> > Nigel
> > _______________________________________________
> > Ietf-calsify mailing list
> > Ietf-calsify at osafoundation.org
> > http://lists.osafoundation.org/mailman/listinfo/ietf-calsify
> >
> >
>
More information about the Ietf-calsify
mailing list