Subject: Re: BYSETPOS sets and INTERVAL

From: [email-masked]
Date: Tue, 12 Jun 2001 12:49:34 -0400

Graham  wrote on 06/11/2001 06:25:28 PM:
>     If INTERVAL isn't used in calculating the set, then how would one
> specify a set that was, for example, 2 months or 2 years long?

I think you should read the RFC text on the use of INTERVAL a bit closer. 
From Section 4.3.10 Recurrence Rule, p42:

   The INTERVAL rule part contains a positive integer representing how
   often the recurrence rule repeats.

To see it in use, read several of the examples.

>                                                                  One
> might want to modify the "last working day of the month" example to be
> "last working day every 2nd month".  INTERVAL would seem the natural
> choice for this. 

Correct.  For the former case, it is not that useful (INTERVAL=1).  For 
the second case it is INTERVAL=2.  You are now using the INTERVAL value to 
properly move the starting point for where the next starting point will be 
(ie: Move the effective seed date/time out by 2 months instead of 1).  Now 
are you are using it the way it should be; it is not intended to be used 
to say "a set is 2 months long" but rather "how far do I move the starting 
point of the 'set'".  This is different from your 1st line at the top 
though...

>         the RRULE becomes dependent on the DTSTART (i.e. which
> months are 'every second month'?), which seems wrong somehow.

Initially the rule IS dependent on DTSTART but after the first set is 
rolled out, a new 'effective' DTSTART is used to generate the next set of 
values.  This new 'effective' DTSTART is the 'currently effective' DTSTART 
value adjusted by the FREQ and INTERVAL amounts.

Bruce
===========================================================================
Bruce Kahn                                INet: [email-masked]
Iris Associates                          Phone: 978.392.5335
Westford, MA, USA 01886                    FAX: and nothing but the FAX...
Standard disclaimers apply, even where prohibited by law...