# US 2014/0156597 A1 · Recurring calendar item master and instance synchronization

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156597 A1
- Document ID: US20140156597A1
- Status: Published application
- Kind: A1
- Application number: 13/706,333
- Filed: 2012-12-05
- Published: 2014-06-05
- Earliest claimed: 2012-12-05
- Assignees: Microsoft Corporation
- Applicants: Microsoft Corporation
- Inventors: Sina Hakami; Juan V. Esteve Balducci; Patrick Tousignant
- Web page: https://patentgrep.com/patent/US20140156597A1

## CPC

- G06F 16/178: Techniques for file synchronisation in file systems
- G06F 3/0484: for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F 16/248: Presentation of query results
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/282: {Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes}
- G06Q 10/109: Time management, e.g. calendars, reminders, meetings or time accounting
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

A synchronization window for synchronizing data for a calendar in a client calendar data store on a calendar data client computer system with data for the calendar in a server calendar data store on a calendar data server computer system can be calculated using a current time. A request for synchronization data for calendar items for the calendar with calendar times that are within the synchronization window can be sent to the calendar data server. One or more responses to the request can be received from the calendar data server. The response(s) can include received records for calendar items that are at least partially within the synchronization window. The received records can include a master record of a recurring calendar item and an instance record of an occurrence of the recurring calendar item. The received records for the calendar items can be incorporated in the client calendar data store.

## Claims

### Claim 1

A computer-implemented method, comprising:
automatically calculating a synchronization window for synchronizing data for a calendar in a pre-existing client calendar data store on a calendar data client computer system with data for the calendar in a server calendar data store on a calendar data server computer system, the calculation of the synchronization window using a current time;
sending to the calendar data server a request for synchronization data for calendar items for the calendar with calendar times that are at least partially within the synchronization window;
receiving from the calendar data server one or more responses to the request, the one or more responses comprising received records for calendar items that are at least partially within the synchronization window, the received records comprising a master record of a recurring calendar item and an instance record of an occurrence of the recurring calendar item;
incorporating the received records for the calendar items in the client calendar data store; and
displaying a calendar view with one or more representations of the calendar items on an output device of the client computer system.

### Claim 2 (depends on 1)

The method of claim 1, wherein calculating the synchronization window comprises calculating a main period of time using the current time, and adding a supplemental period of time for providing complete calendar views of periods of time that include the main period of time.

### Claim 3 (depends on 1)

The method of claim 1, wherein calculating the synchronization window is performed using user input.

### Claim 4 (depends on 1)

The method of claim 1, wherein the one or more responses omit one or more records in the synchronization window that were previously received by the client computer system.

### Claim 5 (depends on 4)

The method of claim 4, wherein incorporating the received records for the calendar items in the client calendar data store comprises including the received records in the client calendar data store and keeping the one or more records that were previously received by the client computer system.

### Claim 6 (depends on 1)

The method of claim 1, wherein the synchronization window is a first synchronization window, the current time is a first current time, the request is a first request, the received records are old received records for old calendar items, the calendar view is a first calendar view, and wherein the method further comprises:
automatically calculating a second synchronization window for synchronizing the client calendar data store on the client computer system with the server calendar data store on the calendar data server, the calculation of the second synchronization window using a second current time that is later than the first current time;
sending to the calendar data server a second request for synchronization data for calendar items with calendar times that are at least partially within the second synchronization window;
receiving from the calendar data server one or more responses to the second request, the one or more responses to the second request comprising new received records for new calendar items that are at least partially within the second synchronization window;
incorporating the new received records for the new calendar items in the client calendar data store; and
displaying a second calendar view including one or more representations of one or more of the new calendar items on the output device of the client computer system.

### Claim 7 (depends on 6)

The method of claim 6, wherein the second calendar view further includes one or more representations of one or more of the old calendar items.

### Claim 8 (depends on 6)

The method of claim 6, wherein the instance record is a first instance record and the new received records comprise one or more additional instance records of the recurring calendar item, the one or more additional instance records can each have a calendar time in the second synchronization window but not in the first synchronization window.

### Claim 9 (depends on 8)

The method of claim 8, wherein the new received records do not include the master record.

### Claim 10 (depends on 8)

The method of claim 8, wherein the one or more responses to the second request include one or more instructions to delete one or more records from the client calendar data store.

### Claim 11 (depends on 1)

