Method and system for expansion of recurring calendar events
1 Assignment
0 Petitions
Accused Products
Abstract
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.
148 Citations
46 Claims
-
7-8. -8. (canceled)
-
13. A system for expanding a recurring data structure including a recurrence pattern indicative of individual instances of a recurring appointment for a defined time period, comprising:
-
means for maintaining a database including a calendar folder containing at least one recurring data structure;
means for determining whether the recurring data structure in the calendar folder has been expanded into individual instances of the recurring appointment;
means for placing the calendar folder in a queue;
means for retrieving the calendar folder from the queue; and
means for calling a routine causing the expansion of the recurring data structure into the individual instances of the recurring appointment for a defined time period. - View Dependent Claims (14, 15, 16)
-
-
17. A computer-readable medium having computer executable instructions for expanding a master data structure including a recurrence pattern into individual instances of a recurring appointment according to the recurrence pattern for a defined time period, which, when executed comprise:
-
placing an identifier identifying a calendar folder containing the master data structure in a queue for further processing;
signaling a simulator thread having a priority level, the priority level being a first priority level that the calendar folder containing the master data structure is queued for further processing;
changing the priority level of the simulator thread to a second, higher priority level;
calling a first routine for expanding the master data structure into the individual instances of the recurring appointment; and
saving the individual instances of the recurring appointment to the calendar folder on a computer readable medium. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A system for expanding a master data structure including a recurrence pattern contained in a calendar folder maintained by a server executing a calendaring application into individual instances of a recurring appointment, comprising, a database logically accessible to the calendaring application on the server for maintaining the calendar folder;
- a status message implemented by the calendaring application, the status message indicating whether the calendar folder contains the master data structure that requires expanding;
a first thread executing at a low priority level on the server; and
a first routine for computing the individual instances of the recurring appointment from the recurrence pattern of the master and saving the individual instances in the calendar folder, wherein the first thread calls the first routine. - View Dependent Claims (29, 30)
- a status message implemented by the calendaring application, the status message indicating whether the calendar folder contains the master data structure that requires expanding;
-
27-28. -28. (canceled)
-
31-33. -33. (canceled)
-
34. A method of expediting the display of recurring calendar information on a thin client, comprising:
-
detecting whether a master data structure including a recurrence pattern of a recurring appointment was saved by a thick client;
placing the calendar folder including the master data structure in a queue of calendar folders requiring further processing;
signaling a simulator thread running in the background that the calendar folder has been placed in the queue;
increasing a priority level of the simulator thread;
expanding the master data structure into individual instances of the recurring appointment; and
saving the individual instances of the recurring appointment to a computer readable medium. - View Dependent Claims (35, 36)
-
-
37. (canceled)
-
38. A method of expanding a master data structure including a recurrence pattern into individual instances of a recurring appointment according to the recurrence pattern for a defined time period, comprising:
-
placing an identifier identifying the master data structure in a queue for further processing;
signaling a first thread having a priority level the priority level being a first priority level that the master data structure is queued for further processing;
changing the priority level of the first thread from the first priority level to a second, higher priority level;
calling a first routine that expands the master data structure into the individual instances of the recurring appointment; and
saving the individual instances of the recurring appointment to a computer readable medium. - View Dependent Claims (1, 2, 3, 4, 5, 6, 9, 10, 11, 12, 39, 40, 41, 42, 43, 44, 45, 46)
-
-
39-1. The method of claim 38, wherein the first thread calls the first routine that expands the master data structure.
-
40-2. The method of claim 38, wherein the first thread calls the first routine by simulating a query from a thin client for calendar information for a defined time period.
-
41-3. The method of claim 40, wherein the thin client is a web browser.
-
42-4. The method of claim 38, further comprising calling a second routine to perform the step of placing the identifier in the queue and signaling the first thread.
-
43-5. The method of claim 38, wherein the first priority level of the first thread is a low priority level.
-
44-6. The method of claim 38, wherein the second priority level of the first thread is a normal priority level.
-
45-7. The method of claim 38, wherein the second priority level of the first thread is a high priority level.
-
46-8. The method of claim 38, wherein the steps of changing of the priority level and calling the first routine occur when idle processing capacity is available.
Specification