US 20040109025 A1
Methods, systems and machine readable media for operating a calendar in a data processing system. In one exemplary method, a calendar interface is displayed on a display device, wherein the calendar interface is capable of displaying calendar events for a user, and a control interface is displayed, which control interface allows the user to selectively display calendar events simultaneously from at least two calendars of the user in the calendar interface.
1. A computer program comprising a plurality of calendars and a user interface wherein the user interface provides an interface for two or more calendars.
2. A computer program as claimed in
3. A computer program as claimed in
4. A computer program as claimed in
5. A computer program as claimed in
6. A computer program as claimed in
7. A computer program as claimed in
8. A computer program as claimed in
9. A computer program as claimed in
10. A computer program as claimed in
11. A computer program as claimed in any
12. A computer program as claimed in
13. A computer program as claimed in
14. A computer program as claimed in
15. A computer program as claimed in
16. A computer program as claimed in
17. A computer program as claimed in
18. A computer program as claimed in
19. A computer program as claimed in
20. A computer program as claimed in
21. A computer program as claimed in
22. A computer program as claimed in
23. A computer program as claimed in
24. A method of operating a calendar system on a data processing system, said method comprising:
displaying a calendar interface which is capable of displaying calendar events for a user;
displaying a control interface which allows said user to selectively display calendar events from at least two calendars of said user in said calendar interface.
25. A method as in
26. A method as in
27. A method as in
28. A machine readable medium containing executable instructions which when executed by a data processing system cause said system to perform a method comprising:
displaying a calendar interface which is capable of displaying calendar events for a user;
displaying a control interface which allows said user to selectively display calendar events from at least two calendars of said user in said calendar interface.
29. A machine readable medium as in
30. A machine readable medium as in
31. A machine readable medium as in
32. An apparatus for operating a calendar, said apparatus comprising:
means for displaying a calendar interface which is capable of displaying calendar events for a user;
means for displaying a control interface which allows said user to selectively display calendar events from at least two calendars of said user in said calendar interface.
33. An apparatus as in
34. An apparatus as in
35. An apparatus as in
 The present invention relates to a computer program comprising a plurality of calendars.
 In the last fifty years, the pace of life and complexity for the consumer has increased considerably. Hitherto, many consumers merely required a simple manuscript diary or calendar to organise the various commitments and events occurring in their life. This developed further for consumers in having more than one diary or calendar for each person of a household or for different areas of their life. Thus, it was not uncommon to maintain a family diary for the events for each member of the household and work calendars to maintain events for working members of the household and possibly also social calendars to maintain events for social matters such as theatre appearances or sporting fixtures.
 As the pace of life and complexity for the consumer increased even further, maintaining those separate calendars became considerably more difficult. It was not uncommon for the appropriate calendar not to be available or conflicting events from different calendars confirmed.
 Thus, it has been proposed to have a single system for maintaining events. Having a single manuscript calendar becomes very bulky and difficult to access from various sites and difficult to present data in a cohesive manner. Accordingly, electronic calendar programs have been developed. Events for different categories are indicated by different labels or other distinguishing marks. However, having a single electronic calendar is still very cumbersome to use and when there are many events for a single time span, the calendar can become very confusing.
 In due course, electronic calendars provided the user with a plurality of calendars, each one dedicated to a category such as home, work, school, football fixtures, golf fixtures, theatre productions etc. An example of which can be found in one of the personal digital assistants provided by PSION (Registered Trade Mark). A user of such electronic calendars is required to enter and view events for the relevant category in the relevant calendar. When checking potentially conflicting events, a user must scroll through each of the calendars in turn. Managing the calendars and various events stored in the calendars is not easy and requires considerable organisational skills.
 Certain embodiments of the present invention are directed towards an improved system for managing a plurality of calendars in a more cohesive manner.
 One exemplary embodiment of the present invention is related to a computer program comprising a plurality of calendars and a user interface wherein the improvement lies in that the user interface provides an interface for two or more calendars. That is to say each calendar simultaneously shares the user interface. Thus, there are a number of calendars per user in comparison to the prior art which focuses on a single calendar per user whereby events are distinguished between each other, or a number of calendars each dedicated to a particular category and each using separate user interfaces. Exemplary methods of the invention and exemplary systems embodying the invention are also described.
 Embodiments of the present invention relate to calendar operations on a data processing system. A data processing system which may be used with embodiments of the invention typically include a display for displaying a calendar interface and a processor for controlling the display and an input device. Examples of such data processing systems include general purpose computers or special purpose computers or personal digital assistants or cellular telephones. Examples of data processing systems are shown and described in U.S. Pat. No. 6,222,549 which is hereby incorporated herein by reference. Often, the data processing system will include a memory for storing software (e.g. computer program) instructions. Embodiments of the invention may be embodied, at least in part, in software. That is, the techniques may be carried out in a computer system or other data processing system in response to its processor, such as a microprocessor, executing sequences of instructions contained in a memory, such as ROM, volatile RAM, non-volatile memory, cache or a remote storage device (addressable through a network). In various embodiments, hardwired circuitry may be used in combination with software instructions to implement the present invention. Thus, the techniques are not limited to any specific combination of hardware circuitry and software nor to any particular source for the instructions executed by the data processing system. In addition, throughout this description, various functions and operations are described as being performed by or caused by software code to simplify description. However, those skilled in the art will recognize what is meant by such expressions is that the functions result from execution of the code by a processor, such as the microprocessor of a data processing system.
 A machine readable media can be used to store software and data which when executed by a data processing system causes the system to perform various methods of the present invention. This executable software and data may be stored in various places including for example ROM, volatile RAM, non-volatile memory and/or cache. Portions of this software and/or data may be stored in any one of these storage devices.
 Thus, a machine readable media includes any mechanism that provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g. a computer, network device, personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.). For example, a machine readable media includes recordable/non-recordable media (e.g. read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; etc.) as well as electrical, optical, acoustical or other forms of propagated signals (e.g. carrier waves, infrared signals, digital signals, etc.); etc.
 The present invention in one exemplary embodiment comprises a computer program having a user interface providing an interface for two or more calendars. FIG. 1 is a diagram of such a user interface 2. The user interface includes a number of windows 4, 6 and 8. Window 4 is titled “My Calendars”. FIG. 1 illustrates the use of the user interface with two calendars, namely “Home” and “Work”. The names of the calendars are displayed in the “My Calendars” window. Preferably, the calendars “Home” and “Work” are created by default. Other calendars may be included, especially public event calendars.
 Window 6 comprises a primary date range. In FIGS. 1 and 2, the primary date range comprises a day with a data field for each hour. In FIG. 3, the primary date range is a month. Needless to say, the primary date range may be weekly or yearly. A selector 10 in the user interface enables a user to select which primary date range to display.
 The primary date range includes a data field for each unit of the primary date range. That is to say, in the daily date range, the data fields are hours, in the weekly date range, the data fields are days or hours, in the monthly date range, the data fields are days or hours and in the yearly date range, the data fields are months, weeks, days or hours. As shown in FIG. 3, the data fields may display sub-fields for each hour of the day when the primary date range is monthly. Similarly, in the yearly date range, each data field may display sub-fields for each day. In the daily date range, the preferred embodiment displays only some of the hours available.
 Window 8 enables a subsidiary date range to be displayed. In FIGS. 1 and 2, the subsidiary date range is monthly. A marker 12, enables the day selected in the primary date range to be indicated in the subsidiary date range. For example, Tuesday February 5 2002 is shown in the primary date range and this day is indicated by the marker in the subsidiary date range which displays February 2002.
 The user interface provides a toggle or control interface 14 for each calendar. The user interface indicates to the user that the toggle is activated when a tick or check mark appears next to the name of the calendar. If a toggle is activated, then the events from the respective calendar are displayed by the user interface, typically by displaying the events in a calendar interface such as a daily or weekly or monthly view. FIG. 2, illustrates two situations for the user interface. One situation has the user interface displaying events from two calendars, namely “Home” and “Work” whereas the other situation has the user interface displaying events from only one calendar, namely “Home”. For example, in the first situation in FIG. 2, there is an event occurring at 10 am, namely “Meeting” which is not displayed in the other situation since this event only appears in the calendar “Work” which is not activated.
 The present invention thus enables a user to manage all of the required calendars using a computer program having a single user interface and all of the 2 or more calendars may be calendars for the same user displaying events, meetings, etc. for that user. The user interface significantly enhances the management of the events occurring over a plurality of calendars. Thus, when checking availability of a new event, a user merely needs to activate all of the relevant calendars (leaving the other calendars not activated), and the events in all the relevant (activated) calendars are all displayed and a user can easily confirm whether there is availability. Conversely, when considering just one category of events, a user merely needs to deactivate the redundant calendars and activate only the one relating to the particular category. The user interface thus very efficiently manages the calendars on the one hand by combining all of the calendars and yet allows flexibility to focus on one or a few calendars to minimise confusion and reduce complexity.
 FIGS. 4 to 7 illustrate a preferred embodiment of the present invention. In FIGS. 4 to 7, window 8 displays more than one month as the subsidiary date range. Moreover, the marker 12, indicates a selected week. Window 6 comprises the primary date range of a week with hourly data fields for each day of the week. The user interface indicates a particular day in the primary date range and a detailed marker 16 in the subsidiary date range indicates the same day. For example, Tuesday 27th August 2002 is highlighted in the primary date range and the detailed marker indicates the same day and this is distinguished from the marker 12 in the subsidiary date range.
