Method and system for expansion of recurring calendar events
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.
Claims
exact text as granted — not AI-modified1 . 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 a calendar folder containing 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 calendar folder containing 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 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.
2 . The method of claim 1 , further comprising saving the calendar folder containing the master data structure in the computer readable medium, wherein the calendar folder containing the master data structure is saved to the computer readable medium based on a request from a thick client.
3 . The method of claim 2 , wherein the thick client is compliant with the MAPI architecture.
4 . The method of claim 1 , wherein the first thread performs the step of calling the first routine.
5 . The method of claim 4 , wherein the first thread calls the first routine by simulating a query from a thin client.
6 . The method of claim 5 , wherein the thin client is a web browser.
7 - 8 . (canceled)
9 . The method of claim 1 , wherein the first priority level of the first thread is a low priority level.
10 . The method of claim 1 , wherein the second priority level of the first thread is a normal priority level.
11 . The method of claim 1 , wherein the second priority level of the first thread is a high priority level.
12 . The method of claim 1 , wherein the steps of changing the priority level and calling the first routine occur when idle processing capacity is available.
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.
14 . The system of claim 13 , further comprising means for saving the individual instances of the recurring appointment in the calendar folder.
15 . The system of claim 14 , wherein the means for retrieving the calendar folder from the queue is a thread that runs in the background.
16 . The system of claim 15 , further comprising means for signaling the thread that the calendar folder containing the recurring data structure is in the queue.
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.
18 . The computer-readable medium of claim 17 , wherein the computer executable instructions for expanding the master data structure, when executed, further comprise calling a callback routine to perform the steps of placing the identifier in the queue and signaling the simulator thread.
19 . The computer-readable medium of claim 18 , wherein the callback routine executes in a separate thread.
20 . The computer-readable medium of claim 17 , wherein the simulator thread performs the step of calling the first routine.
21 . The computer-readable medium of claim 20 , wherein the simulator thread calls the first routine by simulating a query from a thin client.
22 . The computer-readable medium of claim 17 , wherein the first priority level of the simulator thread is a low priority level.
23 . The computer-readable medium of claim 22 , wherein the priority level of the simulator thread is changed to a second, higher priority level when idle processing capacity is available.
24 . The computer-readable medium of claim 23 , wherein the second priority level of the simulator thread is a normal priority level.
25 . The computer-readable medium of claim 23 , wherein the second priority level of the simulator thread is a high priority level.
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.
27 - 28 . (canceled)
29 . The system of claim 26 , wherein the first thread calls the first routine by simulating a query from a thin client.
30 . The system of claim 26 , wherein the priority level of the first thread is increased prior to the first thread calling the first routine.
31 - 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.
35 . The method of claim 34 , further comprising changing a status message associated with the master data structure to indicate that the master data structure has to be expanded.
36 . The method of claim 35 , further comprising changing the status message associated with the master data structure to indicate that the master data structure has been expanded.
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.
39 . The method of claim 38 , wherein the first thread calls the first routine that expands the master data structure.
40 . 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 . The method of claim 40 , wherein the thin client is a web browser.
42 . (canceled)
43 . The method of claim 38 , wherein the first priority level of the first thread is a low priority level.
44 . The method of claim 38 , wherein the second priority level of the first thread is a normal priority level.
45 . The method of claim 38 , wherein the second priority level of the first thread is a high priority level.
46 . (canceled)
39 . The method of claim 38 , wherein the first thread calls the first routine that expands the master data structure.
40 . 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 . The method of claim 40 , wherein the thin client is a web browser.
42 . 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 . The method of claim 38 , wherein the first priority level of the first thread is a low priority level.
44 . The method of claim 38 , wherein the second priority level of the first thread is a normal priority level.
45 . The method of claim 38 , wherein the second priority level of the first thread is a high priority level.
46 . 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.Join the waitlist — get patent alerts
Track US2005222891A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.