[Dev] Recurrance discussion

Bryan Stearns stearns at osafoundation.org
Mon May 2 12:34:48 PDT 2005

Jeffery, Alecf, and I had a discussion this morning about calendar 
recurrence. We didn't come to any firm conclusions, but I wanted to let 
others know the things we discussed, and solicit feedback. (If I've 
gotten any of the details wrong, please correct me!)

Our primary focus was the content model for recurrence: should recurring 
events manifest themselves as a single item, or as a single recurrence 
item with persistant instances created on demand. (Based on 
conversations with Andi, Jeffery had discarded the idea that we might 
use somehow-unpersisted instance items.)

The single-item model would require that anyone else who needed to 
interact with a recurring event also be given a parameter that specified 
which instance was to be displayed. This seemed undesirable because of 
its widespread effect: an item doesn't have enough context on its own to 
be displayable, so everything that needs to interact with that item 
needs a contextual parameter, to know which attributes are time 
sensitive and to use that contextual parameter to display the item.

We then talked about the other model, where instances of recurring 
events would be items in their own right, with a reference back to the 
recurrence object. This is advantageous because items don't require 
extra context, and only those attributes related to recurrence need to 
consider the recurrence object. The disadvantage here is that we'd need 
a scheme to manage the instances, creating them at an appropriate time 
so that all needed instances actually exist.

We talked back and forth about this for a bit; we concluded by agreeing 
that Jeffery would go back and consider the ramifications of the 
persistent-instances model, since it seems to reduce the impact on the 
rest of the app.

- Ted and Andi, please chime in if you've got thoughts about how this 
might be affected by the new collection/query stuff and the repository.

- It'd be useful to know how iCal thinks about this internally, since 
we're modeling a lot of our behavior on it - if anyone has contacts at 
Apple who'd share this with us, please pipe up.


More information about the Dev mailing list