Hi Helge,

--On July 1, 2009 4:20:31 PM +0200 Helge Heß <m...@helgehess.eu> wrote:

when I save an unbound RRULE, CalendarServer seems to rewrite it to a
bound RRULE with a constant count of 400.

Why is that? Does CalServer flatten RRULEs somewhere?

I wonder whether its appropriate to convert a COUNT=400 to unlimited on
import ... (should there be an X-CAL-SERVER-COUNT property instead?)

We deliberately truncate unbounded RRULEs that would generate too many instances in our index for performance reasons. The basic policy is this:

1) For an unbounded RRULE with FREQ equal to anything other than YEARLY we add COUNT=400.
2) For a bounded RRULE with a COUNT greater than 400, we set COUNT=400.
3) For a bounded RRULE with an UNTIL we attempt to determine the number of instances up to the UNTIL value (using a fast, but not absolutely accurate, method based on frequency and period). If instances exceed 400 we remove the UNTIL and add COUNT=400.

There are still some tweaks we are thinking about here. In particular it has been suggested that rather than doing a COUNT truncation, what we should do is set UNTIL to the end of the year after the year in the DTSTART - i.e. allow at least one whole year's worth of bookings.

At some point we may also revise our indexing to remove the performance issue at which point truncation may not be needed - but for now it is better to do it.

--
Cyrus Daboo

_______________________________________________
calendarserver-dev mailing list
calendarserver-dev@lists.macosforge.org
http://lists.macosforge.org/mailman/listinfo.cgi/calendarserver-dev

Reply via email to