Patent Publication Number: US-8533020-B2

Title: Management of user events scheduled during a user absence period

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation of U.S. patent application Ser. No. 12/406,649, filed Mar. 18, 2009, entitled “IMPROVED MANAGEMENT OF USER EVENTS SCHEDULED DURING A USER ABSENCE PERIOD”, now allowed, the disclosure of which is hereby incorporated by reference. 
     BACKGROUND OF THE INVENTION 
     This invention relates to the management of scheduled user events when the user is absent. Events to be managed are emails with a scheduled due date or follow-up, meetings, chat appointments and instant messages with scheduled due dates. 
     Calendaring and collaboration tools provide the ability to schedule events comprising meetings, appointments, tasks or the like. Using the conventional calendar tools a user may organize and schedule meetings on one or more calendars and update or modify the information associated with the scheduled event. In addition, the user may check the availability of other users before scheduling a meeting with them. Finally, conventional calendar tools permit the user to view his/her scheduled appointments by the day, week, or month. 
     Using the tools described a user may schedule a meeting, assign a task, schedule an online meeting or delivery due date, send an email, or reschedule a meeting. It is conceivable and likely to schedule a meeting or appointment with a friend or associate for a future date and the person with whom the appointment is made becomes unavailable for the appointment due to a vacation, scheduling change, business trip or unplanned emergency. Before the person becomes unavailable, manually notifying or managing uses participating in the scheduled the appointments or meetings of the unavailability is cumbersome and error prone. 
     SUMMARY OF THE INVENTION 
     According to aspects of the present invention, user events scheduled during a user absence period are managed by identifying a user absence period defined on a user calendar and identifying a buffer period, the buffer period being at least one of a period of time before the user absence period begins and a period of time after the user absence period concludes. User events are further managed by searching at least one calendaring repository to determine whether there are any user events with a due date coming due during the user absence period that were scheduled prior to a user defining the user absence period and responding, using a processor, to each user event scheduled prior to a user defining the user absence period and having a due date coming due during the user absence period. User events are still further managed by searching at least one calendaring repository to determine whether there are any user events with a due date coming due during the buffer period that were scheduled prior to the user defining the buffer period and responding, using the processor, to each user event scheduled prior to the user defining the buffer period and having a due date coming due during the buffer period, in a manner differently from responding to user events coming due during the user absence period. 
     Embodiments of the present invention may be implemented an apparatus, a computer program product, and a system executing the operations of the method described above. The apparatus and/or system implementation may include a definition module, a search module, and a response module. The apparatus and/or system implementation may also include a presentation module, a user interface module, a monitoring module, a detection module, a reporting module, a response module, a configuration module. Each of these modules will be described in more detail below as example embodiments of the invention are described. 
     Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with an embodiment of the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussion of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment. 
     Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the invention may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which: 
         FIG. 1  is an illustration of a calendar with user events scheduled during a user period of absence, in accordance with one embodiment of the invention 
         FIG. 2  is a block diagram illustrating one embodiment of a system for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
         FIG. 3  is a block diagram illustrating another embodiment of a configuration module for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
         FIG. 4  is an illustration of a graphical user interface of a method for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
         FIG. 5  is a block diagram illustrating still another embodiment of a monitoring module for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
         FIG. 6  is a detailed schematic flow chart diagram illustrating one embodiment of a method for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
         FIG. 7  is a block diagram of one embodiment of a hardware system capable of executing an embodiment for improved management of user events scheduled during a user absence period, in accordance with one embodiment of the invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like. 
     Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module. 
     Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices. 
     Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment. 
     As will be appreciated by one skilled in the art, the embodiments of the invention may be embodied as a method, system, or computer program product. Accordingly, the embodiments of the invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the embodiments of the invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. 
     Any suitable computer usable or computer readable medium may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, or semiconductor system, apparatus, device. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer usable program code may be transmitted using any appropriate medium, including but not limited to the Internet, wireless, optical fiber cable, RF, etc. 
     Computer program code for carrying out operations of the embodiments of the invention may be written in an object oriented programming language such as Java, Smalltalk, C++ or the like. However, the computer program code for carrying out operations of the embodiments of the invention may also be written in conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user&#39;s computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
     The embodiments of the invention are described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. 
     Furthermore, the described features, structures, or characteristics of the invention may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided, such as examples of programming, software modules, user selections, network transactions, database queries, database structures, hardware modules, hardware circuits, hardware chips, etc., to provide a thorough understanding of embodiments of the invention. One skilled in the relevant art will recognize, however, that the invention may be practiced without one or more of the specific details, or with other methods, components, materials, and so forth. In other instances, well-known structures, materials, or operations are not shown or described in detail to avoid obscuring aspects of the invention. 
     An automated tool to search multiple calendaring repositories and or other schedule repositories for meetings, and items with a requested follow-up date or start date or end date that comes due during the time period that the user is to be unavailable is needed. Furthermore, a tool that will automatically handle these requests when the user is out of the office is advantageous. The different embodiments of the invention solve this problem and allow the user to plan for the future by defining how requests coming due during the unavailable period will be handled. 
     Furthermore, the embodiments of the invention allow the user to review the predefined responses for events scheduled during an absence period when he/she activates the tool and then modify a response if desired. Additionally, the user may plan into the future and build response templates for periods of time when he/she will be unavailable. Finally, the tool may provide a summary of the events handled during the absence period. 
     The embodiments of the invention have been developed to provide an improved method for managing user events scheduled during a user absence period. 
     A method for managing user events scheduled during a user absence period comprises determining a user absence period having a start date and an end date, the user absence period defined on a user calendar, detecting a new user event scheduled during the user absence period, the user event comprising a start/end date that falls within the user absence period, automatically responding to the new user event scheduled during the user absence period, and the new user event scheduled after the user absence period is defined. 
     The solution defines the user absence period, in response to user input from a user that manages the user calendar. Each user event may comprise one or more of an electronically scheduled meeting, an email having a follow-up due date, a chat appointment, and an instant message(IM) to-do item. 
     The solution automatically responds by applying one or more response rules in response to a user event satisfying a user event criteria, the user event criteria may comprise one or more of a user event communication type, a user event action type, a user event sender, a user event distribution list, a user event attachment, a buffer time period associated with the user absence period, and a priority level of the user event. 
     The solution defines one or more response rules by way of a user interface, the response rules comprising an action selected from the group comprising, declining the new user event, accepting the new user event, delegating the new user event, notifying an organizer of the new user event, notifying a distribution list of the new user event, and ignoring the new user event. 
     The solution searches at least one calendaring repository for one or more scheduled user events having a due date during a user absence period, the one or more scheduled user events scheduled prior to defining the user absence period. In certain embodiments, the calendaring repository includes more items than simply dates and deadlines of a calendar. In certain embodiments, the calendaring repository includes a variety of electronic media used to track and manage a user event including emails with follow-up dates, task assignments with due dates, chat items that include todos or appointment dates, and the like. The solution interactively responds to each scheduled user event coming due during the user absence period and prompts the user to manually manage one or more of the scheduled user events coming due during the user absence period. 
     In one embodiment, the user absence period comprises a buffer time period. There may be one buffer time period before a user absence period and/or one buffer time period after a user absence period. In one embodiment, the solution sets a buffer time period before the user absence period begins and after the user absence period concludes in response to user input, applying one or more user defined response rules in response to a user event satisfying user event criteria. 
       FIG. 1  illustrates a system  100  for displaying a user calendar  110 . Specifically, the user calendar  110  depicts a two week period of time, and includes events scheduled to occur during the two week period of time. The events appear on a user calendar  110  and require the user of the user calendar  110  to take an action, such as attend a meeting, or complete a task. 
     The user calendar  110  depicts a user absence period  120 . The user absence period  120  illustrating a period of time when the user of the user calendar  110  plans to be unavailable to attend meetings, respond to emails, attend chat appointments or respond to instant messages (IM&#39;s). The unavailability of the user may be due to a vacation, a business trip, or just needing a period of undisturbed time. 
     Additionally, the user calendar  110  illustrates a buffer period  130 , the buffer period  130  is a period of time immediately before a user absence period  120  begins and/or a period of time immediately after the user absence period  120  concludes. The buffer period  130  may represent a period of time when the user is available but at a reduced productivity level due to preparing for the user absence period  120 . The user absence period  120  and the buffer period  130  may be adjusted to meet the needs of the user and  FIG. 1  is simply an illustration of one possible user calendar  110 . 
     The user calendar  110  includes user events  150   a - e  with user events  150   a - d  scheduled during a user absence period  120 . In particular, the user events  150   a - e  may consist of an email user event  150   a , a meeting user event  150   b , a chat appointment user event  150   c , an instant message (IM) appointment user event  150   d , a task assignment (a ToDO) (not shown), and finally an email user event  150   e  coming due during a buffer period  130 . 
     The user events  150   a - e  are only a representation of any number of user events  150   a - e  that could be scheduled during the user absence period  120 . As used herein, the term “user event” is intended to mean one or more of an activity that includes the user and has an associated date and/or time. Thus, a user event may comprise a meeting, an assignment, a telephone conference, a project submission deadline, a project due date, a personal meeting appointment, an online chat or meeting appointment, and the like. The user events  150   a - e  represent events that users other than the calendar owner may schedule to include the owner. These events may arrive by way of a synchronous communication with the calendar owner such as with a chat session or by way of an asynchronous communication such as with email and/or certain chat technologies. Additionally, the owner of the user calendar  110  may schedule the user events  150   a - e.    
       FIG. 1  is a graphical representation of a user calendar  110 , identifying a user absence period  120  and a buffer period  130 . The user calendar  110  includes user events  150   a - e  scheduled to come due during the user absence period  120 . Conversely, a user calendar  110  may be represented in a separate file that may define and/or describe the user absence period  120 , the buffer period  130 , and the user events  150   a - e . The separate file may comprise a plain text file, an XML file, a word file, a spreadsheet or the like. The file may exist in RAM, on local storage, on a network storage repository, or the like. 
     Before a user leaves for a vacation, takes a business trip or otherwise becomes unavailable a user without the embodiments of the invention searches multiple calendaring repositories for user events  150   a - e  with a due date coming due during a user absence period  120  or buffer period  130 . Once identified, the user must decide how each user event  150   a - e  having a due date coming due during a user absence period will be handled. In addition new user events  150   a - e  may be scheduled during the user absence period  120  or buffer period  130 . Consequently the need for a system that manages the user events  150   a - e  scheduled during the user absence period  120  assists the user in managing the user events  150   a - e . An apparatus, system, and method in accordance with the embodiments of the invention saves time over a manual process requiring searching calendaring repositories for scheduled user events  150   a - e  and notifying users that may want to schedule a user event  150   a - e.    
       FIG. 2  illustrates one embodiment of a system  200  for improved management of user events scheduled during a user absence period  120 . The system  200  includes a configuration module  220  and a monitoring module  230 . The system  200  runs in a software execution environment which may include an Operating System (OS), and support user interface tools such as stand alone or web-based calendaring systems. The OS may be Windows, Macintosh, UNIX, Linux or the like. 
     The system  200  may comprise a workstation application, a servlet, a desktop application, a server application, a client application, a web-based application, a memory  210  and a processor  240 . 
     In one embodiment, the configuration module  220  and the monitoring module  230  are written in a programming language such as Java, C++, C, or the like. The configuration module  220  and monitoring module  230  may execute in an environment consisting of a small or large stand alone or networked system of laptops, workstations, or mainframe computers. The configuration module  220  and monitoring module  230  are configured to execute applications, and may include a Database Management System (DBMS). The configuration module  220  and monitoring module  230  may connect to the World Wide Web (WWW). The configuration module  220  and monitoring module  230  may be executing in the same computing device or in geographically different locations from each other. 
     The configuration module  220  interacts with the user to define and revise the management of user events  150   a - e . In particular, the configuration module  220  defines the user absence period  120  and buffer period  130 . In addition, the configuration module  220  searches one or more calendaring repositories for scheduled user events having a due date during the user absence period  120 . The configuration module  220  presents user events  150   a - e  scheduled during the user absence period  120 . In one embodiment, an owner of the calendar  110  uses the configuration module  220  to quickly identify and manage user events  150   a - e  that are scheduled during the user absence period  120  or are scheduled to be completed during the user absence period  120 . 
     The monitoring module  230  interacts with the system  200  to detect, respond to and report user events  150   a - e  scheduled during a user absence period  120 . In particular, the monitoring module  230  detects the user events  150   a - e  scheduled to come due during the user absence period  120 . In addition, the monitoring module  230  may in certain embodiments respond to the user event  150   a - e  with a user defined automatic action. Additionally, the monitoring module  230  may report the number of user events  150   a - e  responded to. In one embodiment, the user events  150   a - e  are events scheduled by users requiring the owner of the user calendar to attend a meeting or complete a task. 
       FIG. 3  illustrates one embodiment of a configuration module  220  for improved management of user events  150   a - e  scheduled during a user absence period  120 . The configuration module  220  includes a definition module  310 , a presentation module  360 , and a search module  370 . The Presentation module  360  includes a user interface module  362  and an input module  364 . 
     The configuration module  220  interacts with the owner of a user calendar  110  to configure and present a user absence period  120 . Specifically, configuration module  220  configures a period of time that the owner of a user calendar  110  may be on vacation, a business trip or otherwise unavailable. In one embodiment, the configuration module  220  presents a graphical user interface (GUI) and prompts the user to enter a user absence period  120  starting date and ending date. 
     Optionally, the configuration module  220  interacts with the owner of a user calendar  110  to configure and present a buffer period  130 . In particular, the configuration module  220  configures a buffer period  130 . The buffer period  130  being a period of time before the user absence period  120  begins and a period of time after the user absence  120  concludes. In one embodiment, the buffer periods  130  are of equal duration. In another embodiment, the buffer periods  130  are not of equal duration. It may be of value to the owner of a user calendar  110  to configure the buffer period  130  before the user absence  120  begins to be of different during duration. 
     The configuration module  220  interacts with a system  200  to save the user calendar. In one embodiment, the user calendar  110  may be saved in a repository (not shown) of user calendars  110 . The repository of user calendars  110  is capable of storing multiple user calendars  110 . 
     In one embodiment, the user absence period  120  may comprise a start date followed by a duration. In yet another embodiment, the user absence period  120  may comprise an offset from the beginning of a calendar year, for example: the user absence period  120  may commence 50 days from midnight January 1 st  and conclude 60 days from midnight January 1 st . In an alternative embodiment, the user absence period  120  may comprise a start month/day/year and end month/day/year. 
     In one embodiment, the configuration module  220  receives the user absence period  120  from a user that manages the user calendar  110 . In yet another embodiment, the configuration module  220  may determine the user absence period  120  via a script, an extensible markup language (XML) input file, an application program interface (API), a command line interface, or the like. In yet another embodiment, a graphical user interface (GUI) may be used to input the user absence period  120 . 
     Optionally, the owner of a user calendar may configure a buffer period  130  to begin a period of time before the user absence period  120  begins, and to conclude a period of time after a user absence period  120  concludes. In one embodiment, the owner of the calendar may configure the before a buffer period  130  to be the same length as the after buffer period  130 . Alternatively, the owner of the calendar may configure the before buffer period  130  and after buffer period to be of unequal lengths. In one embodiment, the calendar owner may configure only a before buffer period  130  or only an after buffer period  130 . 
     The definition module  310  interacts with a user to define criteria and automatic responses. In particular, the definition module  310  defines the user event criteria  320  to compare with new user events  540  ( FIG. 5 ), and the associated user response rules  340 . In one embodiment, if a new user event  540  ( FIG. 5 ) satisfies the defined user event criteria  320  the system  200  responds automatically with an action defined by the user response rules  340 . 
     Additionally, the definition module  310  interacts with the presentation module  360  to present information to and receive information from the user. Specifically, the definition module  310  interacts with the user interface module  362  to present a user calendar  110  and prompt the calendar owner to define user event criteria  320  and user response rules  340 . In one embodiment, the system  200  uses the presentation module  360  to present a graphical user interface (GUI) to define user event criteria  320  and user response rules  340 . 
     The presentation module  360  interacts with the user interface module  362  to output graphics and text, and with the input module  364  to receive user input. In particular, the presentation module  360  presents a user absence period management page to the user interface module  362  and prompts a calendar owner to enter user event criteria  320  and user response rules  340 . 
     The user interface module  362  interfaces with an output device to present a user absence period management page. The owner of a user calendar  110  configures the user event criteria  320  that the monitoring module  230  uses to determine if a new user event  150   a - e  satisfies the criteria for an automatic response action. In one embodiment, the user interface module  362  outputs a GUI, a text menu, a printer menu a disk file or the like. 
     In one embodiment, the input module  364  interfaces with input devices to receive user event criteria  320  and user response rules  340  from a keyboard, mouse, disk file, or the like. 
     The definition module  310  interacts with the owner of a user calendar  110  to define the user event criteria  320 . User event criteria  320  is a set of criteria a calendar owner user wants to use to identify user events  150   a - e  coming due during the user absence period  120 . In particular, the calendar owner defines the criteria values to determine if a user event  150   a - e  satisfies the requirements for an automatic response. Below are representative examples of a few possible user event criteria  320  category types: 1) communication type  332 , comprising an email, a chat or an IM, a task assignment. 2) action type  324 , comprising a meeting invitation, a task assignment (a ToDO), an email with a follow-up to do, a chat appointment or an IM with a to do. 3) sender type  326 , a sender of the communication. 4) distribution list type  328 , all users included on the distribution list. 5) attachment type  330 , any attachments to the user event  150   a - e  6) priority level type  332 , a user event  150   a - e  priority level, and the like. User event criteria  320  may include whether the user event  150  has a start/end date during the absences period or during the buffer period or a combination of these. With such user event criteria  320  set, the user can then define whether events satisfying that criteria will have one or more response rules applied. The automated response rules may define an action or a response that the system takes based on the match. For example in one embodiment a match may result in a notification being sent to a user event organizer automatically. Alternatively, or in addition, the automatic response to user events satisfying the user event criteria  320  may result in the user event being displayed for a user such that the user can then manually determine what responses are made for each user event identified. 
     The definition module  310  interacts with the owner of a user calendar  110  to define the user response rules  340 . Specifically, the user response rules  340  are automatic actions the monitoring module  230  implements when a user event  150   a - e  satisfies the user event criteria  320  defined by the calendar owner. Below are representative examples of a few possible automatic actions: 1) declining the invitation or request, 2) accepting the invitation or request, 3) delegating the invitation or request, 4) notifying members of the distribution list of the user absence period, 5) notifying the organizer of the user absence period and/or of what action has been taken on the request/invitation, and ignoring the the invitation or request. The flexibility to define user event criteria  320  and customize a response is advantageous for managing user events  150   a - e  scheduled during a user absence period  120   
     In one embodiment, user events  150   a - e  with a due date during the user absence period  120  use the same user event criteria  320  and user response rules  340  as for user events  150   a - e  with a due date during the buffer period  130 . Alternatively, the owner of a user calendar  110  may define different user event criteria  320  for user events  150   a - e  with a due date during the user absence period  120  than user events  150   a - e  with a due date during the buffer period  130 . Additionally, the owner of a user calendar  110  may define different user response rules  340  for user events  150   a - e  with a due date during the user absence period  120  than user events  150   a - e  with a due date during the buffer period  130 . 
     Below is a table of examples of possible user events types and actions that can be taken for those events. 
     
       
         
           
               
               
             
               
                   
               
               
                 User event type 
                 Action 
               
               
                   
               
             
            
               
                 meeting invitation 
                 1. decline attending the meeting. 
               
               
                   
                 2. delegate attending the meeting to 
               
               
                   
                 someone. 
               
               
                   
                 3. notify the distribution list that the user 
               
               
                   
                 will not attend the meeting. 
               
               
                   
                 4. Ignore the meeting invitation. 
               
               
                 email with a follow-up 
                 1. delegate the follow-up. 
               
               
                   
                 2. notify the sender that the user will not 
               
               
                   
                 complete the follow-up. 
               
               
                   
                 3. ignore the email. 
               
               
                 chat messages 
                 1. delegate the chat invitation. 
               
               
                   
                 2. notify the chat organizer that the user 
               
               
                   
                 will be unable to attend. 
               
               
                   
                 3. Ignore the chat appointment. 
               
               
                   
                 4. decline 
               
               
                 instant message (IM) 
                 1. delegate the IM invitation. 
               
               
                   
                 2. notify the IM organizer that the user will 
               
               
                   
                 be unable to attend. 
               
               
                   
                 3. ignore the IM inviation. 
               
               
                   
                 4. decline 
               
               
                 Task assignment (ToDo) 
                 1. delegate the ToDo assignment. 
               
               
                   
                 2. notify the ToDo assigner that the user 
               
               
                   
                 will be unable to attend. 
               
               
                   
                 3. ignore the ToDo assignment. 
               
               
                   
                 4. decline 
               
               
                   
               
            
           
         
       
     
     The search module  370  interacts with the system  200  to search and present user events  150   a - e  that satisfies the user event criteria  320 . Specifically, the search module  370  searches one or more calendaring repositories  372  searching for user events  150   a - e  that satisfies criteria defined by the owner of a user calendar  110 . Next the search module  370  presents the user events  150   a - e  to the owner of the user calendar  110 . In one embodiment, the search module  370  searches local and remote calendaring repositories (connected by some form of electronic network to the system  200 ) for scheduled user events  150   a - e  that satisfy the user event criteria  320  defined by the owner of the user calendar  110 . The search module  370  interacts with the presentation module  360  to present the scheduled user events  150   a - e  to the calendar owner. 
     The presentation module  360  interacts with a calendar owner to present, review, modify, and respond to the user events  150   a - e  located by the search module  370 . The presentation module  360  interacts with the search module  370  to receive scheduled user events  150   a - e . In one embodiment, the configuration module  220  applies the user response rules  340  to the user events  150   a - e  located by the search module  370  to define an automated action associated with the scheduled user event  150   a - e . The presentation module  360  interacts with the user interface module  362  to present the scheduled user event  150   a - e  and associated action. In one embodiment, the presentation module  360  prompts an owner of a user calendar  110  to accept or modify the action. Next, the presentation module  360  interacts with the input module  364  to receive a response from the owner of the user calendar  110 . 
     In one embodiment, the user interface module  362  interacts with output devices to present a scheduled user event  150   a - e  and associated action to the owner of a user calendar  110 . The output device may be a device capable of displaying a graphical user interface (GUI), a display device, a printer, a disk file or the like. 
       FIG. 4  illustrates one embodiment, of a Graphical User Interface (GUI)  410  to present user events  150   a - e  found in a storage repository  372 . The presentation module  360  communicates with the GUI  410  to present user events  150   a - e  found in the storage repository  372  to the owner of a user calendar  110 . 
     The GUI  410  displays characteristics of the user events  150   a - e  to the owner of the user calendar, including: the date/time  462  of the user event  150   a - e , the communication  464  type, the description  466 , and finally the automatic user action  468 . Also, the GUI  410  may include a selection column  460  for selecting the user event  150   a - e . After reviewing the user event  150   a - e  and the action  468  the owner of the user calendar  110  may accept the action  468 . Conversely the calendar owner may decide to modify the action to one or more of decline, notify, delegate or ignore. In one embodiment, the ability of the owner of the user calendar  110  to review and modify the action  468  is of value in managing user events  150   a - e . In one embodiment, the user selects the user event using a check box  460  on the user absence period management page  420 . Then the user selects an option from the response action options  450 . 
     In one embodiment, the system  200  may prompt the owner of the user calendar  110  when the system  200  locates a user event  150   a - e  that satisfies the user event criteria  320 . Prompting the calendar owner may include placing the new user event  150   a - e  identified in the repository  372  on the GUI  410 . In one embodiment, the user may respond to the prompt by clicking on the select  460  box for the user event  150   a - e . Next the user selects a action response  450  for the user event  150   a - e . The user action option  450  comprise one or more of declining  342 , accepting  344 , delegating  346 , notifying the distribution  348  list, notifying the organizer  350 , and ignoring  352 . If no modification option is selected, the system  200  may determine the current automatic user response  468  to be acceptable. After the user has responded to the prompt, the user event  150   a - e , the select  460  field, the date/time  462  field, the description  466  column, and action  468  field may become unselectable indicating the user has responded to the prompt. 
       FIG. 5  illustrates one embodiment of a monitoring module  230  for improved management of user events  150   a - e  scheduled during a user absence period  120 . The monitoring module  220  includes a detection module  510 , a response module  520 , and a reporting module  530 . 
     The monitoring module  230  interacts with the system  200  to detect, respond and report user events  150   a - e  scheduled during a user absence period  120 . In certain embodiments, the monitoring module  230  is incorporated with or plugs into an existing calendaring system. Alternatively, the monitoring module  230  is a stand-alone software component in communication with an existing calendaring system. 
     The monitoring module  230  detects one or more user events  150   a - e  scheduled to come due during the user absence period  120 . In addition, the monitoring module  230  responds to the user event  150   a - e  with a user defined automatic action. Additionally, the monitoring module  230  reports the number of user events  150   a - e  responded to. In one embodiment, the user events  150   a - e  are events scheduled by users requiring the owner of the user calendar to attend a meeting or complete a task during the user absence period. In certain embodiments, the calendar owner may define a user response rule  340  for high priority or highly sensitive or anticipated user events  150   a - e . In response to such high priority or highly sensitive or anticipated user events  150   a - e  the automated action may be to notify the calendar owner by way of some private communication medium such as an alternative email address, text message number, phone number, or the like. 
     The detection module  510  detects new user events  540 . In particular, the detection module  510  detects new user events  540  scheduled during a user absence period  120  with a due date during the user absence period  120 . In one embodiment, the detection module  510  watches in-coming user events  540 , if the user event  540  satisfies user event criteria  320  the detection module  510  calls the response module  520 . 
     The response module  520  interacts with the system  200  to respond to new user events  540 . Specifically, the response module  510  in certain embodiments responds with an automatic action defined by the owner of a user calendar  110  in the user response rules  340 . 
     The reporting module  530  in certain embodiments may interact with the owner of a user calendar  110  to report on the new user events  150   a - e  responded to. In particular, the reporting module  530  reports on the new user events  150   a - e  detected and responded to during a user absence period  120 . In one embodiment, the user reporting module  530  reports the total number of user events  150   a - e  detected during the user absence period  120 , including the user events  150   a - e  responded to and the user events  150   a - e  not responded to. In another embodiment, the reporting module  530  reports the user events  150   a - e  responded to and the automatic action response. 
     In one embodiment, the owner of a user calendar  110  may use the reporting module  530  to quickly determine the number and type of user events  150   a - e  responded to during the user absence period  120 . The reporting module  530  may be of value in determining how well the owner of a user calendar managed the user events  150   a - e  during the user absence period  120 . Also, the calendar owner may quickly determine if the user event criteria  320  or user respond rules  340  need to be adjusted before the next user absence period  120 . 
       FIG. 6  illustrates one embodiment of a method  600  for improved management of user events  150   a - e  scheduled during a user absence period  120 . The operations may be implemented by the executed operations of a computer program product. The method  600  begins  602  when a definition module  310  defines  604  a user absence period  120 . The definition module  310  defines a start date and end date for the user absence period  120 . In one embodiment, the user absence period  120  may be an off-set from the beginning of the year. Optionally, the user absence period may be input from a database, a website, a configuration file, XML file, text file or the like. 
     Next, the definition module  310  defines  606  the user event criteria  320 . In one embodiment, the definition module  310  defines the parameters for the user event criteria  320  to compare with already scheduled user events  150   a - e . In another embodiment, when a system  200  is watching for new user events  540  the monitoring module  230  compares new user events  540  against the user event criteria  320 . 
     Next, the definition module  310  defines  608  the user response rules  340 . The user response rules  340  define the actions to execute when the monitoring module  230  determines that a scheduled user event  150   a - e  in the storage repository  372  satisfies the user event criteria  320 . In another embodiment, the monitoring module  230  compares new user events  540  with the user event criteria  320  to determine if a match exists. The user response rules  340  comprise one of declining  342  a user event  150   a - e , accepting  344  a user event  150   a - e , delegating  346  a user event  150   a - e , notifying the distribution  348  of a user event  150   a - e , notifying the organizer  350  of a user event  150   a - e , and ignoring  352  a user event  150   a - e.    
     Optionally, the configuration module  220  may define  610  the buffer period  130  for user events  150   a - e . The buffer period  130  is a period of time before the user absence period  120  begins and/or after the user absence period  120  concludes. Advantageously, the user may set a different a user response  340  for a user event  150   a - e  that comes due during the buffer period  130  than for a user event  150   a - e  that comes due during the user absence period  120 . 
     Next, a determination  612  is made whether a storage repository  372  includes user events  150   a - e  coming due during the user absence period  120 . If so, the search module  370  retrieves the storage repository  372  for user events  150   a - e  that satisfy the user event criteria  320 . Next, the presentation module  360  optionally presents  614  the user events  150   a - e  on a graphical user interface  410 . Alternatively, the presentation module  360  may direct the user events  150   a - e  to a disk file, email message, printer or the like. In one embodiment, the search module  370  accepts wild card search options. 
     Next, in one embodiment, the presentation module  360  prompts  616  the owner of the user calendar  110  to manage the user event  150   a - e  scheduled during one or more user absence periods  120 . 
     Next, the owner of a user calendar  110  interacts with the user interface  362  to manage  618  the user events  150   a - e . In one embodiment, the user may accept  322  the automatic user response  464  associated with the user event  150   a - e . In another embodiment, the GUI  410  allows the owner of the user calendar  110  to modify the automatic user response. 
     Next, a determination  626  is made if more user events  150   a - e  were retrieved. If so, the method  600  returns to step  614 . If not, the method  600  ends  628 . 
     If the determination  612  is made that no user events  150   a - e  are currently scheduled during the user absence period  120 , the system  200  may automatically enter a monitoring mode. In monitoring mode, the detection module  510  detects  620  new user events  540  sent to the owner of the calendar that satisfies the predefined user event criteria  320 . The response module  520  responds  622  to the new user event  540  with an automatic user response associated with the user event  540 . Next, the system  200  determines if the user absence period  120  and buffer period  130  have concluded  624 . If so, the method  200  ends  628 . If not, the method  600  returns to step  620  to continue monitoring new user events  540  sent to this user that satisfy the predefined user event criteria  320 . 
     A user may configure one or more user absence periods  120  and buffer periods  130  as templates. Each template may define the user absence period  120 , the buffer period  130 , user event criteria  320  and user response rules  340 . In one embodiment, the user may define a vacation template, a business travel template, a do not disturb template or the like. It is of value in managing user events  150   a - e  to have the capability to define templates in advance, then the owner of a user calendar  110  only needs to enable the template for the respective user absence period  120 . 
       FIG. 7  illustrates a schematic block diagram of one embodiment of an electronic device suitable for executing computer program code for one or more embodiments of the system  200 . In certain embodiments, the electronic device is a computer. The device may constitute any type of electronic equipment, including a tablet computer, a PDA, and the like. 
     The device may include a processor or CPU  704 . The CPU  704  may be operably coupled to one or more memory devices  702 . The memory devices  702  may include a non-volatile storage device  706  such as a hard disk drive or CD ROM drive, a read-only memory (ROM)  708 , and a random access volatile memory (RAM)  710 . 
     The computer in general may also include one or more input devices  712  for receiving inputs from a user or from another device. The input devices  712  may include a keyboard, pointing device, touch screen, or other similar human input devices. Similarly, one or more output devices  714  may be provided within or may be accessible from the computer. The output devices  714  may include a display, speakers, or the like. A network port such as a network interface card  716  may be provided for connecting to a network. 
     Within an electronic device such as the computer, a system bus  718  may operably interconnect the CPU  704 , the memory devices  702 , the input devices  712 , the output devices  714 , the network card  716 , and one or more additional ports  720 . The ports may allow for connections with other resources or peripherals, such as printers, digital cameras, scanners, and the like. 
     The computer also includes a power management unit  722  in communication with one or more sensors  724 . The power management unit  722  automatically adjusts the power level to one or more subsystems of the computer. Of course, the subsystems may be defined in various manners. In the depicted embodiment, the CPU  704 , ROM  708 , and RAM  710  may comprise a processing subsystem. Non-volatile storage  706  such as disk drives, CD-ROM drives, DVD drives, and the like may comprise another subsystem. The input devices  712  and output devices  714  may also comprise separate subsystems. 
       FIG. 7  illustrates one embodiment of a system  700  for improved management of user events  150 - 154  scheduled during a user absence period  120 . The system  700  of  FIG. 7 , may execute the instructions of the configuration module  220  and monitoring module  230  for improved management of user events  150   a - e  scheduled during a user absence period  120 . The configuration module  220  and the monitoring module  230  may execute on the same enclosure or on different enclosures.