Claims
- 1. A method of keeping working hours and calendar entries up-to-date, comprising steps of:
defining, for a calendar user, one or more sets of working hours for the user's calendar; flexibly setting working hours for the user on specific days; and dynamically modifying the user's working hours and calendar events, based on actual events, to update the users' calendar data.
- 2. The method according to claim 1, wherein the modifications are triggered by user-initiated actions.
- 3. The method according to claim 1, wherein the modifications are triggered by application-initiated notifications.
- 4. The method according to claim 2, wherein the user-initiated actions comprise signaling a working hours change from a graphical user interface.
- 5. The method according to claim 2, wherein the user-initiated actions comprise signaling a working hours change from an input device.
- 6. The method according to claim 3, wherein the application-initiated notifications are generated responsive to an application detecting the user's status.
- 7. The method according to claim 3, wherein the application-initiated notifications are generated responsive to an application detecting a change in the user's status.
- 8. The method according to claim 3, wherein the application-initiated notifications are generated responsive to a plurality of applications detecting a change in the user's status.
- 9. The method according to claim 3, wherein the application-initiated notifications are generated responsive to an application detecting the user's presence.
- 10. The method according to claim 3, wherein the application-initiated notifications are generated responsive to an application detecting the user's absence.
- 11. The method according to claim 6, further comprising the steps of:
prompting the user to confirm the modifications; and suppressing the modifications if the user so indicates.
- 12. The method according to claim 6, further comprising the step of notifying the user of the modifications.
- 13. The method according to claim 6, wherein the application is a status-aware application.
- 14. The method according to claim 1, wherein each set of working hours for the user is stored in a user profile.
- 15. The method according to claim 14, further comprising the steps of:
allowing the user to select one of his stored profiles; and programmatically applying the working hours from the selected profile to the user's calendar for a date or for a range of dates.
- 16. The method according to claim 15, wherein the programmatically applying step further comprises the steps of storing the scheduled working hours from the selected profile and storing the actual working hours, if the user chooses to apply the selected profile to a past date or dates.
- 17. The method according to claim 14, further comprising the step of storing information pertaining to the user's actual working hours, scheduled working hours, and preferences when the user's calendar rolls over from a particular day to the next day, wherein the stored information reflects the particular day.
- 18. The method according to claim 14, further comprising the step of storing information pertaining to the user's actual working hours, scheduled working hours, and preferences when an end of working day for the user is reached, wherein the stored information reflects the working day.
- 19. The method according to claim 15, wherein the programmatically applying step further comprises the step of storing the profile name from the selected profile if the user chooses to apply the selected profile to a current or future date or dates.
- 20. The method according to claim 14, wherein user preferences arc associated with the user profile.
- 21. The method according to claim 1, wherein the updates comprise changing the user's scheduled working hours.
- 22. The method according to claim 1, wherein the modifications for the user comprise a notification that the user's working status is changed, and wherein the updates further comprise updating the user's calendar to reflect the changed working status.
- 23. The method according to claim 22, wherein the working status change comprises the user arriving at work early, and wherein the updates further comprise extending the user's starting work hour to coincide with receiving the notification.
- 24. The method according to claim 22, wherein the working status change comprises the user leaving work early, and wherein the updates further comprise reducing the user's ending work hour to coincide with receiving the notification.
- 25. The method according to claim 22, wherein the working status change comprises the user attending an event, and wherein the updates further comprise scheduling a calendar event on the user's calendar for a duration of the event.
- 26. The method according to claim 25, wherein the duration of the event is a default duration.
- 27. The method according to claim 25, wherein the duration of the event is determined by consulting a stored rule.
- 28. The method according to claim 25, wherein the duration of the event is specified by the user.
- 29. The method according to claim 22, wherein the working status change comprises the user staying at work late, and wherein the updates further comprise extending the user's ending work hour for a duration of time the user will work late.
- 30. The method according to claim 29, wherein the duration of time is specified by the user.
- 31. The method according to claim 29, wherein a default value is used to determine the duration of time.
- 32. The method according to claim 22, wherein the working status change comprises the user indicating that his current event has ended, and wherein the updates further comprise setting an ending time of any currently-scheduled events to coincide with receiving the notification.
- 33. The method according to claim 1, further comprising the step of using rules to determine how to perform the updates to the users' calendars.
- 34. The method according to claim 1, wherein the modifying step further comprises the steps of:
specifying, by a user, different working hours for one or more days; and programmatically applying the different working hours to the user's calendar for the specified day or days.
- 35. The method according to claim 6, further comprising the steps of:
prompting the user to confirm the modifications; and accepting the modifications if the user so indicates.
- 36. The method according to claim 22, wherein the working status change comprises the user working an unscheduled interval of time, and wherein the updates further comprise updating the user's actual working hours to reflect the interval of time.
- 37. The method according to claim 29, wherein a rule is used to determine the duration of time.
- 38. A system for keeping working hours and calendar entries up-to-date, comprising:
means for defining one or more sets of working hours for a user's calendar; means for specifying, by the user, different working hours for one or more days; and means for programmatically applying the different working hours to the user's calendar for the specified day or days, thereby revising calendar entries on the user's calendar.
- 39. The system according to claim 38, wherein each of the sets of working hours is stored in a user profile, and wherein the means for specifying comprises means for selecting one of the profiles for the user.
- 40. The system according to claim 38, further comprising means for programmatically adding, changing, or deleting events on the user's calendar, responsive to status notifications for the user.
- 41. A computer program product for keeping working hours and calendar entries up-to-date, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for defining, for calendar users, one or more sets of working hours for each user's calendar; computer-readable program code means for specifying, by a particular user, different working hours for one or more days; and computer-readable program code means for programmatically applying the different working hours to the particular user's calendar for the specified day or days, thereby revising calendar entries on the user's calendar.
- 42. The computer program product according to claim 41, wherein each of the sets of working hours is stored in a user profile, and wherein the computer-readable program code means for specifying comprises computer-readable program code means for enabling the particular user to select one of his profiles.
- 43. The computer program product according to claim 41, further comprising computer-readable program code means for programmatically adding, changing, or deleting events on the particular user's calendar, responsive to status notifications for the particular user.
- 44. A method for providing accurate electronic calendars, comprising steps of:
allowing calendar users to define one or more sets of working hours for each user's calendar, wherein each of the sets of working hours is stored in a user profile; allowing the users to specify different working hours for one or more days; programmatically applying the different working hours to the particular user's calendar for the specified day or days.
- 45. The method according to claim 44, wherein the users specify different working hours by selecting one of the profiles.
- 46. The method according to claim 44, further comprising the step of programmatically adding, changing, or deleting events on the particular user's calendar, responsive to status notifications for the particular user.
RELATED INVENTIONS
[0001] The present invention is related to the following commonly-assigned U.S. Patents: U.S. Pat. No. ______, titled “Calendar Events and Calendar-Driven Application Technique” (Ser. No. 09/670,844); U.S. Pat. No. ______, titled “Calendar-Driven Application Technique for Preparing Responses to Incoming Events” (Ser. No. 09/671,001); U.S. Pat. No. ______, titled “Calendar-Enhanced Awareness for Instant Messaging Systems and Electronic Status Boards” (Ser. No. 09/941,045); U.S. Pat. No. ______ (Ser. No. ____, filed concurrently herewith), titled “Predicting and Adjusting Users' Working Hours and Electronic Calendar Events”; and U.S. Pat. No. ______ (Ser. No. ______, filed concurrently herewith), titled “Context Conflict Resolution and Automatic Context Source Maintenance”. The disclosures of these related inventions are hereby incorporated herein by reference.