FIG. 4 illustrates an event, namely “My Event”. The event is displayed as a 2-D shape, namely a rounded rectangle. The 2-D shape has boundaries which are approximately contiguous with the specified duration, namely 9 am to 1 p.m. and thus represent the duration of the event.
 In order to minimise confusion, only one of the calendars is selected for editing at any one time. Thus, a user selects a calendar of most importance in the hierarchy of all of the calendars. This is indicated by highlighting in the user interface. For example, as shown in FIG. 4, the calendar “lala” is highlighted, thereby indicating that as the most important calendar.
 When a user wishes to add, select, modify or delete an event, the user may highlight the event and double click. An interrogator interface 20 is activated and displayed. The date of the event and duration are displayed as shown at 22. Changes can be made using the arrows. The calendar from which the event is taken is also displayed at 24. The event may be moved from one calendar to another by changing the associated calendar appearing at 24. The details of the event are displayed at 26. Not only may the event be changed but also properties associated with the event may be changed. For example, an alarm may be indicated and/or selected at 28. When the alarm is due, any known computer program alarm may be provided such as an audio or visual announcement. A shortcut 30 may be activated to set the duration as the whole day or other duration depending upon the primary date range used. Another property is to set the event as recurring. A recurring event may comprise for example Birthdays, anniversaries, regular appointments etc.
 The user interface of the preferred embodiment shown in FIG. 4 also includes an additional window 40. Window 40 is entitled “To Do items”. To do items include those tasks for which a specific time is not required but set for a particular day, week, month or year, depending upon the primary date range selected. In FIG. 4, the primary date range is weekly and the to do items are noted for a particular day. To do items can be displayed such as that shown in FIG. 5. The to do items may be implemented in a “Franklin Covey mode”.
