Subject: Re: DATE values question

From: [email-masked]
Date: Thu, 1 Nov 2001 14:50:39 -0500

Damon wrote on 10/28/2001 08:58:21 PM:
> If I have a VEVENT like this:
> 
> DTSTART;VALUE=DATE:20010910
> DTEND;VALUE=DATE:20011310
> 
> (i.e. from 9th Oct to 13th Oct)

Umm, I think you meant to say 20011009 and 20011013, respectively... :^)

> Does it:
> 
>      a) include the 13th October entirely, up to midnight.
>   or b) stop at 12am on 13th.

We never resolved this thread I dont think when we covered it back in 1999 
(yep, that far back).  Look for the thread titled "Recurring Anniversary Instances?" and then perhaps we can come to a final resolution of this issue. 
However in the interest of time Ill forge ahead and rehash a bit and put 
my stick in the ground as to what I think the answer is.

Some relevant RFC citations for those who want a jumpstart, RFC 2445, p 
53:

   The "VEVENT" is also the calendar component used to specify an
   anniversary or daily reminder within a calendar. These events have a
   DATE value type for the "DTSTART" property instead of the default
   data type of DATE-TIME. If such a "VEVENT" has a "DTEND" property, it
   MUST be specified as a DATE value also. The anniversary type of
   "VEVENT" can span more than one date (i.e, "DTEND" property value is
   set to a calendar date after the "DTSTART" property value).

   The "DTSTART" property for a "VEVENT" specifies the inclusive start
   of the event. For recurring events, it also specifies the very first
   instance in the recurrence set. The "DTEND" property for a "VEVENT"
   calendar component specifies the non-inclusive end of the event. For
   cases where a "VEVENT" calendar component specifies a "DTSTART"
   property with a DATE data type but no "DTEND" property, the events
   non-inclusive end is the end of the calendar date specified by the
   "DTSTART" property.

Part of the original discussion was about DATE & DATE-TIME equivalents but 
I think the last line of the 1st paragraph will help us make a decision 
thats consistant one way or another.  One would logically infer from the 
text above that since:

        DTSTART;VALUE=DATE:20011009

alone is an "all day" (09-Oct-2001) event and that:

        DTSTART;VALUE=DATE:20011009
        DTEND;VALUE=DATE:20011010

would be a "two day" (09-Oct-2001 & 10-Oct-2001) event.  However some have 
argued that the 2 day example is wrong and should be:

        DTSTART;VALUE=DATE:20011009
        DTEND;VALUE=DATE:20011011

since the time defaulted should be 00:00:00.  Also, we never did resolve 
the case of what does/should:

        DTSTART;VALUE=DATE:20011009
        DTEND;VALUE=DATE:20011009

mean.  Technially DTEND is not "after" DTSTART so some think this is 
'illegal'.  Others claim that DTEND is after DTSTART since they view the time for DTSTART as being 00:00:00 
(Local) and the time of DTEND as being 23:59:59 (Local). 

The citation appears to bear out this argument but it should be noted that 
A) the text never says the DTEND is "1 day after" the DTSTART, it simply 
says "is set to a calendar date after the "DTSTART"" and B) while this "ends are relative to the end of the 
day" argument sounds normal it is by no means consistant with regard to 
defaulting times. 

Unfortunately we have no good iTIP/iMIP examples to use to resolve this 
but my take on this issues remains that the time always defaults to 00:00:00 (so the DATE value must be selected accordingly). To 
directly answer your (corrected) question, I would claim that 13-Oct-2001 
is not included as part of the event; the event ends (non-inclusively) at 
20011013T000000.

Now where did I put those asbestos gloves???

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: "Shannon J. Clark" <[email-masked]>
Date: Thu, 1 Nov 2001 14:25:57 -0600

I will add this to the next version of the Issues lists for iCalendar, iTIP,
and iMIP

1 - examples of correct usage of DATE value type in VEVENT objects

2 - examples and explanation of "valid" and "invalid/illegal" DTEND forms
for DATA value types

3 - examples of above situations if applicable to iMIP and iTIP

4 - Perhaps a general case of "What is done with
inconsistent/invalid/illegal properties?" is also in order?

Shannon
  -----Original Message-----
  From: [email-masked]
[mailto:[email-masked]]On Behalf Of [email-masked]
  Sent: Thursday, November 01, 2001 1:51 PM
  To: Damon Chaplin
  Cc: [email-masked]
  Subject: Re: DATE values question

  We never resolved this thread I dont think when we covered it back in 1999
(yep, that far back).  Look for the thread titled "Recurring Anniversary
Instances?" and then perhaps we can come to a final resolution of this
issue.  However in the interest of time Ill forge ahead and rehash a bit and
put my stick in the ground as to what I think the answer is.

  mean.  Technially DTEND is not "after" DTSTART so some think this is
'illegal'.  Others claim that DTEND is after DTSTART since they view the
time for DTSTART as being 00:00:00 (Local) and the time of DTEND as being
23:59:59 (Local).

  The citation appears to bear out this argument but it should be noted that
A) the text never says the DTEND is "1 day after" the DTSTART, it simply
says "is set to a calendar date after the "DTSTART"" and B) while this "ends
are relative to the end of the day" argument sounds normal it is by no means
consistant with regard to defaulting times.

  Unfortunately we have no good iTIP/iMIP examples to use to resolve this
but my take on this issues remains that the time always defaults to 00:00:00
(so the DATE value must be selected accordingly).  To directly answer your
(corrected) question, I would claim that 13-Oct-2001 is not included as part
of the event; the event ends (non-inclusively) at 20011013T000000.

  Bruce

---

From: Damon Chaplin <[email-masked]>
Date: 01 Nov 2001 16:49:05 -0500

> Umm, I think you meant to say 20011009 and 20011013, respectively... :^)

Oops. Yes.

> is not included as part of the event; the event ends (non-inclusively) at 

Yes, that is what we do now.
The deciding factor for us was that that is what Outlook does.

(which reminds me - I think the group should keep info on interop
problems somewhere.)

Damon

---

From: Doug Royer <[email-masked]>
Date: Fri, 02 Nov 2001 13:32:31 -0700

[email-masked] wrote:

> ...

I agree, the DTEND is in effect an 'UNTIL' in that way.
It starts at DTSTART, and goes UNTIL the end DTEND, and stops
when DTEND matches the current DATE (As no time was specified).

-Doug