Personal Calendar Server

The personal calendar server, or PCS, provides centralized management and storage of a user's personal calendar. Multiple clients can connect to the PCS simultaneously to query and modify the user's calendar in a synchronized fashion. The main features of the PCS are as follows:

Storage. The PCS is responsible for loading and saving calendars. Centralizing the loading and saving functionality allows multiple clients to use the same calendar at the same time without having to worry about each other.

Basic Queries. The PCS provides functions to do basic queries on a calendar, for example, a client can ask the server for a list of all the appointments in the calendar, or for all the data for a specific appointment.

Recurrence and Alarm Queries. Looking for the events that recur or have alarm triggers in a specific period of time involves scanning all the appointments in a calendar. To keep clients from having to load whole calendars at once, the PCS can do these computations and send the results to clients.

Modification Log. To allow multiple handheld devices to be synchronized against a calendar, the PCS keeps a log of all the modifications that are done to the calendar. When an appointment is updated or removed, the PCS logs this action in the modification log. Synchronization conduit programs can then use this information to do their work.