The method of claim 1, wherein the calendar view is an initial calendar view, and wherein the method further comprising receiving user input requesting an additional calendar view that is outside the synchronization window, and in response to receiving the user input, performing the following:
retrieving, from the calendar data server, records for calendar items in the additional calendar view that is outside the synchronization window; and
displaying the additional calendar view that is outside the synchronization window.

### Claim 12 (depends on 1)

The method of claim 1, wherein displaying the calendar view is performed while the client computer system is not connected to the calendar data server, and wherein displaying the calendar view is performed in response to receiving user input while the client computer system is not connected to the calendar data server.

### Claim 13 (depends on 1)

The method of claim 1, further comprising imposing a size limit on each of the one or more responses, wherein the size limit is a soft limit that the calendar data server can override by sending the master record and all instance records for the recurring calendar item in a synchronization operation in a single response if the master record and all the instance records for the recurring calendar item in the synchronization operation exceed the limit.

### Claim 14 (depends on 1)

The method of claim 1, wherein the method is performed at least in part by hardware logic.

### Claim 15

A computer system comprising:
at least one processor; and
memory comprising instructions stored thereon that when executed by at least one processor cause at least one processor to perform acts comprising:
a calendar data server computer system maintaining data for a calendar in a server calendar data store; and
the calendar data server sending synchronization data for the calendar from the calendar data store to a calendar data client computer system in a synchronization operation, the synchronization data comprising a master record of a recurring calendar item and at least one instance record of an occurrence of the recurring calendar item.

### Claim 16 (depends on 15)

The computer system of claim 15, wherein the synchronization operation is performed automatically in response to a request from the client computer system.

### Claim 17 (depends on 15)

The computer system of claim 15, wherein the acts further comprise identifying the synchronization data, identifying the synchronization data comprising identifying a synchronization time window and identifying calendar items having times within the synchronization time window.

### Claim 18 (depends on 17)

The computer system of claim 17, wherein identifying the synchronization data comprises identifying and excluding from the synchronization data records for calendar items from the calendar that have times outside the synchronization window.

### Claim 19 (depends on 17)

The computer system of claim 17, wherein identifying the synchronization data comprises identifying and excluding from the synchronization data records for calendar items from the calendar that have times within the synchronization window and were previously sent to the client computer system.

### Claim 20

One or more computer-readable storage media having computer-executable instructions embodied thereon that, when executed by at least one processor, cause at least one processor to perform acts comprising:
automatically calculating a first synchronization window for synchronizing a pre-existing client calendar data store on a client computer system with a server calendar data store on a calendar data server, the calculation of the first synchronization window comprising calculating a main period of time from a first current time, plus a supplemental period of time for providing complete calendar views of periods of time that include the main period of time;
sending to the calendar data server a first request for synchronization data for old calendar items with calendar times that are at least partially within the first synchronization window;
receiving from the calendar data server one or more responses to the first request, the one or more responses comprising received old received records for old calendar items that are at least partially within the first synchronization window, the old received records comprising a master record of a recurring calendar item and an instance record of an occurrence of the recurring calendar item, and the one or more responses omitting one or more records in the first synchronization window that were previously received by the client computer system;
incorporating the received old records for the old calendar items in the client calendar data store, incorporating the old received records for the old calendar items in the client calendar data store comprising including the old received records in the client calendar data store and keeping the one or more records that were previously received by the client computer system;
displaying a first calendar view with one or more representations of the calendar items on an output device of the client computer system, the first calendar view displaying less than the entire first synchronization window;
automatically calculating a second synchronization window for synchronizing the client calendar data store on the client computer system with the server calendar data store on the calendar data server, the calculation of the second synchronization window using a second current time that is later than the first current time;
sending to the calendar data server a second request for synchronization data for calendar items with calendar times that are at least partially within the second synchronization window;
receiving from the calendar data server one or more responses to the second request, the one or more responses to the second request comprising new received records for new calendar items that are at least partially within the second synchronization window, the instance record being a first instance record and the new received records comprising one or more additional instance records of the recurring calendar item, the one or more additional instance records having calendar times in the second synchronization window but not in the first synchronization window, the new received records not including the master record;
incorporating the new received records for the new calendar items in the client calendar data store; and
displaying a second calendar view including one or more representations of one or more of the new calendar items on the output device of the client computer system, the second calendar view further including one or more representations of one or more of the old calendar items.
