Subject: RE: BYDAY and YEARLY

From: [email-masked]
Date: Tue, 8 Jul 2003 22:49:08 -0400

We are in dialog with the original authors - maybe we can try to get some 
sort of ruling on what they think this should be.  And if it's wrong, we 
need to get it fixed.  We need to make some adjustments to the RFC's 
anyway because of findings from interop testing.
___________________
Patricia Egen Consulting
www.egenconsulting.com
423-875-2652

"Dan Hickman" <[email-masked]>
Sent by: [email-masked]
07/08/2003 20:37

        To:     <[email-masked]>, "Jonathan Lennox" <[email-masked]>
        cc:     <[email-masked]>
        Subject:        RE: BYDAY and YEARLY

The one thing that is obvious given the repeated conversations  on this 
topic is that the specification of BYDAY on YEARLY is ambiguous in the 
RFC. I see both sides asvalid  interpretations. I suppose the real 
question is what was the original intention  of the author(s)?

Given the following:
1.  umerous VTIMEZONE examples in the RFC use 
"RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10" to mean  "The last Sunday in 
October", making it a big statement to say that these  are not valid.
2.There are a number of  implementations that already work this way now.
3.Rules like "The 5th Monday of the year but  only in February" are 
probably not that useful.

it appears there is much less impact if we go ahead and consider 
"FREQ=YEARLY;BYMONTH=2;BYDAY=5MO" to mean the "5th Monday in  February". I 
suggest we accept this  interpretation.

Too bad I picked the wrong  interpretation to implement :-|

Regards,
Dan Hickman
Rockin' Software
[email-masked]
http://www.rockinsoftware.com
-----Original Message-----
From:  [email-masked] 
[mailto:[email-masked]]On Behalf Of  [email-masked]
Sent: Tuesday, July 08, 2003 2:07  PM
To: Jonathan Lennox
Cc:  [email-masked]
Subject: Re: BYDAY and  YEARLY

Jonathan wrote on 07/08/2003  11:35:11 AM:
> I agree with this so far, but in your next step  (concluding that this 
means
> "the last Sunday in October") you make an  unwarranted leap.  The 
definition
> of the integer parts of BYDAY  says, as you quoted previously:
> 
> >    Each BYDAY  value can also be preceded by a positive (+n) or 
negative
> >     (-n) integer. If present, this indicates the nth occurrence of the
> >    specific day within the MONTHLY or YEARLY RRULE. 
> 
> Thus, since this is a YEARLY RRULE, the phrase "Last Sunday"  means 
"Last
> Sunday of the Year", not "Last Sunday of the Month."   The presence of a
> BYMONTH rule doesn't affect this; by the spec,  the integer part of 
BYDAY
> depends *only* on the  FREQ.

The assumption about  BYDAY would be accurate without other BYxxx 
modifiers present.  When I  read: 

   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: 

I take the phrase "applied to the current  set of evaluated occurrences" 
to be that BYDAY works on the modified  occurrences generated by applying 
the BYMONTH first.  This BYxxx modifier  scopes the instance set to the 
month of October rather than the entire year.    

If BYMONTH were multivalued  (ie: BYMONTH=10,11,12) then the occurrences 
would be scoped to the months of  October thru December.  If no other 
BYxxx rule parts were there then Id  say that the rule would evaluate to 
"The last Sunday in December" but because  other BYxxx modfiiers were 
involved this is not true. 

On the top of page 45 in 2445 there is an example of  this that is pretty 
similar to Dans rule: 

   Here is an example of evaluating multiple BYxxx rule  parts.

    DTSTART;TZID=US-Eastern:19970105T083000
     RRULE:FREQ=YEARLY;INTERVAL=2;BYMONTH=1;BYDAY=SU;BYHOUR=8,9;
      BYMINUTE=30

  First, the "INTERVAL=2" would be  applied to "FREQ=YEARLY" to arrive
  at "every other year". Then,  "BYMONTH=1" would be applied to arrive
  at "every January, every  other year". Then, "BYDAY=SU" would be
  applied to arrive at "every  Sunday in January, every other year".
... 

This evaluates just like I did for the  BYDAY=-1SU;BYMONTH=10.  It follows 
the same logic I used (or I should say  that my logic followed it w/o 
actually seeing this @ first) by applying the  cited bits of 2445. 

