Abstract:
One embodiment of the present invention provides a system that facilitates displaying calendar information on a display. The system operates by displaying a status bar in a location on the display, which does not preclude other content from being displayed simultaneously. In addition, the system displays a calendar timeline including calendar information in the status bar, wherein one end of the calendar timeline represents a beginning of a displayed time period and an opposite end of the calendar timeline represents an end of the displayed time period. Moreover, the status bar is continuously viewable to a user regardless of what other content is being displayed on the display.

Description:
BACKGROUND  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to user interfaces for computer systems. More specifically, the present invention relates to a method and an apparatus for displaying calendar information to a user.  
         [0003]     2. Related Art  
         [0004]     Recent advances in Personal Digital Assistants (PDAs), smart phones, and associated Personal Information Management (PIM) software have resulted in significant increases in user productivity, which has lead to widespread adoption of PIM software and associated devices.  
         [0005]     Even though there have been major advances in the design of PIM software, the current generation of PIM software is not without limitations. For example, when a user is busy working on a project on a computer and receives a phone call from another person asking if he or she is free for an appointment at a specific time, the user typically has to navigate away from their current work and open their PIM application. In addition, the user then has to navigate to the calendar portion of the PIM application and possibly has to navigate to the desired time slot. At this point, the user is able to see if he or she is available at the requested time.  
         [0006]     Once a scheduling request or inquiry has been completed, the user then navigates back to the application that he or she was working on. The time it takes to navigate back and forth between applications is both time consuming, and a burden to productivity.  
         [0007]     Hence, what is needed is a method and an apparatus for interfacing with calendar information without the problems listed above.  
       SUMMARY  
       [0008]     One embodiment of the present invention provides a system that facilitates displaying calendar information on a display. The system operates by displaying a status bar in a location on the display, which does not preclude other content from being displayed simultaneously. In addition, the system displays a calendar timeline including calendar information in the status bar, wherein one end of the calendar timeline represents a beginning of a displayed time period and an opposite end of the calendar timeline represents an end of the displayed time period. Moreover, the status bar is continuously viewable to a user regardless of what other content is being displayed on the display.  
         [0009]     In a variation of this embodiment, displaying the calendar timeline on the status bar involves displaying an indicator on the calendar timeline, which indicates a current time.  
         [0010]     In a further variation, the system displays appointment information for the user on the calendar timeline, wherein an appointment is displayed as an appointment box on the calendar timeline. One edge of the appointment box is placed on the calendar timeline at a position corresponding with a starting time of the appointment and an opposite end of the appointment box is placed on the calendar timeline at a position corresponding with an ending time of the appointment. Moreover, the appointment box has different visual properties than the calendar timeline to facilitate differentiation by the user of time that is scheduled in appointments from time that is not scheduled in appointments.  
         [0011]     In a further variation, the system receives a click from the user on the appointment box. In response to the click, the system opens the appointment properties in a new window to facilitate modification of the appointment properties by the user.  
         [0012]     In a further variation, the system receives a dragging command from the user on an edge of the appointment box. In response to the dragging command, the system modifies a corresponding boundary time of the appointment to correspond to the new position of the edge of the appointment box. Note that the boundary time represents either the starting time or the ending time of the appointment.  
         [0013]     In a further variation, the system receives a dragging command from the user on the appointment box. In response to the dragging command, the system modifies the corresponding boundary times of the appointment to correspond to the new positions of the edges of the appointment box. Note that the boundary time represents either the starting time or the ending time of the appointment.  
         [0014]     In a further variation, the system receives a click from the user on an empty portion of the calendar timeline. In response to the click, the system opens a new appointment properties window to facilitate creation of a new appointment by the user.  
         [0015]     In a further variation, the system receives a click from the user on a navigation button on the calendar timeline. In response to the click, the system moves the calendar timeline a pre-determined distance forward, moves the calendar timeline a pre-determined distance backward, moves the calendar timeline to a next scheduled appointment, moves the calendar timeline to a last scheduled appointment, opens a new window that allows the user to move the calendar timeline to a specific date and time, or adjusts a scale of the calendar timeline.  
         [0016]     In a further variation, the system displays a total of all time scheduled in appointments (the sum of the length of all of the currently scheduled meetings for the displayed time period) or a total of all time not scheduled in appointments (the sum of the amount of time that is available for scheduling for the displayed time period).  
         [0017]     In a variation of this embodiment, the system displays the current date and time on the status bar.  
         [0018]     In a variation of this embodiment, the system displays an instant messaging status on the status bar. The instant messaging status provides an availability status of the user to a third-party. Note that the instant messaging status can be set manually or automatically based on schedule information.  
         [0019]     In a variation of this embodiment, the system displays status information of a currently executing process on the status bar.  
         [0020]     In a variation of this embodiment, the system displays the content of modal dialogs on the status bar.  
     
    
     BRIEF DESCRIPTION OF THE FIGURES  
       [0021]      FIG. 1  illustrates a computer in accordance with an embodiment of the present invention.  
         [0022]      FIG. 2  illustrates a user interface in accordance with an embodiment of the present invention.  
         [0023]      FIG. 3  illustrates a date-selection tool in accordance with an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0024]     The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present invention. Thus, the present invention is not intended to be limited to the embodiments shown, but is to be accorded the widest scope consistent with the principles and features disclosed herein.  
         [0025]     The data structures and code described in this detailed description are typically stored on a computer readable storage medium, which may be any device or medium that can store code and/or data for use by a computer system. This includes, but is not limited to, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs) and DVDs (digital versatile discs or digital video discs), and computer instruction signals embodied in a transmission medium (with or without a carrier wave upon which the signals are modulated). For example, the transmission medium may include a communications network, such as the Internet.  
         [0000]     Computer System  
         [0026]      FIG. 1  illustrates a computer system  104  in accordance with an embodiment of the present invention. Computer system  104  can generally include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a personal organizer, a device controller, and a computational engine within an appliance.  
         [0027]     Computer system  104  includes display  106 . Display  106  outputs a visual representation of user interface  108  to user  102 , thereby facilitating interaction between user  102  and computer system  104 .  
         [0000]     User Interface  
         [0028]      FIG. 2  illustrates a user interface  108  in accordance with an embodiment of the present invention. User interface  108  includes status bar  202 . In one embodiment of the present invention, status bar  202  is always visible to user  102 , regardless of what other information is being presented to user  102  within user interface  108 .  
         [0029]     Status bar  202  includes presence area  204 , date control  206 , calendar area  208 , and status area  210 . Note that status bar  202  is not drawn to scale, and the size and the arrangement of components within status bar  202  may vary with different embodiments of the present invention. Also note that the location of status bar  202  may be changed by user  102 .  
         [0030]     In one embodiment of the present invention, the relative proportions of status bar  202  occupied by presence area  204 , date control  206  with calendar area  208 , and status area  210  remain fixed as user  102  changes the overall size of status bar  202 .  
         [0000]     Presence Area  
         [0031]     Presence area  204  displays the instant messaging status, in text as well as via an icon, to user  102 . The text displays the availability message that is shown to other users that check the availability of user  102 . Clicking on the text in presence area  204  invokes a menu that allows user  102  to change the text or set various other options relating to instant messaging. User  102  may also choose random text to display for his or her availability, as well as automatic text that is dependant on the scheduling information in calendar area  208 .  
         [0032]     The icon in presence area  204  displays how other users see the status of user  102  as defined by the instant messaging application. Additionally, the icon provides feedback to user  102 , such as if user  102  is offline or if the instant messaging server is unavailable.  
         [0000]     Calendar Area  
         [0033]     Calendar area  208  provides a quick snapshot of scheduled appointments for a selected day to user  102 . As illustrated in  FIG. 2 , calendar area  208  displays the information for Tuesday, Mar. 29, 2005 as indicated in date control  206 . In the embodiment of the present invention illustrated in  FIG. 2 , user  102  is unavailable prior to 9:00 am, and after 5:00 pm, as user  102 &#39;s working hours are defined as 9:00 am t 5:00 pm. In addition, user  102  has an appointment scheduled from 11:00 am to noon. The current time is represented by a vertical bar through calendar area  208 . In  FIG. 2 , the current time is approximately 10:50 am. Note that the starting time and the ending time displayed in calendar area  208  can be configured by user  102 , as well as various visual attributes, such as color, texture, and special effects, for displaying free time, scheduled time, and non-working hours. In one embodiment of the present invention, user  102  sets his or her working hours, and the system sets the starting time one-hour prior to that start of working hours and sets the ending time one hour after the end of working hours.  
         [0034]     By hovering a pointer over various controls and objects in status bar  202 , user  102  can receive feedback as to what actions can be taken, as well as receiving more information about the object that is under the pointer. For example, by hovering the mouse over the appointment scheduled for 11:00 am in calendar area  208 , user  102  can receive more information about the scheduled appointment, such as the title, attendees, location, etc.  
         [0035]     In one embodiment of the present invention, various controls allow user  102  to navigate among the appointments scheduled. User  102  can click on hour forward, hour backward, day forward, and day backward which advances the timeline in calendar area  208  by one hour forward, one hour backward, one day forward, and one day backward, respectively. In addition, double-clicking on one hour forward or one hour backward will move the timeline to the next meeting in the currently selected day or the previous meeting in the currently selected day. Likewise, double-clicking on day forward or day backward will advance the timeline to the next day with a scheduled appointment or the last day with a scheduled appointment.  
         [0036]     User  102  may additionally click any unscheduled area of the timeline to open an appointment scheduling dialog.  
         [0037]     In one embodiment of the present invention, appointments with reminders can be displayed with various visual effects, as well as accompanied with an audio alert. For example, at a scheduled reminder time, computer system  104  can sound a chime, and the appointment for which the reminder has activated can be represented by a flashing box or various other animations.  
         [0000]     Date Control  
         [0038]     Date control  206  displays the date for the time period displayed in calendar area  208 . In one embodiment of the present invention, the date is displayed in a short-date format. Hovering over the date will display the date in long-date format, such as “Tuesday, Mar. 29, 2005”. Clicking on date control  206  will display the date-selection tool  302  as illustrated in  FIG. 3 .  
         [0039]     Clicking on a day in date-selection tool  302  sets the date for the time displayed in calendar area  208  to the day that user  102  clicked. User  102  can use date-selection tool  302  to navigate to any arbitrary date. Controls are provided to advance date-selection tool  302  forward or backward one month at a time. In addition, user  102  can click on the month and year to change to any desired month and year.  
         [0040]     User  102  is also presented with a “today” button that, upon clicking, sets the date for calendar area  208  to the current date.  
         [0000]     Status Area  
         [0041]     Status area  210  can be used for displaying notifications as well as for displaying information about currently running processes. In addition, status area  210  can contain a stop or cancel button to terminate currently running tasks or processes.  
         [0042]     In one embodiment of the present invention, status area  210  can be used to display the contents of modeless dialogs, such as impending appointment notifications.  
         [0043]     Status notifications can be accompanied by various audio and visual effects, such as a chime and flashing text.  
         [0044]     Note that one embodiment of the present invention includes date control  206  and calendar area  208 , and does not include presence area  204  or status area  210 .  
         [0045]     The foregoing descriptions of embodiments of the present invention have been presented for purposes of illustration and description only. They are not intended to be exhaustive or to limit the present invention to the forms disclosed. Accordingly, many modifications and variations will be apparent to practitioners skilled in the art. Additionally, the above disclosure is not intended to limit the present invention. The scope of the present invention is defined by the appended claims.