Subject: [Ietf-calsify] Example RRULEs

From: sroberts at uniserve.com (Sam Roberts)
Date: Sun Apr 3 09:45:04 2005

Quoting dabooatisamet.com, on Fri, Feb 11, 2005 at 02:04:04PM +0000:
> To help with interop testing, I have made the following available:
> 
> 1) 
> <http://www.mulberrymail.com/davroot/calendars/public/iCalendarTests/2445AllExamples.ics>
> 
> This contains all the recurrence examples from 2445 Section 4.8.5.4 in one 
> .ics file. The SUMMARY of each item indicates the example number in order 
> from that section. The DESCRIPTION is the description from 2445 for each 
> example. Note that some examples have a couple of variants and these are 
> indicated by additional letters in the numbering (e.g. 05a 05b etc). Most 
> of the examples use start dates in 1997, but there are some unbounded 
> examples that will fill up the calendar display e.g. 'Every 20 minutes from 
> 9:00 AM to 4:40 PM every day'.

I test my RRULE processor against the examples in RFC2445, and I found
what I think is an error:

#
# Everyday in January, for 3 years:
#
#   DTSTART;TZID=US-Eastern:19980101T090000
#   RRULE:FREQ=YEARLY;UNTIL=20000131T090000Z;
#    BYMONTH=1;BYDAY=SU,MO,TU,WE,TH,FR,SA
#   or
#   RRULE:FREQ=DAILY;UNTIL=20000131T090000Z;BYMONTH=1
# 
#   ==> (1998 9:00 AM EDT)January 1-31
#       (1999 9:00 AM EDT)January 1-31
#       (2000 9:00 AM EDT)January 1-31

I believe the UNTIL time, being in UTC, is BEFORE (2000 9:00 AM
EDT)January 31 , so the last date in the result vector is not valid.
 
Also, January is in EST, not EDT!

So, when I process the BYDAY variant of the RRULE, I get these dates:

#   ==> (1998 9:00 AM EST)January 1-31
#       (1999 9:00 AM EST)January 1-31
#       (2000 9:00 AM EST)January 1-30

Note the EST, and that the last one ends on the 30th.

Is this an error in the spec?

Btw, the RRULE examples have a very regular formatting. Thats quite
nice, I feed the example text into a little regexer in my unit tests
that spits out an array of times, and confirms that my rrule processor
generates the same array, modulo the "...".

Sam

---

From: daboo at isamet.com (Cyrus Daboo)
Date: Sun Apr 3 11:05:11 2005

Hi Sam,

>> <http://www.mulberrymail.com/davroot/calendars/public/iCalendarTests/244

FYI When trying to analyze the issues you brought up I discovered an error 
in my example .ics - the VTIMEZONE component name did not match the TZIDs 
actually being used and the timezone start times were not far enough into 
the past to cover the actual times in the example events. This has now been 
fixed and the example file updated on my site.

-- 
Cyrus Daboo

---

From: Dave.Thewlis at calconnect.org (Dave Thewlis)
Date: Sun Apr 3 11:13:44 2005

The example file has also been updated on the Calconnect web site:

http://www.calconnect.org/ioptesting.html

Dave Thewlis

Cyrus Daboo wrote:

>>> <http://www.mulberrymail.com/davroot/calendars/public/iCalendarTests/244 
>>>
>>> 5AllExamples.ics>
>>>
>
> FYI When trying to analyze the issues you brought up I discovered an 
> error in my example .ics - the VTIMEZONE component name did not match 
> the TZIDs actually being used and the timezone start times were not 
> far enough into the past to cover the actual times in the example 
> events. This has now been fixed and the example file updated on my site.
>

---

From: daboo at isamet.com (Cyrus Daboo)
Date: Sun Apr 3 11:19:37 2005

Hi Sam,

Yes, I believe that is wrong. Also:

>    Every 3 hours from 9:00 AM to 5:00 PM on a specific day:
>
>      DTSTART;TZID=US-Eastern:19970902T090000
>      RRULE:FREQ=HOURLY;INTERVAL=3;UNTIL=19970902T170000Z
>
>      ==> (September 2, 1997 EDT)09:00,12:00,15:00

This one is wrong too as 19970902T170000Z is before 15:00 US-Eastern, but 
after 12:00 US-Eastern, so the correct result ought to be:

>      ==> (September 2, 1997 EDT)09:00,12:00

-- 
Cyrus Daboo

---

From: sroberts at uniserve.com (Sam Roberts)
Date: Sun Apr 3 11:21:48 2005

> Yes, I believe that is wrong. Also:

Thanks.

> >     ==> (September 2, 1997 EDT)09:00,12:00

Thanks, I will notice this when I implement HOURLY frequencies.

Sam