FIG. 6 illustrates a user interface with an additional window 50. Window 50 provides another subsidiary date range, in this case weekly. The events occurring in window 50 are generally of a day long duration. Such a display is particularly useful when displaying user's holidays or national holidays or other events of a day duration such as Birthdays. Those events are indicated by a 2-D rectangular shape with rounded corners at the extremities of the duration. Such events are termed banners. A banner may also be used to display a weekend or holiday period. The computer program is able to display such a banner with rectangular corners at the extremity of the duration when the shortcut 30 is activated.
 The preferred embodiment also provides for searches to be effected. The searches are facilitated by search interface 60. A string of characters is entered into the search interface. A search is conducted across selected calendars and the search results are displayed in a search result window 62. For example in FIG. 6, the search string “acan” was entered and various entries identified and displayed. The search interface also enables each of the events presented thereby to be viewed and/or changed and selecting one of the results in the search interface for changing may produce the interrogator interface as discussed above.
 As discussed above, events from each toggled calendar are displayed by the user interface. FIG. 7 illustrates the user interface according to the preferred embodiment whereby several calendars are toggled, namely “US Holidays 2”, “lala”, “Jewish Holidays”, “testpub” and “VacancesG5”. The events from all of these toggled calendars are shown in the primary date range. It is not uncommon for events to conflict. Thus, a distinguishing feature is provided to distinguish between conflicting events. The distinguishing feature may comprise a different colour, the shape of the event being displayed differently and/or one of the events being translucently displayed. When colour is used, the name of the calendar and each of the events or their shape take the same colour.
 In FIG. 7, there are two conflicting events which overlap between 11.30 am and 1 p.m. The events are displayed in a translucent manner and with their shape reduced such that the lateral boundary does not extend the full width of the day data field. FIG. 8 illustrates this in more detail. In this case, there are two conflicting events with the event entitled “New event” at 10.30 am. The other events “New event” at 9.15 am and “envoyer list bug” are reduced in size and aligned with the left perimeter of the day data field whereas the event “New event” at 10.30 am is reduced in size and aligned with the right perimeter of the day data field. Moreover, event “New event” at 1030 am is made translucent so that event “New event” at 9.15 am can be seen there through and event “envoyer list bug” is overlaid.
 Two features of embodiments of the present invention are the instant access to data and the natural selection and visualisation of other sources of events. The present invention may contain a large multitude of events, in particular because of its ability to include many calendars within a calendar interface for a user. Thus, it becomes critical for a user to quickly and easily find relevant data in a given context. For example, during work hours, a user must be able to easily find meetings concerning a given project, by selecting only the work calendar and searching for the given project. However, at home, the same user, with the same computer program and user interface must have a way to easily find social details such as the soccer matches for any given team, again through selecting only the relevant calendars and searching for the given team. The user is thus provided with a live textual search system and related navigational facilities.
 Embodiments of the present invention thus achieve the objectives of enabling a user to manage all of the required calendars using a computer program having a single user interface. The user interface significantly enhances the management of the events occurring over a plurality of calendars. Thus, when checking availability of a new event, a user merely needs to activate (e.g. “toggle”) all of the relevant calendars, whose events are all displayed and a user can easily confirm whether there is availability. Conversely, when considering just one category of events, a user merely needs to deactivate (e.g. “de-toggle”) the redundant calendars and activate only the one relating to the particular category. The user interface thus very efficiently manages the calendars on the one hand by combining all of the calendars and yet allows flexibility to focus on one or a few calendars to minimise confusion and reduce complexity.
 Preferably the computer program is operative on a data processing system such as a computer such as one of the Macintosh personal computers from the applicant, Apple Computer Inc. of Cupertino, Calif., USA. More preferably the computer program is operative in the MacOS x version 10.2, known as Jaguar (Registered Trade Mark). Moreover, the computer program is complementary to Mail and Address Book computer applications also available from Apple for full personal information management. Needless to say, the computer program is compatible with printing applications and functions. Embodiments of the present invention may also be used on other types of data processing systems such as a personal digital assistant (PDA) (e.g. a Palm PDA or a Pocket PC) or a cell phone with a calendar system or a music player, such as an iPod from Apple.
 In addition, the computer program is compliant with standards for calendaring applications such as iCal and vCal (both Registered Trade Marks) and allows import of data from other applications like Entourage (Registered Trade Mark) available from Microsoft. Further details can be obtained from http://www.imc.org/draft-ietf-calsch-inetcal-guide. The computer program is also compatible with the iTools web service available from Apple in order to share calendar data easily over the Internet.
 In view of the compatibility discussed above and in particular with the operating system, the computer program enables copy and paste with other applications, drag and drop facilities, use of the spellchecker, integration with email applications and integration with address applications for management of personal information.
 Moreover, the preferred embodiment also provides a publish and subscribe user interface for providing one or more calendars to others and/or for subscriber to other calendars. FIG. 9 illustrates a publish interface for facilitating the publication of the selected calendar. In the publish interface, one of the calendars is selected at 90. A user may set preferences associated with the selected published calendar. For example, all changes effected on the calendar are published automatically at 92. All notes and events are included at 94. Any alarms set can also be included or not in the published calendar at 95 since these may not be relevant to a subscriber. Similarly any to do items can be included or not in the published calendar at 96. Finally, the publish interface enables the calendar to be published either over the Internet or on a server at 97. Confirmation or cancellation can be effected via buttons 98. Finally, a status of the publication is indicated at 99.
 Details of a method of managing a calendar by publishing and subscribing is described in one of our other copending applications filed on the same day by the same inventors and entitled “A Method Of Managing A Calendar And A Computer System For Implementing That Method,” attorney docket no. 04860.P2997. Although this other application is incorporated herein by reference in full, relevant details of which are as follows:
