Subject: Re: Recurrence UNTIL/RDATE/EXDATE properties with DATE values

From: [email-masked]
Date: Thu, 16 Nov 2000 11:18:27 -0500

John replied:
>> John asked:
>> >Does anybody remember the motivation for permitting DATE
>> values in the first place?
>>
>> Sure, for all day events like Bastille Day (Hi Franks
>> favorite), New Years Day, etc.
>
>OK, in this case, *all* the values involved will be DATEs; there
>will be no DATE-TIMEs at all.

Correct.  The times are implied to be 00:00:00 relative to the recipient. 
You asked for cases where VALUE=DATE were used and I gave 'em to you.  Did 
I miss something?

>> Also, dont forget that we declared (somewhere, honest!) that
>> times are inherited from the DTSTART/DTEND (or DURATION) if
>> none are specfied on the RDATE, EXDATE (and probably implied on
>> the UNTIL too but Im not sure).
>
>These two statements are inconsistent.  An EXDATE with no time
>can't *both* default to the same time as DTSTART *and* be a
>wildcard.

Ok, I tried to find the text but gave up after a few min trying to find 
it.  I recall we discussed and had some final agreement that VALUE=DATE on 
exceptions would not act the same as for recurrences.  That way the cited 
example of blocking multiple instances on a single date could be done 
quickly.  If just a instance were to be blocked then a VALUE=DATE-TIME 
would have to be used.  If this text did not make it into the final draft 
then its not my fault...

The concensus reached was basically:

1: RDATEs inherit the exact time from the DTSTART.  If DTSTART has 
VALUE=DATE then the implied 00:00:00 is inherited.
2: EXDATEs do not inherit exact times if they are VALUE=DATE.  By covering 
ANY AND ALL instances on that date they effectively achieve "excluding the 
date" w/o worrying about any RRULE instances that are generated (ie: 
FREQ=DAILY;BYHOUR=9,10,11;BYMIN=00,30,...).  Excluding specific instances 
is done via VALUE=DATE-TIMEs.

The gist of this decision was that if something repeats daily then 
excluding "all that day" works just as well as inheriting the time from 
the DTSTART.  If it repeats 'sub daily' (see theatre example) then its 
much simpler to block an entire day by this means than using an EXRULE or 
several EXDATEs that may not catch any changes in the recurrence set (ie: 
rescheduling one showing to accomodate a private party).  To exclude a 
particular instance on a 'sub daily' recurrence would invovle using 
DATE-TIMEs to be more precise.

>The wildcard case can
>be expressed with multiple EXDATEs with DATE-TIME values; the
>default case can be expressed by specifying the EXDATE as a
>DATE-TIME.  So permitting DATE values for EXDATE does not add
>functionality, and does add ambiguity.

The ambiguity seems to stem from this text not being in the final draft we 
passed.  A scan of the archives will show that we seemed to have neglected 
the recurrence grammar and engine part the most given the issues that have 
been arising over the past few months.  Thats to be expected IMHO given 
how much contention there was about putting that into the initial draft. 
Now is the time for us to clean up the oversights and fix the problems 
folks are having.

As for the the description of DATE-TIME vs DATE you give, Im confused by 
how its easier than the text I gave above.  Which is simpler: Blocking the 
entire day no matter what instances occur then (so reschedules DO NOT 
require some CUA realizing that EXDATE values need to be shifted, added, 
etc) or having a CUA creating and maintaining lists of EXDATEs w/expressed 
times when the goal is to filter out the entire day??  I day 1 VALUE=DATE 
is MUCH MUCH easier and simpler to manage than > 1 VALUE=DATE-TIME. 
Perhaps the text above will have helped clear up the ambiguity folks are 
having...  If not, what is still unclear?

>I suggest that we mandate that all the various date[-time] values
>in a given recurrence rule be the same type: either they're all
>DATEs (for all-day events), or they're all DATE-TIMEs.

I disagree for the reasons above.  Perhaps its because I was involved 
w/the original fleshing out of the 2 rules above but Im not confused.  Are 
others still confused??

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...

---

From: John Stracke <[email-masked]>
Date: Thu, 16 Nov 2000 12:40:27 -0500

[email-masked] wrote:

> Correct.  The times are implied to be 00:00:00 relative to the
> recipient.  You asked for cases where VALUE=DATE were used and
> I gave 'em to you.  Did I miss something?

I think the previous complication arose when DATEs were combined
with DATE-TIMEs.  Never mind, though; see below.

> 1: RDATEs inherit the exact time from the DTSTART.  If DTSTART
> has VALUE=DATE then the implied 00:00:00 is inherited.
> 2: EXDATEs do not inherit exact times if they are VALUE=DATE.

This is the part I didn't catch before: that RDATE & EXDATE were
treated differently.  I can go along with that.  Do we have
consensus for changing the RFC, then?

--
/==============================================================\
|John Stracke    | http://www.ecal.com |My opinions are my own.|
|Chief Scientist |=============================================|
|eCal Corp.      |"Time is money, and price is information."   |
[email-masked]|--Russ Nelson                                |
\==============================================================/