>                                                                But this 
just
> means that the quoted  rule is vacuous, and its recurrence defines the 
empty
> set, except for  its DTSTART.   

I do not  think so given that the evaluation of the rule matches the way 
that the  multiple BYxxx parts are described to modify each other (and are 
not applyed  in parallel) and that the example in 2445 seems to confirm 
this. 

Bruce 
===========================================================================
Bruce  Kahn                                 INet: 
[email-masked]
Messaging & Collaboration                  Phone: 978.399.6496
IBM Software  Group                          FAX: and nothing but the 
FAX...
Standard disclaimers apply,  even where prohibited by law...

---

From: "Dan Hickman" <[email-masked]>
Date: Wed, 16 Jul 2003 21:32:10 -0500

Any luck talking to the original authors.  I think we need to make a ruling
on this and get on down the road.

At this point, I feel it makes the most sense to conclude that
"RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10" means "The last Sunday in
October".

Regards,
Dan Hickman
Rockin' Software

  -----Original Message-----
  From: [email-masked]
[mailto:[email-masked]]On Behalf Of
[email-masked]
  Sent: Tuesday, July 08, 2003 9:49 PM
  To: Dan Hickman
  Cc: [email-masked]; [email-masked]; Jonathan Lennox;
[email-masked]
  Subject: RE: BYDAY and YEARLY

  We are in dialog with the original authors - maybe we can try to get some
sort of ruling on what they think this should be.  And if it's wrong, we
need to get it fixed.  We need to make some adjustments to the RFC's anyway
because of findings from interop testing.
  ___________________
  Patricia Egen Consulting
  www.egenconsulting.com
  423-875-2652

                To:        <[email-masked]>, "Jonathan Lennox"
<[email-masked]>
                cc:        <[email-masked]>
                Subject:        RE: BYDAY and YEARLY

  The one thing that is obvious given the repeated conversations  on this
topic is that the specification of BYDAY on YEARLY is ambiguous in the  RFC.
I see both sides asvalid  interpretations. I suppose the real question is
what was the original intention  of the author(s)?

  Given the following:

  Regards,
  Dan Hickman
  Rockin' Software
  -----Original Message-----
[mailto:[email-masked]]On Behalf Of

means
definition
negative
"Last
BYDAY

  If BYMONTH were multivalued  (ie: BYMONTH=10,11,12) then the occurrences
would be scoped to the months of  October thru December.  If no other BYxxx
rule parts were there then Id  say that the rule would evaluate to "The last
Sunday in December" but because  other BYxxx modfiiers were involved this is
not true.

just
empty

  Bruce

---

From: Doug Royer <[email-masked]>
Date: Thu, 17 Jul 2003 11:53:45 -0600

Dan Hickman wrote:
> Any luck talking to the original authors.  I think we need to make a 
> ruling on this and get on down the road.

I agree that getting Derik's, Frank's, both Steve's, and Ross's input
is *extremely* valuable.

However I object to it being done off of this working group mailing list.
They put in a tremendous effort to produce RFC 2445 and 2446. The discussions
that produced those RFCs were a WG effort and not individual submissions.
In so far as typo's and what led you to put in this text in, and so on, their
input is needed. As far as what it should mean, I think that reading the
archives is more valuable.

> "RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10" means "The last Sunday in 

I also agree.

-- 

  Doug Royer                     |   http://INET-Consulting.com
  -------------------------------|-----------------------------
  [email-masked]                 | Office: (208)612-INET
  http://Royer.com/People/Doug   |    Fax: (866)594-8574
                                 |   Cell: (208)520-4044

                 We Do Standards - You Need Standards

---

From: [email-masked]
Date: Thu, 17 Jul 2003 16:20:20 -0400

Just for the record.  I also agree 
> "RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10" means "The last Sunday in 

_____________________
Note: new email address

[email-masked]

Doug Royer <[email-masked]> 
Sent by: [email-masked]
07/17/2003 01:53 PM
Please respond to
[email-masked]

To
[email-masked]
cc

Subject
Re: BYDAY and YEARLY

However I object to it being done off of this working group mailing list.
They put in a tremendous effort to produce RFC 2445 and 2446. The 
discussions
that produced those RFCs were a WG effort and not individual submissions.
In so far as typo's and what led you to put in this text in, and so on, 
their
input is needed. As far as what it should mean, I think that reading the
archives is more valuable.

I also agree.

--