BACKGROUND OF THE INVENTION  
         [0001]    As the World Wide Web (the Web) has become useful in a wide variety of applications, it has found use in maintaining personal calendars on a variety of computers. These personal calendars are used to manage an individual&#39;s scheduling of events and activities as well as providing related useful function such as an alarm mechanism to alert the individual that he has something on his calendar that needs attention such as an eminent meeting, social engagement or spouses anniversary and the like.  
           [0002]    Such calendars are applications or routines of applications that run on a computer such as a PDA, Laptop, Desktop PC, or an attached server for example.  
           [0003]    [0003]FIG. 1 depicts the elements that make up a typical computer for use in presenting and maintaining a prior art calendar application. The computer  100  consists of a Base Computer  101  which comprises a processor  106 , storage media such as a magnetic disk  107  and a high speed volatile main memory  105 . An operating system and application programs  111  reside on the storage media  107  and are paged into main memory  105  as needed for computations performed by the processor  106 . The Base computer may include optional peripheral devices including a video display  102 , a printer or scanner  110 , a keyboard  104 , a pointing device (mouse)  103  and a connection  108  to a network  109 . In a calendaring environment, a user will interact with a local calendar by use of a keyboard  104  and mouse  103  in conjunction with the display of calendar information on the display  102  under control of a calendar program  112 . The calendar program will then interact with remote calendars by way of the network  109 .  
           [0004]    In FIG. 2 an example prior art Internet system is shown. A user at client 1  201  maintains a calendar on his system. This user&#39;s calendar system at client  1   201  can interact with clients 2-4  202 - 204  by way of a client server computer  206 . Calendaring applications  112  may be provided by each client  201 - 205  and/or the client server  206  or some remote server  208  by way of the network  207 . The user&#39;s calendar system at client 1  201  can interact with a remote calendar system at client 5  205  by way of the Internet network  207 .  
           [0005]    Calendar applications are often part of Web-enabled collaboration applications such as the LOTUS NOTES application available from International Business Machines. The Web provides a platform to permit many computers to view and share calendars. This provides many useful opportunities. With a Web based calendar system, a first user can permit a second user to see the first user&#39;s calendar. This is advantageous, for instance, in a business application where a manager may need to know the availability of his employees, a group of employees may need to coordinate with each other or a person may need to contact another person but needs to know when he is available (not on vacation, traveling, in a meeting etc.)  
           [0006]    Scheduling a common time for members of a team to get together is a significant use of the calendering system. Individuals can make their calendar readable to a scheduling system but not allow individuals to actually see the calendar. Thus, a scheduling application can provide a user with a depiction of what times are available for an individual. Applications such as LOTUS NOTES provide means for an individual to list a plurality of other individuals and ask the application to find time slots that are available for all of the listed other individuals. The application then accesses the calendars of the other individuals to retrieve empty time slots. Finally the application combines the time slots available for each of the other individuals in combination for display to the individual requesting the meeting.  
           [0007]    U.S. Pat. No. 5,050,077 (Vincent) assigned to the present assignee and incorporated herein by reference teaches a method for scheduling meetings. In this patent, a prompting screen is presented to a meeting scheduler with blanks for keying in desired times, dates, and prospective invitees for a meeting. In response to the schedulers keying to this screen, a comparison is made with the calendar of events for each prospective invitee. As a result of the non-availability of a meeting time which complies with the desired times, dates and invitees, certain of these factors are automatically altered or “relaxed” in order to achieve an acceptable meeting time. An option list of meeting times is then presented to the scheduler for selection of a meeting time. Based upon the selection of the scheduler, a meeting notification screen is then constructed for transmittal to each invitee.  
           [0008]    The Vincent patent example of prior art as is typical, doesn&#39;t facilitate a invitee to interact with the scheduler. The scheduling is performed based on the attendee&#39;s calendar information.  
         SUMMARY OF THE INVENTION  
         [0009]    The present invention teaches a calendaring system wherein a meeting requester interacts with online invitees and calendars of off-line invitees.  
           [0010]    The meeting scheduler is presented a GUI interface to the calendaring system. The scheduler provides various criteria for the meeting including an invitee list and attributes of the invitee such as whether he is required for the meeting or a quorum of a minimum number of invitees to successfully schedule the meeting. The scheduler also provides criteria such as a date or date range, a time or time range and the like for the meeting to be scheduled in.  
           [0011]    The calendaring system then negotiates a schedule with invitees who are online interactively. This may be done real time by instant messaging techniques or it may be done in background by e-mail communication. The calendaring system has access to invitee calendars and by using a deadline algorithm, will opt for the invitee calendar when an interactive response is not forthcoming.  
           [0012]    In a preferred environment, invitees are contacted by an active agent via instant messaging requesting free time and optional information such as preferences. The invitee responds to the active agent which accumulates responses from invitees. The active agent will query calendars for invitees and use the calendar information when an invitee doesn&#39;t respond in a predetermined time. The active agent, after accumulating first pass meeting information, may optionally send a second instant message to invitees requesting availability preferences when there are conflicts with availability. Finally, the active agent sends meeting notices to invitees requesting confirmation.  
           [0013]    It is an object of the present invention to provide a meeting scheduler application that negotiates scheduling a meeting interactively with online invitees.  
           [0014]    It is a further object of the invention to augment interactive scheduling with invitee calendar information when an invitee is not responsive to interactive negotiation.  
           [0015]    It is yet another object of the present invention to send meeting notices to invitees when the interactive negotiation is successful.  
           [0016]    It is another object of the present invention to provide GUI facilities for the scheduler to interact with the meeting scheduler application to provide meeting criteria for the interactive meeting scheduler to use to schedule meetings.  
           [0017]    These and other objects will be apparent to one skilled in the art from the following detailed description of the invention taken in conjunction with the accompanying drawings in which: 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS:  
       [0018]    [0018]FIG. 1 is a diagram depicting an example prior art computer system;  
         [0019]    [0019]FIG. 2 is a diagram depicting a prior art network interconnecting computer systems;  
         [0020]    [0020]FIG. 3 depicts an example input display for requesting a meeting;  
         [0021]    [0021]FIG. 4 depicts another view of the input display for requesting a meeting;  
         [0022]    [0022]FIG. 5 depicts a mail and calendar display for alerting an invitee of a meeting request;  
         [0023]    [0023]FIG. 6 is a view of a screen for entering an invitee&#39;s availability for a meeting to be scheduled;  
         [0024]    [0024]FIG. 7 is a view of a mail and calendar display for alerting an invitee of a meeting schedule requiring confirmation;  
         [0025]    [0025]FIG. 8 is a high level flow of an embodiment of the present invention;  
         [0026]    [0026]FIG. 9 is a flow of interactively creating the meeting criteria;  
         [0027]    [0027]FIG. 10 is a flow of interactively negotiating a meeting schedule;  
         [0028]    [0028]FIG. 11 is a flow of notifying invitees of a scheduled meeting; and  
         [0029]    [0029]FIG. 12 depicts the method of providing multiple modes for interacting with invitee. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0030]    The present invention provides a method for interactively scheduling meetings. A program that acts as a human (active agent) interacts with invitees on behalf of a meeting requester.  
         [0031]    In a preferred embodiment, users are attached to the World Wide Web (the Web). A program for scheduling meetings is a web service and comprises a program running on a server on behalf of clients (users). The users may have conventional calendars on their system such as the LOTUS NOTES calendar from IBM. When a user wants to schedule a meeting (meeting requester), he accesses the scheduling program and is presented a GUI display for entering meeting criteria. The practice of the present invention is not limited to the Web. A peer to peer environment or groups of peers (grid) would provide interactive meeting scheduling using the present invention except that the active agent performing the scheduling function would be provided by a peer computer rather than a client server.  
         [0032]    [0032]FIG. 3 shows an example screen for scheduling a meeting with two selectable tabs i.e. Basics  301  and Invitees  302 .  
         [0033]    The Basics tab  301  when selected displays fields for setting up meeting criteria. In the example, a name of the meeting (Dept. Meeting) is entered by the meeting requester. As used herein, the meeting requester is the person requesting the meeting. In another preferred embodiment, a description of the purpose of the meeting (not shown) and other information to be provided to the invitees can be entered into the screen in addition to the name of the meeting.  
         [0034]    The proposed time frame (starting time  303 ) of the meeting is provided. In the example, a best time  304  criteria is selected. This option allows the time frame to be today  305 , this week  306  or this month  307 . In the example, today  305  is selected. Other options include starting time now  309  indicating the meeting is immediate, and schedule  310 . Schedule  310  option allows the requester to provide a specific time and/or date for the meeting.  
         [0035]    The required duration  313  of the meeting is entered by the requester. This is the amount of time to be reserved for the meeting. Other such information might be a time range for the meeting or a duration for invitee such that each invitee can be scheduled for a predefined period or duration of the meeting.  
         [0036]    A quorum criteria  308  provides a mechanism for the requester to indicate the number of people who must be available for the meeting to be scheduled. In the example, a percent is selected of 80%. Other quorum mechanisms could be selected such as a number of people. In one embodiment, the quorum mechanism provides for types of invitees such as selecting any 2 of a “must attend” group, 50% of general invitee list and the like.  
         [0037]    Once the required Basics  310  information is entered, and the user is satisfied with the information, he can select the invitees tab  302 . If he enters O.K.  314  without identifying invitees, he will be prompted to go to the invitee selection screen.  
         [0038]    [0038]FIG. 4 depicts an example invitees display of a preferred embodiment. This display permits the user to list attendees (invitees) by name ( 404 ) and attendance criteria such as must attend  402  indication. In the example, all named invitees except the invitee named “Test User”  403  are required for the meeting, thus the must attend field is selected for all but the Test User&#39;s must attend field  404 .  
         [0039]    In other embodiments, invitee methods are used such as selecting invitees from a master list, entering the invitee Web address instead of their name, entering a group name which indirectly provides a list of names and the like.  
         [0040]    In another embodiment, another invitee criteria is a FYI (for your information) indicator. The FYI indicator indicates to the scheduler application to send to the invitee a notice of the final meeting but not to negotiate schedule with the invitee.  
         [0041]    In one embodiment, each invitee has an indicator indicating whether he can attend by Phone, Instant message, Video conference or in person.  
         [0042]    Once the Basics  301  and invitees  302  fields are completed, the user hits the O.K. Button  314  which submits the request to the scheduler agent.  
         [0043]    The scheduling agent sends an alert message  506  to the invitees. The alert preferably sets an indicator on the user&#39;s calendering application  500 , alerting him that he has a “to-do List” entry  506  and graphically indicates to the user information about the meeting request such as the meeting requester&#39;s name and the title of the meeting  506 . In another embodiment, the interaction is by way of Instant Messages between the Scheduler Agent and the invitee. In another embodiment, the interaction is by way of e-mail messages. In another embodiment, the interaction is by way of a client application for scheduling meetings.  
         [0044]    The agent monitors the invitees that are not online and sends the alert notification  506  when they become available. In a preferred embodiment, the agent has access to invitee calendar systems and can elect to use the calendar for those applications that aren&#39;t responsive in a predetermined amount of time. The use of calendar information to augment interactive negotiation is in one embodiment selected by the meeting requester, in another is part of the meeting negotiation algorithm in the agent program and in another embodiment is preselected by an invitee.  
         [0045]    In the preferred embodiment, the invitee is presented a display  600  which he must respond to. The display may be a graphical depiction of time which the user can use to indicate his availability. In FIG. 6, the invitee has selected 2:00 PM to 3:00 PM  602  and 3:30 PM to 4:00 PM  603  as available times. In another embodiment, the user can indicate levels of preference for the free time, 10 being totally available and 1 being possibly available. In yet another embodiment, the invitee includes a message to the meeting scheduler such as “I may be taking vacation that day”.  
         [0046]    When the response is ready, the invitee clicks the O.K. Button which sends the response to the scheduling agent.  
         [0047]    The scheduling agent waits a predetermined amount of time for responses. At that time, if the critical invitees have responded (critical invitees is determined by the meeting requester criteria of quorum or other indicators), the scheduler agent sends the meeting notice  701  to the invitees and requester. In another embodiment, the agent sends the meeting notice to the requester  701  for approval before sending the notice to invitees.  
         [0048]    In a preferred embodiment, the request sent to the invitees requires confirmation  701 . The confirmation is returned to the scheduling agent. The scheduling agent presents the invitee list to the meeting scheduler indicating confirmation status as well as invitee status where the invitee status includes that he will not attend or that he may attend indicators.  
         [0049]    In one embodiment, the meeting is added to the attendee&#39;s calendar only when he confirms his attendance, in another embodiment, the invitee can elect to add the meeting notice to the calendar, in another embodiment, the meeting notice is added to the calendar independent of the attendee&#39;s confirmation.  
         [0050]    In the preferred embodiment, the scheduler agent provides the meeting requester with progress status of the negotiations with invitees while the negotiations are in progress. In one embodiment, the meeting requester can interact with the meeting negotiations by modifying the meeting criteria screen, i.e. add or delete invitees, change date/time of suggested meeting etc.  
         [0051]    [0051]FIG. 8 depicts the high level flow of the present invention. A meeting requester interacts with the scheduler agent and creates the criteria  801  for the proposed meeting. The scheduling agent preferably operating at a client server, negotiates a schedule  802  with invitees interactively using criteria supplied by the meeting requester. The scheduling agent notifies invitees  803  of the negotiated meeting.  
         [0052]    A preferred embodiment of the meeting criteria step  801  is depicted in FIG. 9. The Meeting Chairperson (requester) enters meeting constraints  901  in an application client. This includes the list of invitees, quorum threshold, required invitees of the examples in FIGS. 3 and 4. The application client might be part of a calendering application, an instant messaging application or a separate application all together for example. The application client sends the request to an agent hosting server  902 . The agent hosting server  902  receives the information identifying the meeting invitees and the meeting criteria from the meeting requester. The agent hosting server creates a new scheduler agent and initializes it with the requested meeting constraints (criteria)  903 .  
         [0053]    A preferred embodiment of the negotiation of the meeting schedule is depicted in FIG. 10. The scheduler agent initiates the negotiation  801  by requesting free time information from each invitee on the list  1010  using a query generator. The agent tests if an invitee is on line  1001 , if it is not, it returns that indication to a meeting constraints monitor  1005 . The monitor  1005  will cause the agent to continue to attempt to negotiate with the invitee until the meeting constraints are satisfied. If a predefined time limit is surpassed, the monitor  1005  will take program dependent action such as inform the meeting requester that the meeting cannot be scheduled because of the meeting constraints, or the meeting is scheduled with the meeting constraints not being met.  
         [0054]    When the agent detects the invitee is online  1001 , the scheduler agent determines if it has requested free time of the invitee previously  1002 , if not, the agent contacts an application client on the invitee&#39;s computer to request free time information  1006 . In the preferred embodiment, the invitee is presented an information screen  500  including a to-do list  506  indicator. The indicator in one embodiment includes information about the meeting.  
         [0055]    The invitee in one embodiment clicks with a mouse controlled cursor on the to-do list icon  506  and is presented with a screen requesting information about the invitee&#39;s availability  600 . When the invitee has completed the information, the application client on the invitee&#39;s computer returns the information to the scheduler agent&#39;s meeting constraints monitor  1005 .  
         [0056]    If the free time has already been requested for the invitee  1002 , a test is performed to see if the user response is available  1003 . If it is  1007 , the response information is stored and an indication that it has been received is provided to the monitor  1005 . The response information includes indications of the invitee&#39;s free time.  
         [0057]    If the invitee hasn&#39;t responded  1003 , the agent tests to see if the response is overdue  1004 . If the response is overdue, the agent sends an instant message (alternatively an e-mail) reminding the user to respond  1006 . A second time threshold is used by the monitor  1005  to determine that the meeting scheduler can no longer wait for the response from invitees. In this case, the scheduler must according to meeting criteria, either schedule the meeting based on the responses received or notify the meeting requester that the meeting can not be scheduled and optionally provide the current statistics of the negotiation.  
         [0058]    When the meeting constraints are satisfied  1005 , the agent proceeds to notify invitees step  803 . A determining mechanism in the scheduler agent determines a meeting schedule based on invitee availability and a notification generator in the scheduler agent notifies the invitee of the meeting schedule. The agent tests if the invitee is online  1101 . If not, an e-mail is sent to the invitee requesting confirmation of attendance  1106  unless an e-mail has already been sent  1105 . If the invitee is online  1101 , a confirmation request is sent to him  1107  unless a confirmation has already been requested  1102 .  
         [0059]    If the invitee has responded to a confirmation request  1103 , the confirmation information is stored  1108  so it can be provided to the meeting requester. If the user doesn&#39;t respond within a predetermined time  1104 , a reminder is sent to him requesting him to respond  1109 . When a time criteria for confirming the meeting attendance has expired the agent execution terminates. This time is the meeting schedule time in one embodiment or a predetermined earlier time specified by the user in another embodiment. In another embodiment, when the quorum of invitees has responded, the agent execution terminates.  
         [0060]    [0060]FIG. 12 depicts an example mechanism for selecting alternative modes of communication with the invitee. The agent waits a predetermined amount of time for a response from the invitee to an interactive message sent to the invitee  1201 . When the time “A” is exceeded  1202 , the agent accesses a communication table to determine if another mode of communication has been provided  1203 . In the example Communication table  1204 , there are 3 fields. A priority, time to respond, and call mode field. In the example  1204 , the highest priority message  1205  is so indicated by a “1”, for this entry, a time to respond is selected of 1 day 20 hours and 00 minutes and becomes time “A”, after which an instant message is sent to the invitee. If no response is received when that time (“A”) elapses  1202 , the next entry  1206  provides for creating an automated telephone message  1210  to be sent to the invitee  1213 . Other mechanisms could be employed such as permitting multiple mode messages to be sent concurrently. Such methods would be obvious to one skilled in the art in practicing the present invention.  
         [0061]    While the preferred embodiment of the invention has been illustrated and described herein, it is to be understood that the invention is not limited to the precise construction herein disclosed, and the right is reserved to all changes and modifications coming within the scope of the invention as defined in the appended claims.
A system, method and program product for interactively scheduling and negotiating meetings wherein an active agent program accepts meeting criteria from a meeting requester and interacts with invitees to resolve availability according to the meeting criteria. The agent transmits the negotiated meeting schedule to invitees and optionally requires confirmation from invitees.