A system and method for expanding recurring calendar events such that the retrieval
of recurring calendar appointments is expedited. A recurring appointment is saved
as a data structure including a recurrence pattern. When a recurring appointment
is saved by a client that has sufficient processing and memory resources to perform
the computations necessary to expand recurring appointments (i.e., a thick client),
a background thread is notified. The background thread increases its priority to
normal when idle processing capacity is available and calls a routine requesting
calendar information for a defined time period. The routine causes the expansion
of the data structure into the individual instances of the recurring appointment
for a defined time period, and the individual instances are saved for later retrieval.
A later query from a client without sufficient processing and memory resources
to perform the calculations necessary to expand recurring appointments (i.e., a
thin client), therefore, does not require that the expansion computations be performed contemporaneously.