FIG. 10 illustrates schematically a computer server 200 on which is stored a calendar 400 containing at least one event. A number of subscriber electronic devices 600 a, 600 b etc are each connected to the server 200. In the preferred embodiment, the computer server is provided over the Internet and the subscribers are computers connected intermittently to the server. Alternatively, the server could comprise a local area network to which the subscribers are connected permanently. The electronic devices could comprise any form of electronic device such as a notebook or laptop computer, personal digital assistant, mobile telephone, palm device etc.
 The server 200 has stored thereon the calendar of events 400. The calendar 400 is downloaded and stored on each of the subscribers to form a local calendar 800 a, 800 b etc. The local calendar is stored in the same electronic format as on the server. The preferred embodiment enables the local calendar to be stored with a subscriber calendar 1000 a, 1000 b etc. In particular, the local calendar and the subscriber calendar both share the same user interface as described herein.
 The present invention may also include a viewer electronic device 1200. A viewer 1200 may access the calendar stored on the server but may not download the same to form a local calendar. In order for a viewer to become a subscriber, the viewer must pay a subscriber fee.
 A viewer electronic device may comprise any of the same subscriber electronic devices, for example a notebook or laptop computer, personal digital assistant, mobile telephone, palm device etc and be connected in any of the arrangements as for a subscriber. Depending upon the electronic device involved any suitable electronic connection may be made as is well known in the art including USB, serial ports, firewire, bluetooth, infrared and over the Internet.
 The preferred embodiment also enables a subscriber 600 b to publish their local calendar 1000 b to the server 200 or for viewing by a viewer 1200. Another subscriber, such as 600 a may download the published local calendar 1000 b to form a local subscriber calendar 1000 a/b. The viewer may view the local calendar stored on the server 1000 b or directly if connected to the subscriber.
 The subscribers may also be connected directly. In this case, a subscriber 6 a may publish the local calendar 1000 a to the other subscriber 600 b which is then stored to form a local subscriber calendar 1000 b/a stored on subscriber 600 b.
 The present invention provides for any number of calendars to be provided by the server or any number of electronic devices either subscriber or viewer to be included.
 Many calendars are not static. Static calendars include those relating to national holidays, birthdays, daylight saving transition dates, tide data etc. However, many calendars are not static and events need to be added, modified or deleted. All of these are termed as changes. FIG. 11 illustrates schematically changes to be effected on a calendar which is published.
 In the first instance a change may be made to a calendar in operation 2000. If the change occurs on a calendar 400 stored on the server 200, then each subscriber 600 a, 600 b, downloads the change in operation 2200 and the local calendar 800 a, 800 b is updated in operation 2400. If the change occurs on a local calendar 100 a stored on a subscriber, then the calendar, if sent directly to another subscriber 600 b, is downloaded by the subscriber 600 b and the local subscriber calendar 1000b/a is updated. If the local calendar 1000 b is published on the server 200, then the local calendar 1000 b is republished in operation 2600. The other subscriber 1000 a, downloads the republished calendar 1000 b and updates the local subscriber calendar 1000 a/b stored thereon.
 The preferred embodiment also provides for a dialog between users operating the subscriber devices in order to confirm, disagree or amend any changes. A user of one of the subscribers may send a notification to the other subscriber in operation 2800. The recipient subscriber may reply to confirm the change in operation 3000. The change is then effected on the calendar and the change implemented on the local calendar as discussed above. The recipient subscriber may reply to disagree or amend the proposed change in operation 3200. The subscriber and recipient may conduct this dialog between notifying 2800 and replying 3200 until a reply to confirm 3000 is received. The change is then effected as discussed above.
 The server or subscriber generating the calendar 400, 1000 a or 1000 b may provide for the recipient subscriber to view the calendar only or effect changes. Other preferences may be determined by the server or subscriber. Such preferences include the time period between making changes to the calendar and downloading those changes. Other preferences include merely notifying a user of a subscriber of a change. All such preferences are facilitated through the use of a user interface such as described above and shown in FIG. 9.
 The present invention thus enables events from more than one calendar to be disseminated and organised in a method which is more manageable. In particular, events do not need to be re-entered onto the users electronic calendar thereby avoiding errors and the user can selectively choose events from certain calendars to be included in their local calendar. Moreover, the method provides for changes being effected and a dialog between at least two users for confirming on changes to be made.
 Thus, through publishing and subscribing to other users calendars and public calendars, the need for facilitating the management of all of that data is achieved through the use of a single user interface.
 To assist a user in appreciating which calendars are specific to the user or those which are subscribed, a tag 100 as shown in FIG. 5 is used. Those calendars which include alarms associated with an event include a tag 102.
 To enhance the security of data integrity and reduce complexity, it is preferred that data involved in the computer program is always synchronised across various electronic devices. A method of synchronising three or more electronic devices is described in one of our other copending applications filed on the same day by the same inventors and entitled “A Method Of Synchronizing Three Or More Electronic Devices And A Computer System For Implementing That Method,” attorney docket no. 04860.P2998.
 The foregoing description has been given by way of example only and it will be appreciated by a person skilled in the art that modifications can be made without departing from the scope of the present invention.
 Embodiments of the present invention will now be described by way of further example only and with reference to the accompanying drawings, in which:
FIG. 1 is a diagram of a user interface according to an embodiment of the present invention;
FIG. 2 is a diagram of the user interface according to an embodiment of the present invention illustrating two situations, one displaying events from two calendars and the other displaying events from only one calendar;
FIG. 3 is a diagram of a user interface according to the present invention illustrating a different data range as the primary date range;
FIG. 4 is a diagram of a user interface according to the preferred embodiment illustrating the display of events;
FIG. 5 is a diagram of a user interface according to the preferring embodiment illustrating to do items;
FIG. 6 is a diagram of a user interface according to the preferred embodiment illustrating a search result window;
FIG. 7 is a diagram of a user interface according to the preferred embodiment illustrating overlapping events;
FIG. 8 is a diagram of part of a user interface according to the preferred embodiment illustrating said overlapping events in more detail;
FIG. 9 is a diagram of a publish interface for publishing one of the calendars;
FIG. 10 is a schematic illustration of publishing a calendar according to the present invention; and
FIG. 11 is a schematic diagram of a flow chart for changing an event in a calendar which is published according to the present invention.
 This application is related to and hereby claims the benefit of the filing date of U.S. Provisional Patent Application Serial No. 60/406,521, filed Sep. 9, 2002, which application is hereby incorporated herein by reference.