WO2001037541A2 - System and method for distributed scheduling - Google Patents

System and method for distributed scheduling Download PDF

Info

Publication number
WO2001037541A2
WO2001037541A2 PCT/US2000/041903 US0041903W WO0137541A2 WO 2001037541 A2 WO2001037541 A2 WO 2001037541A2 US 0041903 W US0041903 W US 0041903W WO 0137541 A2 WO0137541 A2 WO 0137541A2
Authority
WO
WIPO (PCT)
Prior art keywords
meeting
scheduling
agent
information
calendar
Prior art date
Application number
PCT/US2000/041903
Other languages
French (fr)
Other versions
WO2001037541A3 (en
Inventor
Hassan Alam
Zeeshan Khan
Timotius Tjahjadi
Hanyen Widjaja
Original Assignee
Bcl Computers
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bcl Computers filed Critical Bcl Computers
Publication of WO2001037541A2 publication Critical patent/WO2001037541A2/en
Publication of WO2001037541A3 publication Critical patent/WO2001037541A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting

Definitions

  • the present invention relates generally to a system and method for distributed scheduling. More specifically, a system and method for distributed scheduling using an adaptive personal assistant system are disclosed.
  • Outlook such as Palm Pilots from 3COM Corp. and Rex Pro Organizers from Franklin.
  • PDAs personal digital assistants
  • These systems typically allow the end user to input, store, and access contact information for end users and organizations in a contacts folder and/or address list, appointments and meetings in a calendar or scheduler, tasks in a task list, as well as notes, for example.
  • the end user may attach the information as text in an e-mail to a recipient or, if the recipient has a same or compatible organization system, the end user may attach the particular file, such as a contact file or a meeting file, in an e-mail to a recipient.
  • the end user may forward or "beam" such information to a recipient using infrared signals.
  • infrared or wireless capability is provided, for example, by the Palm V from 3Com Corp.
  • the meeting requester may first examine his personal calendar for available times and dates as well as check for availability of resources such as conference rooms, video conferencing equipment, audio/visual presentation equipment, for example. The meeting requester may then call, e-mail, or otherwise contact each of the invitees to the meeting and request a response regarding each invitee's availability.
  • Microsoft OutlookTM allows the end user to send a meeting request message to other users of Microsoft OutlookTM, each of whom may then accept the request, tentatively accept the request, or reject the request, for example. If the invitee accepts the request, the Microsoft OutlookTM then automatically inserts the meeting into that invitee's calendar. However, such automatic insertion only occurs if the invitee also uses Microsoft OutlookTM.
  • Other examples of systems that facilitate the scheduling or setting up of a meeting for 2 or more participants include Meeting MakerTM which requires synchronization of the participants' calendars.
  • each of these conventional systems that facilitate the scheduling or setting up of a meeting between two or more participants, i.e., between the meeting requester and the meeting invitees, requires synchronized calendars, i.e., each participant utilizes the same electronic organization system and shares the same database.
  • Such conventional systems typically contain one main calendar that is shared by all. In other words, the main calendar includes every participant's personal calendar such that every participant's personal calendar is synchronized with the main calendar.
  • Such conventional systems thus may not provide the level of privacy desired by each participant.
  • such conventional systems do not automatically coordinate the scheduling of the meeting, but rather, generally still require the meeting requester to coordinate the availability of the invitees or participants.
  • a scheduling system that does not require synchronized calendars for the participants. It is also desirable to provide a system that optionally automatically coordinates the scheduling of the meeting for the meeting requester. Such a scheduling system preferably also protects the privacy of each individual participant.
  • a system and method for distributed scheduling using an adaptive personal assistant system are disclosed. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication lines.
  • the adaptive personal assistant system generally comprises a communications interface, a personal information manager, a meeting scheduler, a preferences manager, and a natural language e-mail processor.
  • the adaptive personal assistant system provides a distributed multi- platform network-based solution for personal task and appointment scheduling.
  • the adaptive personal assistant system allows users on the network, such as a corporate network or the Internet, who may be using different appointment calendar software and divergent email applications, to converge on mutually acceptable appointment times.
  • a distributed network-based automatic scheduling system for facilitating scheduling of meetings having meeting invitees generally comprises a communications interface agent for generating and transmitting communications and for receiving communications, an information manager including a scheduling calendar containing scheduling information, and a meeting scheduling agent for implementing a scheduling method to dynamically converge on a meeting time based upon scheduling information of the information manager and based upon scheduling information contained in communications received by the communications manager.
  • the communications interface agent Upon initiation of a meeting scheduling request, the communications interface agent generates communications to meeting invitees requesting scheduling information from each of the meeting invitees.
  • the system may also include a preferences manager in communication with the meeting scheduling agent that dynamically manages preferences depending on end user's selections and/or a natural language processor in communication with the communications interface agent.
  • the natural language processor may include a natural language electronic mail processor agent and a natural language command processor agent.
  • the natural language electronic mail processor agent typically processes meeting request and meeting scheduling information communications received by the communications interface agent.
  • the meeting scheduling agent processes received communications from meeting invitees upon which the meeting scheduling agent bases the dynamic meeting time convergence by the scheduling method.
  • the meeting scheduling agent may include a scheduler agent for implementing the meeting scheduling, a meeting attendee information manager for managing information relating to the meeting invitees, and a preferences manager agent for managing preferences information.
  • the information manager may includes a calendar display manager and a calendar prompt manager for generating meeting reminders, a calendar template processor for processing calendar templates, and a calendar synchronization tool for synchronizing the scheduling calendar.
  • the calendar template processor is preferably configured to process a calendar template containing one or more fields such as required invitee, optional invitee, invitee requirements, meeting purpose, meeting duration, meeting location, meeting time requirements, meeting date requirements, meeting resources requirements, and/or text message fields.
  • a computer network-based distributed automatic meeting scheduling process for facilitating scheduling of meetings having meeting invitees generally comprises receiving a meeting scheduling request containing meeting invitee information, generating and transmitting a meeting request communication to each meeting invitee requesting scheduling information via a communications interface agent, receiving and processing a meeting request response communication containing scheduling information from one or more meeting invitees, and determining a meeting time by the meeting scheduling agent by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication.
  • the process may also include, prior to generating and transmitting, selecting preferred meeting time slots by a meeting scheduling agent according to a scheduling information in a scheduling calendar of an information manager.
  • the process may include generating and transmitting a meeting time communication that communicates the meeting time as determined by the meeting scheduling agent.
  • the meeting time communication optionally includes a request for the determined meeting time to be blocked.
  • the process If the meeting invitees transmits at least one meeting time blocking communication containing a meeting time not blocked message, the process returns to the generating and transmitting meeting request communication. Alternatively, if a requisite set of meeting time blocked communications are received, the process transmits a meeting time confirmed message to each meeting invitee.
  • a computer program product that facilitates scheduling of meetings via a network-based distributed automatic meeting scheduling process generally comprises computer code that receives a meeting scheduling request, the request containing meeting invitee information, computer code that generates and transmits a meeting request communication to each meeting invitee to request scheduling information from each meeting invitee, computer code that receives and processes a meeting request response communication containing scheduling information from at least one of the meeting invitees, computer code that determines a meeting time by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication, and a computer readable medium that stores the computer codes.
  • FIG. 1 is a block diagram of an adaptive personal assistant system
  • FIG. 2 is a block diagram illustrating the components of the adaptive personal assistant system of FIG. 1 in more detail;
  • FIG. 3 is a block diagram illustrating the overall interconnection among the meeting requester and the meeting invitees over a network
  • FIG. 4 is a sample meeting request form or template
  • FIGS. 5A and 5B are flowcharts illustrating the process of scheduling a meeting using the adaptive personal assistant system shown in FIGS. 1 and 2;
  • FIG. 6 illustrates an example of a computer system that can be utilized with the various embodiments of method and processing described herein; and FIG. 7 illustrates a system block diagram of the computer system of FIG. 6.
  • FIG. 1 is a block diagram of an adaptive personal assistant or an electronic organization system 100 and FIG. 2 is a block diagram illustrating certain components of the adaptive personal assistant system 100 grouped into four functional groups.
  • the adaptive personal assistant system 100 is an intelligent "scheduling secretary" to which each user can delegate scheduling tasks.
  • the adaptive personal assistant system 100 provides a distributed multi-platform network-based solution for personal task and appointment scheduling.
  • the adaptive personal assistant system 100 allows users on the network, such as a corporate network or the Internet, who may have different appointment calendar software and divergent e-mail applications, to converge on mutually acceptable appointment times.
  • the adaptive personal assistant system 100 generally comprises a communications interface agent 102, a personal information manager agent 104 that includes an appointment calendar, a meeting scheduling agent 106, a preferences manager agent 108, and a natural language processor agent 110.
  • a communications interface agent 102 generally comprises a communications interface agent 102, a personal information manager agent 104 that includes an appointment calendar, a meeting scheduling agent 106, a preferences manager agent 108, and a natural language processor agent 110.
  • a meeting scheduling agent of the adaptive personal assistant system 100 may be utilized to be provided by a network ASP (application service provider).
  • a meeting scheduling system may be resident on a server device or computer in communication with a network such as the Internet. The meeting scheduling system would then communicate with the meeting requester and each of the invitees
  • the communications interface agent 102 serves as an interface between the end user and the adaptive personal assistant system 100 as well as an interface between the adaptive personal assistant system 100 and other adaptive personal assistant systems of meeting invitees, different electronic organization systems of meeting invitees, and/or the meeting invitees themselves.
  • the communications interface agent 102 is preferably based on open-protocol Internet e-mail.
  • the communications interface agent 102 preferably supports both encrypted mail such that third-parties cannot access confidential meeting information and unencrypted user-readable mail for recipients who do not have the adaptive personal assistant system 100 and/or whose system does not support encryption.
  • the communications interface agent 102 may utilize the natural language processor agent 110.
  • the personal information manager agent 104 includes a calendar facilitates the end user in keeping track of daily tasks and appointments.
  • the personal information manager agent 104 is optionally integrated with the network, such as the Internet, to allow the end user to retrieve different functionally grouped calendar templates to set up the end user's appointments in the calendar.
  • the calendar is integrated with an open- API (application program interface) to integrate calendar appointment templates that may be provided by various services groups.
  • these calendar templates may be defined for different life-styles with different calendaring needs and/or for different types of or purposes for appointments being scheduled.
  • a schedule template may be provided by a fitness club for its members to schedule various classes or sessions with personal trainers
  • a game-player template may be available for scheduling a multi-player on-line game
  • an on-line chat template may be available for scheduling a discussion of participants in a chat room.
  • an investment club can provide reminders to its members to send in its regular payments.
  • the calendar of the personal information manager agent 104 can optionally import and export data from other server-centric meeting management systems. Further, the calendar is preferably flexible in terms of its deployment platform. For example, the calendar may be deployable on desktop PCs or Internet servers and accessible at the desktop, over the Internet, over the phone, and/or from handheld computers.
  • the personal information manager agent 104 may further include a calendar prompt manager that reminds the end user of a scheduled meeting by prompting the end user at an appropriate time, such as a reminder message at a pre-determined period of time prior to the scheduled meeting or event.
  • the calendar prompt manager may generate severity- or priority- based prompts or reminders via multiple modes as selected by the end user.
  • the prompts or reminders may be delivered via computer based popup-windows, through a voice- reminder, by a page sent to a pager, and/or a telephone call.
  • the personal information manager agent 104 may include numerous other components in addition to the calendar.
  • the personal information manager agent 104 may include an address book or a contacts folder containing the address and contact information for various end users and organizations, a task list, and/or notes, for example.
  • the meeting scheduling agent 106 schedule meetings by coordinating among the meeting invitees and scheduling a time that all or certain sub-group of the invitees are available to meet.
  • the meeting scheduling agent 106 facilitates the scheduling of a meeting of any number of end users.
  • the automated scheduling function of the meeting scheduling agent 106 greatly reduces the cumbersome and time-consuming process of setting up meeting through multiple e-mail exchanges and/or telephone-conversations, particularly with larger groups of end users.
  • the meeting scheduling agent 106 works with the communications interface agent 102 to interface with other meeting invitees or their organization systems and with the calendar to schedule meetings.
  • the meeting scheduling agent 106 electronically interacts with other end users preferably similar to how the end user may interact with other end users via intelligible e- mail by sending invitations and responses that other end users can understand and to which other end users can respond.
  • the meeting scheduling agent 106 works with the calendar in a secure and distributed manner to communicate with other meeting invitees. In other words, the meeting scheduling agent 106 reveals only small portions of the schedule contained in the calendar through e-mails so that other attendees can select times they would prefer to attend the requested meeting.
  • the meeting scheduling agent 106 can adjust the information it exchanges depending on the security and privacy needs of its end user and/or settings of the end user system. For example, when the other party uses a different adaptive personal assistant system, only certain predetermined information is transmitted.
  • the meeting scheduling agent 106 can also adjust the number of free-slots given depending on the level of privacy for the exchanges the end user desires.
  • the end user can instruct the meeting scheduling agent 106 to only respond to requests from end users he knows, e.g., those in his address book or contacts list, thus not giving up private information to potentially malicious agents.
  • the meeting scheduling agent 106 includes a scheduler agent that implements a scheduling algorithm for scheduling the requested meeting. After the end user submits or inputs a meeting request with a list of invitees or other attendees, the scheduling algorithm checks for free times given the range of free-times that are available in the end user's calendar. The scheduling algorithm then interfaces with the preferences manager agent 108 (described below) to choose a limited number of free times that will be used to send out invitations. The scheduling algorithm uses responses from the other invitees to converge on a free time when all or certain of the invitees are available. In particular, the scheduling algorithm utilizes an incremental free-busy checking algorithm to dynamically converge on a mutually acceptable meeting time.
  • the meeting scheduling agent 106 optionally classifies meetings into different classes such as different online meetings, e.g., gaming sessions, online chat sessions, and offline meetings such as lunch meeting, dinner meeting, other work-meeting, party, etc.
  • the meeting scheduling agent 106 may pre-assign time-ranges for such meetings and makes the task of scheduling any such meeting significantly easier.
  • the meeting scheduling agent 106 provides default time-ranges for such meetings, for example, all meetings for 45 minutes or more that fall within the time period of 11 : 15 AM to 1 :15 PM are defined as lunch meetings. Such default ranges may be modified by the end user as desired.
  • the preferences manager agent 108 manages the preferences of the end user and is preferably adaptive.
  • the adaptive preferences manager agent 108 takes into account user's selections and dynamically updates the preferences accordingly. For example, if the end user usually requests for meetings in the morning, the preferences manager agent 108 will dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will favor morning meetings and attempt to schedule meetings in the mornings. Alternatively, if the end user usually asks for meetings in the afternoon, the preferences manager agent 108 will dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will favor afternoon meetings and attempt to schedule meetings in the afternoons.
  • the preferences manager agent 108 may dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will attempt to schedule lunch meetings when any, all, or a threshold number or percentage of the meeting invitees are those certain end users.
  • the natural language processor agent 110 is preferably provided and may comprise a natural language e-mail processor agent 110A and a natural language command processor agent HOB.
  • the natural language e-mail processor agent 110A facilitates the processing of natural language e-mails requesting a meeting, such as may be send by a meeting requester who does not have or use the personal assistant system 100.
  • the meeting scheduling agent 106 is preferably integrated with the natural language e-mail processor agent 110A that scans incoming e-mails for meeting-related requests. For example, if a meeting requester sends an e-mail containing the phrase "Let's get together over lunch," the natural language e-mail processor agent 110A will determine that the e-mail is an invitation for a meeting and process it accordingly and forwarding the processed request to the meeting scheduling agent 106.
  • the natural language command processor agent 1 10B is preferably linked with the calendar of the personal information manager agent 104 and the meeting scheduling agent 106 such that the natural language command processor agent HOB can control the calendar and the meeting scheduling agent 106.
  • the end user may speak or type commands such as "I want to chat with my AOL buddies this evening," or "Cancel our weekly team meeting.”
  • the natural language e-mail processor agent 110 will recognize the request as one for the meeting scheduling agent 106, process the request accordingly, and forward the processed request to the meeting scheduling agent 106.
  • the components of the adaptive personal assistant system 100 can be generally grouped into four function groups.
  • the groups include a calendar function group, a meeting scheduling function group that handles most of the scheduling tasks, an e-mail handling function group, and the natural language command processor agent.
  • the calendar function group generally includes a platform-specific calendar display manager, the calendar prompt manager, a calendar template processor, and an application specific calendar synchronization tool.
  • the meeting scheduling function group generally includes the meeting scheduling agent, the scheduler agent that implements the scheduling algorithm, an attendee information manager for managing information relation to attendees or invitees, and the preferences manager agent.
  • the e-mail handling function group generally includes an encrypted e-mail processor, the natural language e-mail processor agent
  • the natural language command processor agent 110B interfaces with the calendar grouping and the meeting scheduling grouping in order to control the calendar and the components in the meeting scheduling grouping.
  • the different components of the adaptive personal assistant system 100 can be available on different platforms and with different synchronization options.
  • the calendar and the meeting scheduling agent 106 may be available for hand held devices, for the web, and/or as a desktop application.
  • the state information can be synchronized amongst the different platforms as well as with other off-the-shelf calendar applications.
  • FIG. 3 is a block diagram illustrating the overall interconnection among the meeting requester and the meeting invitees over a network.
  • the meeting requester and each of the three invitees are in communication with the Internet such that messages such as e-mail messages may be transmitted between the meeting requester and the invitees via a network such as the Internet.
  • One of the invitees is required and two of the invitees are optional. Required and optional invitees are described below with reference to FIG. 4.
  • FIG. 4 is a sample meeting request form or template.
  • the meeting requester may specify the purpose of the meeting (e.g., on-line chat in a chatroom), the requirements regarding the date and time of the requested meeting (e.g., after 7PM but before 1 1PM, on Tuesday, Wednesday, or Thursday of this week), the duration of the meeting (e.g., 30 minutes or a range such as between 1 and 3 hours), the location of the meeting (e.g., on-line or at the company headquarters if off-line), required resources of the meeting (e.g., conference room with teleconferencing capabilities, overhead projector, etc.), required invitees (those who much be available to attend the meeting), optional invitees (those who are invited but need not be available in order for the meeting to be scheduled), other invitee requirements (e.g., minimum number of invitees who can attend), and a free text message.
  • the purpose of the meeting e.g., on-line chat in a chatroom
  • the meeting requester may additionally or alternatively request that the adaptive personal assistant system 100 schedule a meeting and then invite certain or all of the optional invitees.
  • the optional invitees would simply be told the information regarding a scheduled meeting rather than receiving and processing numerous of e-mail messages that may not have an impact on the scheduling of the meeting.
  • FIGS. 5A and 5B are flowcharts illustrating the process 300 of scheduling a meeting using the adaptive personal assistant system shown in FIGS. 1 and 2. It is noted that although the process illustrated is one where the end user enters commands in natural language, a similar process would be executed by the adaptive personal assistant system 100 without the natural language processing when the end user enters commands utilizing the calendar templates, for example, of the adaptive personal assistant system 100.
  • the end user enters a natural language command, such as "I want to meet John next week.”
  • the natural language command processor agent determines that the command is a meeting invitation request, processes the command as such, and forwards the processed command to the meeting scheduling agent.
  • the natural language command processor agent sets and forwards the parameters such as meeting-time of "next week” and attendee of "John.” This is done through natural language parsing and semantic analysis techniques.
  • the natural language parsing is described in International Publication Number WO
  • the attendee information manager (as shown in FIG. 2) of the meeting scheduling agent determines identification information of the attendees, i.e., the identification information of John. Such identification information may include a unique identification and/or the email information of each attendee.
  • the meeting scheduling agent utilizes the calendar to determine the available time slots for the meeting-time, i.e., next week, and the preferences manager is called to select the most preferred time slots.
  • the meeting scheduling agent sends outbound emails to attendees utilizing the outbound email configurator and POP-Email interface of the communication interface agent to send out both an encrypted and an intelligible email containing the meeting request to each invited attendee, including the selected free time slots.
  • the attendee's attendee information specified that the attendee has the adaptive personal assistant system based on a previous interaction then only the encrypted version would be sent.
  • John's attendee information specified that John has the adaptive personal assistant system based on a previous interaction with John then only the encrypted version would be sent to John.
  • each invitee responds to the meeting invitation.
  • that invitee will see a pre- formatted e-mail where the invitee can simply select the times that he is available in the reply e- mail.
  • the message-checker in the POP or any other suitable E-mail interface preferably will retrieve the e- mail from the mail-server and automatically process the e-mail, for example, provide availability information in the response e-mail.
  • the meeting scheduling agent executes the scheduling algorithm and schedules the requested meeting. Otherwise, the process returns to step 302 (as shown by the dashed line) wherein the end user may specify more available time-slots, for example.
  • a message requesting the time slot to be blocked is sent to each invitee such that the time slot can be confirmed with each invitee at step 316.
  • a confirmation e-mail for that time slot is sent to each invitee at step 320. If fewer than all the required invitees responded that the time slot is blocked after step 318, the process 300 returns to step 302.
  • the blocking of the time slot is desirable for scheduling meetings with multiple end users.
  • the adaptive personal assistant system can be executed with direct scheduling without blocking so as to minimize email exchange, convergence of a common-meeting time would not be guaranteed.
  • the common-meeting time is entered into the calendar.
  • an e-mail may be sent to each optional invitee who was not previously involved in the meeting scheduling process to invite them to the scheduled meeting.
  • a different e-mail message may be sent those optional invitees who did participate in the meeting scheduling process but who is not available during the scheduled time slot so as to inform them that the meeting was scheduled for an unavailable time slot.
  • that optional invitee can choose to reschedule or cancel the conflicting event or not attend the meeting.
  • FIGS. 6 and 7 illustrate a schematic and a block diagram, respectively, of an example of a general purpose computer system 1000 suitable for executing software programs that implement the methods and processes described herein.
  • the architecture and configuration of the computer system 1000 shown and described herein are merely illustrative and other computer system architectures and configurations may also be utilized.
  • the illustrative computer system 1000 includes a display 1003, a screen 1005, a cabinet 1007, a keyboard 1009, and a mouse 1011.
  • the mouse 1011 can have one or more buttons for interacting with a GUI (graphical user interface) that may be displayed on the screen 1005.
  • the cabinet 1007 typically house one or more drives to read a computer readable storage medium 1015, system memory 1053, and a hard drive 1055, any combination of which can be utilized to store and/or retrieve software programs incorporating computer codes that implement the methods and processes described herein and/or data for use with the software programs, for example.
  • Examples of computer or program code include machine code, as produced, for example, by a compiler, or files containing higher level code that may be executed using an interpreter.
  • Computer readable media may store program code for performing various computer- implemented operations and may be encompassed as computer storage products.
  • CD-ROM and a floppy disk 1015 are shown as exemplary computer readable storage media readable by a corresponding CD-ROM or floppy disk drive 1013, any other combination of computer readable storage media can be utilized.
  • Computer readable medium typically refers to any data storage device that can store data readable by a computer system. Examples of computer readable storage media include tape, flash memory, system memory, and hard drive may alternatively or additionally be utilized.
  • Computer readable storage media may be categorized as magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and specially configured hardware devices such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), and ROM and RAM devices. Further, computer readable storage medium may also encompass data signals embodied in a carrier wave, such as the data signals embodied in a carrier wave carried in a network. Such a network may be an intranet within a corporate or other environment, the Internet, or any network of a plurality of coupled computers such that the computer readable code may be stored and executed in a distributed fashion.
  • Computer system 1000 comprises various subsystems.
  • the subsystems of the computer system lOOO may generally include a microprocessor 1051, system memory 1053, fixed storage 1055 (such as a hard drive), removable storage 1057 (such as a CD-ROM drive), display adapter 1059, sound card 1061, transducers 1063 (such as speakers and microphones), network interface 1065, and/or scanner interface 1067.
  • the microprocessor subsystem 1051 is also referred to as a CPU (central processing unit).
  • the CPU 1051 can be implemented by a single-chip processor or by multiple processors.
  • the CPU 1051 is a general purpose digital processor that controls the operation of the computer system 1000. Using instructions retrieved from memory, the CPU 1051 controls the reception and manipulation of input data as well as the output and display of data on output devices.
  • the network interface 1065 allows CPU 1051 to be coupled to another computer, computer network, or telecommunications network using a network connection.
  • the CPU 1051 may receive and/or send information via the network interface 1065.
  • Such information may include data objects, program instruction, output information destined to another network.
  • An interface card or similar device and appropriate software implemented by CPU 1051 can be used to connect the computer system 1000 to an external network and transfer data according to standard protocols.
  • methods and processes described herein may be executed solely upon CPU 1051 and or may be performed across a network such as the Internet, intranet networks, or LANs (local area networks), in conjunction with a remote CPU that shares a portion of the processing.
  • Additional mass storage devices may also be connected to CPU 1051 via the network interface 1065.
  • subsystems described herein are merely illustrative of the subsystems of a typical computer system and any other suitable combination of subsystems may be implemented and utilized.
  • another computer system may also include a cache memory and/or additional processors 1051 , such as in a multi-processor computer system.
  • the computer system 1000 also includes a system bus 1069.
  • the specific buses shown are merely illustrative of any interconnection scheme serving to link the various subsystems.
  • a local bus can be utilized to connect the central processor to the system memory and display adapter.
  • the computer system 1000 may be illustrative of the computer system of the service provider, the client, or the end-user or customer.

Abstract

A system and method for distributed scheduling using an adaptive personal assistant system (100) are disclosed. The adaptive personal assistant system (100) generally comprises a communications interface (102), a personal information manager (104), a meeting scheduler (106), a preferences manager (108), and a natural language e-mail processor (110). The adaptive personal assistant system (100) provides a distributed multi-platform network-based solution for personal task and appointment scheduling. By using distributed agent functionality, the adaptive personal assistant system (100) allows users on the network, such as a corporate network or the Internet, who may be using different appointment calendar software and divergent e-mail applications, to converge on mutually acceptable appointment times.

Description

SYSTEM AND METHOD FOR DISTRIBUTED SCHEDULING
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims priority to U.S. Provisional Patent Application No. 60/163,107 filed November 2, 1999, the entirety of which is incorporated by reference herein.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates generally to a system and method for distributed scheduling. More specifically, a system and method for distributed scheduling using an adaptive personal assistant system are disclosed.
2. Description of Related Art
The field of electronic organization system or electronic organizers has been expanding greatly in the recent years. Examples of electronic organization systems include Microsoft
Outlook, Microsoft Outlook Express, as well as personal digital assistants ("PDAs"), such as Palm Pilots from 3COM Corp. and Rex Pro Organizers from Franklin. These systems typically allow the end user to input, store, and access contact information for end users and organizations in a contacts folder and/or address list, appointments and meetings in a calendar or scheduler, tasks in a task list, as well as notes, for example.
To electronically send the information in one's personal organizer, the end user may attach the information as text in an e-mail to a recipient or, if the recipient has a same or compatible organization system, the end user may attach the particular file, such as a contact file or a meeting file, in an e-mail to a recipient. Alternatively, the end user may forward or "beam" such information to a recipient using infrared signals. Such infrared or wireless capability is provided, for example, by the Palm V from 3Com Corp.
Users of such electronic organization systems may wish to schedule a meeting with one or more other end users. To do so, the meeting requester may first examine his personal calendar for available times and dates as well as check for availability of resources such as conference rooms, video conferencing equipment, audio/visual presentation equipment, for example. The meeting requester may then call, e-mail, or otherwise contact each of the invitees to the meeting and request a response regarding each invitee's availability. Microsoft Outlook™, for example, allows the end user to send a meeting request message to other users of Microsoft Outlook™, each of whom may then accept the request, tentatively accept the request, or reject the request, for example. If the invitee accepts the request, the Microsoft Outlook™ then automatically inserts the meeting into that invitee's calendar. However, such automatic insertion only occurs if the invitee also uses Microsoft Outlook™. Other examples of systems that facilitate the scheduling or setting up of a meeting for 2 or more participants include Meeting Maker™ which requires synchronization of the participants' calendars.
However, each of these conventional systems that facilitate the scheduling or setting up of a meeting between two or more participants, i.e., between the meeting requester and the meeting invitees, requires synchronized calendars, i.e., each participant utilizes the same electronic organization system and shares the same database. Such conventional systems typically contain one main calendar that is shared by all. In other words, the main calendar includes every participant's personal calendar such that every participant's personal calendar is synchronized with the main calendar. Such conventional systems thus may not provide the level of privacy desired by each participant. Further, such conventional systems do not automatically coordinate the scheduling of the meeting, but rather, generally still require the meeting requester to coordinate the availability of the invitees or participants.
Thus, what is needed is a scheduling system that does not require synchronized calendars for the participants. It is also desirable to provide a system that optionally automatically coordinates the scheduling of the meeting for the meeting requester. Such a scheduling system preferably also protects the privacy of each individual participant.
SUMMARY OF THE INVENTION
A system and method for distributed scheduling using an adaptive personal assistant system are disclosed. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication lines.
The adaptive personal assistant system generally comprises a communications interface, a personal information manager, a meeting scheduler, a preferences manager, and a natural language e-mail processor. The adaptive personal assistant system provides a distributed multi- platform network-based solution for personal task and appointment scheduling. By using distributed agent functionality, the adaptive personal assistant system allows users on the network, such as a corporate network or the Internet, who may be using different appointment calendar software and divergent email applications, to converge on mutually acceptable appointment times. A distributed network-based automatic scheduling system for facilitating scheduling of meetings having meeting invitees generally comprises a communications interface agent for generating and transmitting communications and for receiving communications, an information manager including a scheduling calendar containing scheduling information, and a meeting scheduling agent for implementing a scheduling method to dynamically converge on a meeting time based upon scheduling information of the information manager and based upon scheduling information contained in communications received by the communications manager. Upon initiation of a meeting scheduling request, the communications interface agent generates communications to meeting invitees requesting scheduling information from each of the meeting invitees.
The system may also include a preferences manager in communication with the meeting scheduling agent that dynamically manages preferences depending on end user's selections and/or a natural language processor in communication with the communications interface agent. The natural language processor may include a natural language electronic mail processor agent and a natural language command processor agent. The natural language electronic mail processor agent typically processes meeting request and meeting scheduling information communications received by the communications interface agent.
The meeting scheduling agent processes received communications from meeting invitees upon which the meeting scheduling agent bases the dynamic meeting time convergence by the scheduling method. The meeting scheduling agent may include a scheduler agent for implementing the meeting scheduling, a meeting attendee information manager for managing information relating to the meeting invitees, and a preferences manager agent for managing preferences information.
In addition, the information manager may includes a calendar display manager and a calendar prompt manager for generating meeting reminders, a calendar template processor for processing calendar templates, and a calendar synchronization tool for synchronizing the scheduling calendar. The calendar template processor is preferably configured to process a calendar template containing one or more fields such as required invitee, optional invitee, invitee requirements, meeting purpose, meeting duration, meeting location, meeting time requirements, meeting date requirements, meeting resources requirements, and/or text message fields.
A computer network-based distributed automatic meeting scheduling process for facilitating scheduling of meetings having meeting invitees generally comprises receiving a meeting scheduling request containing meeting invitee information, generating and transmitting a meeting request communication to each meeting invitee requesting scheduling information via a communications interface agent, receiving and processing a meeting request response communication containing scheduling information from one or more meeting invitees, and determining a meeting time by the meeting scheduling agent by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication.
The process may also include, prior to generating and transmitting, selecting preferred meeting time slots by a meeting scheduling agent according to a scheduling information in a scheduling calendar of an information manager. In addition, the process may include generating and transmitting a meeting time communication that communicates the meeting time as determined by the meeting scheduling agent. The meeting time communication optionally includes a request for the determined meeting time to be blocked.
If the meeting invitees transmits at least one meeting time blocking communication containing a meeting time not blocked message, the process returns to the generating and transmitting meeting request communication. Alternatively, if a requisite set of meeting time blocked communications are received, the process transmits a meeting time confirmed message to each meeting invitee.
A computer program product that facilitates scheduling of meetings via a network-based distributed automatic meeting scheduling process generally comprises computer code that receives a meeting scheduling request, the request containing meeting invitee information, computer code that generates and transmits a meeting request communication to each meeting invitee to request scheduling information from each meeting invitee, computer code that receives and processes a meeting request response communication containing scheduling information from at least one of the meeting invitees, computer code that determines a meeting time by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication, and a computer readable medium that stores the computer codes.
The features and advantages of the system and method for distributed scheduling using an adaptive personal assistant system will be presented in more detail in the following detailed description and the accompanying figures which illustrate by way of example the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be readily understood by the following detailed description in conjunction with the accompanying drawings, wherein like reference numerals designate like structural elements, and in which: FIG. 1 is a block diagram of an adaptive personal assistant system;
FIG. 2 is a block diagram illustrating the components of the adaptive personal assistant system of FIG. 1 in more detail;
FIG. 3 is a block diagram illustrating the overall interconnection among the meeting requester and the meeting invitees over a network; FIG. 4 is a sample meeting request form or template;
FIGS. 5A and 5B are flowcharts illustrating the process of scheduling a meeting using the adaptive personal assistant system shown in FIGS. 1 and 2;
FIG. 6 illustrates an example of a computer system that can be utilized with the various embodiments of method and processing described herein; and FIG. 7 illustrates a system block diagram of the computer system of FIG. 6.
DESCRIPTION OF SPECIFIC EMBODIMENTS
A system and method for distributed scheduling using an adaptive personal assistant system are disclosed. The following description is presented to enable any person skilled in the art to make and use the invention. Descriptions of specific embodiments and applications are provided only as examples and various modifications will be readily apparent to those skilled in the art. The general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the invention. Thus, the present invention is to be accorded the widest scope encompassing numerous alternatives, modifications and equivalents consistent with the principles and features disclosed herein. For purpose of clarity, details relating to technical material that is known in the technical fields related to the invention have not been described in detail so as not to unnecessarily obscure the present invention.
FIG. 1 is a block diagram of an adaptive personal assistant or an electronic organization system 100 and FIG. 2 is a block diagram illustrating certain components of the adaptive personal assistant system 100 grouped into four functional groups. The adaptive personal assistant system 100 is an intelligent "scheduling secretary" to which each user can delegate scheduling tasks. Specifically, the adaptive personal assistant system 100 provides a distributed multi-platform network-based solution for personal task and appointment scheduling. By using distributed agent functionality, the adaptive personal assistant system 100 allows users on the network, such as a corporate network or the Internet, who may have different appointment calendar software and divergent e-mail applications, to converge on mutually acceptable appointment times. The adaptive personal assistant system 100 generally comprises a communications interface agent 102, a personal information manager agent 104 that includes an appointment calendar, a meeting scheduling agent 106, a preferences manager agent 108, and a natural language processor agent 110. Each of the components of the adaptive personal assistant system 100 will be described in more detail below. It is to be understood that, although the adaptive personal assistant system 100 is described and shown as a system resident on a user's computer, for example, the concepts and functionality of the meeting scheduling agent of the adaptive personal assistant system 100 may be utilized to be provided by a network ASP (application service provider). In other words, a meeting scheduling system may be resident on a server device or computer in communication with a network such as the Internet. The meeting scheduling system would then communicate with the meeting requester and each of the invitees
(or their respective electronic organizers to schedule the requested meeting.
Communications Interface Agent 102
The communications interface agent 102 serves as an interface between the end user and the adaptive personal assistant system 100 as well as an interface between the adaptive personal assistant system 100 and other adaptive personal assistant systems of meeting invitees, different electronic organization systems of meeting invitees, and/or the meeting invitees themselves. The communications interface agent 102 is preferably based on open-protocol Internet e-mail. The communications interface agent 102 preferably supports both encrypted mail such that third-parties cannot access confidential meeting information and unencrypted user-readable mail for recipients who do not have the adaptive personal assistant system 100 and/or whose system does not support encryption. For processing free-form e-mail received from users without the adaptive personal assistant system 100, the communications interface agent 102 may utilize the natural language processor agent 110.
Personal Information Manager Agent 104
The personal information manager agent 104 includes a calendar facilitates the end user in keeping track of daily tasks and appointments. The personal information manager agent 104 is optionally integrated with the network, such as the Internet, to allow the end user to retrieve different functionally grouped calendar templates to set up the end user's appointments in the calendar. Preferably, the calendar is integrated with an open- API (application program interface) to integrate calendar appointment templates that may be provided by various services groups. For example, these calendar templates may be defined for different life-styles with different calendaring needs and/or for different types of or purposes for appointments being scheduled. In particular, a schedule template may be provided by a fitness club for its members to schedule various classes or sessions with personal trainers, a game-player template may be available for scheduling a multi-player on-line game, an on-line chat template may be available for scheduling a discussion of participants in a chat room. In addition, an investment club can provide reminders to its members to send in its regular payments. The calendar of the personal information manager agent 104 can optionally import and export data from other server-centric meeting management systems. Further, the calendar is preferably flexible in terms of its deployment platform. For example, the calendar may be deployable on desktop PCs or Internet servers and accessible at the desktop, over the Internet, over the phone, and/or from handheld computers. The personal information manager agent 104 may further include a calendar prompt manager that reminds the end user of a scheduled meeting by prompting the end user at an appropriate time, such as a reminder message at a pre-determined period of time prior to the scheduled meeting or event. The calendar prompt manager may generate severity- or priority- based prompts or reminders via multiple modes as selected by the end user. For example, the prompts or reminders may be delivered via computer based popup-windows, through a voice- reminder, by a page sent to a pager, and/or a telephone call. In addition, there may be default and/or use-specified rules for determining severity.
The personal information manager agent 104 may include numerous other components in addition to the calendar. For example, the personal information manager agent 104 may include an address book or a contacts folder containing the address and contact information for various end users and organizations, a task list, and/or notes, for example.
Meeting Scheduling Agent 106
The meeting scheduling agent 106 schedule meetings by coordinating among the meeting invitees and scheduling a time that all or certain sub-group of the invitees are available to meet. The meeting scheduling agent 106 facilitates the scheduling of a meeting of any number of end users. As the number of different online collaboration functions increases, the automated scheduling function of the meeting scheduling agent 106 greatly reduces the cumbersome and time-consuming process of setting up meeting through multiple e-mail exchanges and/or telephone-conversations, particularly with larger groups of end users. The meeting scheduling agent 106 works with the communications interface agent 102 to interface with other meeting invitees or their organization systems and with the calendar to schedule meetings. The meeting scheduling agent 106 electronically interacts with other end users preferably similar to how the end user may interact with other end users via intelligible e- mail by sending invitations and responses that other end users can understand and to which other end users can respond.
The meeting scheduling agent 106 works with the calendar in a secure and distributed manner to communicate with other meeting invitees. In other words, the meeting scheduling agent 106 reveals only small portions of the schedule contained in the calendar through e-mails so that other attendees can select times they would prefer to attend the requested meeting. The meeting scheduling agent 106 can adjust the information it exchanges depending on the security and privacy needs of its end user and/or settings of the end user system. For example, when the other party uses a different adaptive personal assistant system, only certain predetermined information is transmitted. The meeting scheduling agent 106 can also adjust the number of free-slots given depending on the level of privacy for the exchanges the end user desires. The end user can instruct the meeting scheduling agent 106 to only respond to requests from end users he knows, e.g., those in his address book or contacts list, thus not giving up private information to potentially malicious agents.
The meeting scheduling agent 106 includes a scheduler agent that implements a scheduling algorithm for scheduling the requested meeting. After the end user submits or inputs a meeting request with a list of invitees or other attendees, the scheduling algorithm checks for free times given the range of free-times that are available in the end user's calendar. The scheduling algorithm then interfaces with the preferences manager agent 108 (described below) to choose a limited number of free times that will be used to send out invitations. The scheduling algorithm uses responses from the other invitees to converge on a free time when all or certain of the invitees are available. In particular, the scheduling algorithm utilizes an incremental free-busy checking algorithm to dynamically converge on a mutually acceptable meeting time.
The meeting scheduling agent 106 optionally classifies meetings into different classes such as different online meetings, e.g., gaming sessions, online chat sessions, and offline meetings such as lunch meeting, dinner meeting, other work-meeting, party, etc. The meeting scheduling agent 106 may pre-assign time-ranges for such meetings and makes the task of scheduling any such meeting significantly easier. Preferably, the meeting scheduling agent 106 provides default time-ranges for such meetings, for example, all meetings for 45 minutes or more that fall within the time period of 11 : 15 AM to 1 :15 PM are defined as lunch meetings. Such default ranges may be modified by the end user as desired.
Preferences Manager Agent 108 The preferences manager agent 108 manages the preferences of the end user and is preferably adaptive. The adaptive preferences manager agent 108 takes into account user's selections and dynamically updates the preferences accordingly. For example, if the end user usually requests for meetings in the morning, the preferences manager agent 108 will dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will favor morning meetings and attempt to schedule meetings in the mornings. Alternatively, if the end user usually asks for meetings in the afternoon, the preferences manager agent 108 will dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will favor afternoon meetings and attempt to schedule meetings in the afternoons. As another example, if the end user typically requests for lunch meetings with certain other end users, the preferences manager agent 108 may dynamically adjust the end user's preferences list such that the meeting scheduling agent 106 will attempt to schedule lunch meetings when any, all, or a threshold number or percentage of the meeting invitees are those certain end users.
Natural Language Processor Agent 110 The natural language processor agent 110 is preferably provided and may comprise a natural language e-mail processor agent 110A and a natural language command processor agent HOB.
The natural language e-mail processor agent 110A facilitates the processing of natural language e-mails requesting a meeting, such as may be send by a meeting requester who does not have or use the personal assistant system 100. The meeting scheduling agent 106 is preferably integrated with the natural language e-mail processor agent 110A that scans incoming e-mails for meeting-related requests. For example, if a meeting requester sends an e-mail containing the phrase "Let's get together over lunch," the natural language e-mail processor agent 110A will determine that the e-mail is an invitation for a meeting and process it accordingly and forwarding the processed request to the meeting scheduling agent 106.
In addition, the natural language command processor agent 1 10B is preferably linked with the calendar of the personal information manager agent 104 and the meeting scheduling agent 106 such that the natural language command processor agent HOB can control the calendar and the meeting scheduling agent 106. For example, the end user may speak or type commands such as "I want to chat with my AOL buddies this evening," or "Cancel our weekly team meeting." The natural language e-mail processor agent 110 will recognize the request as one for the meeting scheduling agent 106, process the request accordingly, and forward the processed request to the meeting scheduling agent 106.
As shown in FIG. 2, the components of the adaptive personal assistant system 100 can be generally grouped into four function groups. The groups include a calendar function group, a meeting scheduling function group that handles most of the scheduling tasks, an e-mail handling function group, and the natural language command processor agent.
As shown, the calendar function group generally includes a platform-specific calendar display manager, the calendar prompt manager, a calendar template processor, and an application specific calendar synchronization tool. The meeting scheduling function group generally includes the meeting scheduling agent, the scheduler agent that implements the scheduling algorithm, an attendee information manager for managing information relation to attendees or invitees, and the preferences manager agent. The e-mail handling function group generally includes an encrypted e-mail processor, the natural language e-mail processor agent
110A, an outbound e-mail configuration, and a POP e-mail interface. Further, as noted, the natural language command processor agent 110B interfaces with the calendar grouping and the meeting scheduling grouping in order to control the calendar and the components in the meeting scheduling grouping. It is to be understood that the different components of the adaptive personal assistant system 100 can be available on different platforms and with different synchronization options. For example, the calendar and the meeting scheduling agent 106 may be available for hand held devices, for the web, and/or as a desktop application. The state information can be synchronized amongst the different platforms as well as with other off-the-shelf calendar applications.
FIG. 3 is a block diagram illustrating the overall interconnection among the meeting requester and the meeting invitees over a network. In the example as shown, the meeting requester and each of the three invitees are in communication with the Internet such that messages such as e-mail messages may be transmitted between the meeting requester and the invitees via a network such as the Internet. One of the invitees is required and two of the invitees are optional. Required and optional invitees are described below with reference to FIG. 4.
FIG. 4 is a sample meeting request form or template. As shown, the meeting requester may specify the purpose of the meeting (e.g., on-line chat in a chatroom), the requirements regarding the date and time of the requested meeting (e.g., after 7PM but before 1 1PM, on Tuesday, Wednesday, or Thursday of this week), the duration of the meeting (e.g., 30 minutes or a range such as between 1 and 3 hours), the location of the meeting (e.g., on-line or at the company headquarters if off-line), required resources of the meeting (e.g., conference room with teleconferencing capabilities, overhead projector, etc.), required invitees (those who much be available to attend the meeting), optional invitees (those who are invited but need not be available in order for the meeting to be scheduled), other invitee requirements (e.g., minimum number of invitees who can attend), and a free text message.
It is noted that the meeting requester may additionally or alternatively request that the adaptive personal assistant system 100 schedule a meeting and then invite certain or all of the optional invitees. In such case, the optional invitees would simply be told the information regarding a scheduled meeting rather than receiving and processing numerous of e-mail messages that may not have an impact on the scheduling of the meeting. However, it may be desirable to determine in advance of the scheduling the meeting the number of optional invitees who may be able to attend so as to, for example, determine the size of the conference room needed and/or to satisfy the requirement for the minimum number of invitees who can attend.
Illustration of the Meeting Scheduling Agent Using Natural Language
FIGS. 5A and 5B are flowcharts illustrating the process 300 of scheduling a meeting using the adaptive personal assistant system shown in FIGS. 1 and 2. It is noted that although the process illustrated is one where the end user enters commands in natural language, a similar process would be executed by the adaptive personal assistant system 100 without the natural language processing when the end user enters commands utilizing the calendar templates, for example, of the adaptive personal assistant system 100.
At step 302. the end user enters a natural language command, such as "I want to meet John next week." At step 304, the natural language command processor agent determines that the command is a meeting invitation request, processes the command as such, and forwards the processed command to the meeting scheduling agent. In particular, the natural language command processor agent sets and forwards the parameters such as meeting-time of "next week" and attendee of "John." This is done through natural language parsing and semantic analysis techniques. The natural language parsing is described in International Publication Number WO
00/11571, which is incorporated by reference in its entirety.
At step 306, the attendee information manager (as shown in FIG. 2) of the meeting scheduling agent determines identification information of the attendees, i.e., the identification information of John. Such identification information may include a unique identification and/or the email information of each attendee. At step 308, the meeting scheduling agent utilizes the calendar to determine the available time slots for the meeting-time, i.e., next week, and the preferences manager is called to select the most preferred time slots.
At step 310, the meeting scheduling agent sends outbound emails to attendees utilizing the outbound email configurator and POP-Email interface of the communication interface agent to send out both an encrypted and an intelligible email containing the meeting request to each invited attendee, including the selected free time slots. Preferably, if the attendee's attendee information specified that the attendee has the adaptive personal assistant system based on a previous interaction, then only the encrypted version would be sent. Thus, if John's attendee information specified that John has the adaptive personal assistant system based on a previous interaction with John, then only the encrypted version would be sent to John.
At step 312, each invitee responds to the meeting invitation. In particular, if a particular invitee does not have the adaptive personal assistant system, then that invitee will see a pre- formatted e-mail where the invitee can simply select the times that he is available in the reply e- mail. Alternatively, if a particular invitee does have the adaptive personal assistant system, the message-checker in the POP or any other suitable E-mail interface preferably will retrieve the e- mail from the mail-server and automatically process the e-mail, for example, provide availability information in the response e-mail.
At step 314, once all invitees' or all the required invitees' responses are received, the meeting scheduling agent executes the scheduling algorithm and schedules the requested meeting. Otherwise, the process returns to step 302 (as shown by the dashed line) wherein the end user may specify more available time-slots, for example.
In the case where a common time slot is determined by the meeting scheduling agent in step 314, a message requesting the time slot to be blocked is sent to each invitee such that the time slot can be confirmed with each invitee at step 316. After each invitee or each required invitee responds that the specified time is blocked at step 318, a confirmation e-mail for that time slot is sent to each invitee at step 320. If fewer than all the required invitees responded that the time slot is blocked after step 318, the process 300 returns to step 302.
The blocking of the time slot is desirable for scheduling meetings with multiple end users. Although the adaptive personal assistant system can be executed with direct scheduling without blocking so as to minimize email exchange, convergence of a common-meeting time would not be guaranteed.
Once a common-meeting time is confirmed, the common-meeting time is entered into the calendar. Although not shown, an e-mail may be sent to each optional invitee who was not previously involved in the meeting scheduling process to invite them to the scheduled meeting. In addition, a different e-mail message may be sent those optional invitees who did participate in the meeting scheduling process but who is not available during the scheduled time slot so as to inform them that the meeting was scheduled for an unavailable time slot. Thus, that optional invitee can choose to reschedule or cancel the conflicting event or not attend the meeting.
FIGS. 6 and 7 illustrate a schematic and a block diagram, respectively, of an example of a general purpose computer system 1000 suitable for executing software programs that implement the methods and processes described herein. The architecture and configuration of the computer system 1000 shown and described herein are merely illustrative and other computer system architectures and configurations may also be utilized.
The illustrative computer system 1000 includes a display 1003, a screen 1005, a cabinet 1007, a keyboard 1009, and a mouse 1011. The mouse 1011 can have one or more buttons for interacting with a GUI (graphical user interface) that may be displayed on the screen 1005. The cabinet 1007 typically house one or more drives to read a computer readable storage medium 1015, system memory 1053, and a hard drive 1055, any combination of which can be utilized to store and/or retrieve software programs incorporating computer codes that implement the methods and processes described herein and/or data for use with the software programs, for example. Examples of computer or program code include machine code, as produced, for example, by a compiler, or files containing higher level code that may be executed using an interpreter.
Computer readable media may store program code for performing various computer- implemented operations and may be encompassed as computer storage products. Although a
CD-ROM and a floppy disk 1015 are shown as exemplary computer readable storage media readable by a corresponding CD-ROM or floppy disk drive 1013, any other combination of computer readable storage media can be utilized. Computer readable medium typically refers to any data storage device that can store data readable by a computer system. Examples of computer readable storage media include tape, flash memory, system memory, and hard drive may alternatively or additionally be utilized. Computer readable storage media may be categorized as magnetic media such as hard disks, floppy disks, and magnetic tape; optical media such as CD-ROM disks; magneto-optical media such as floptical disks; and specially configured hardware devices such as application-specific integrated circuits (ASICs), programmable logic devices (PLDs), and ROM and RAM devices. Further, computer readable storage medium may also encompass data signals embodied in a carrier wave, such as the data signals embodied in a carrier wave carried in a network. Such a network may be an intranet within a corporate or other environment, the Internet, or any network of a plurality of coupled computers such that the computer readable code may be stored and executed in a distributed fashion. Computer system 1000 comprises various subsystems. The subsystems of the computer system lOOOmay generally include a microprocessor 1051, system memory 1053, fixed storage 1055 (such as a hard drive), removable storage 1057 (such as a CD-ROM drive), display adapter 1059, sound card 1061, transducers 1063 (such as speakers and microphones), network interface 1065, and/or scanner interface 1067.
The microprocessor subsystem 1051 is also referred to as a CPU (central processing unit). The CPU 1051 can be implemented by a single-chip processor or by multiple processors. The CPU 1051 is a general purpose digital processor that controls the operation of the computer system 1000. Using instructions retrieved from memory, the CPU 1051 controls the reception and manipulation of input data as well as the output and display of data on output devices.
The network interface 1065 allows CPU 1051 to be coupled to another computer, computer network, or telecommunications network using a network connection. The CPU 1051 may receive and/or send information via the network interface 1065. Such information may include data objects, program instruction, output information destined to another network. An interface card or similar device and appropriate software implemented by CPU 1051 can be used to connect the computer system 1000 to an external network and transfer data according to standard protocols. In other words, methods and processes described herein may be executed solely upon CPU 1051 and or may be performed across a network such as the Internet, intranet networks, or LANs (local area networks), in conjunction with a remote CPU that shares a portion of the processing. Additional mass storage devices (not shown) may also be connected to CPU 1051 via the network interface 1065.
The subsystems described herein are merely illustrative of the subsystems of a typical computer system and any other suitable combination of subsystems may be implemented and utilized. For example, another computer system may also include a cache memory and/or additional processors 1051 , such as in a multi-processor computer system.
The computer system 1000 also includes a system bus 1069. However, the specific buses shown are merely illustrative of any interconnection scheme serving to link the various subsystems. For example, a local bus can be utilized to connect the central processor to the system memory and display adapter. The computer system 1000 may be illustrative of the computer system of the service provider, the client, or the end-user or customer.
While the preferred embodiments of the present invention are described and illustrated herein, it will be appreciated that they are merely illustrative and that modifications can be made to these embodiments without departing from the spirit and scope of the invention. Thus, the invention is intended to be defined only in terms of the following claims.

Claims

CLAIMSWhat is claimed is:
1. A distributed network-based automatic scheduling system for facilitating scheduling of meetings having meeting invitees, comprising: a communications interface agent for generating communications from the scheduling system for transmitting to a destination outside of the system and for receiving communications from a source outside of the system; an information manager including a scheduling calendar containing scheduling information; and a meeting scheduling agent for implementing a scheduling method to dynamically converge on a meeting time based upon scheduling information of the information manager and based upon scheduling information contained in communications received by the communications manager, whereby upon initiation of a meeting scheduling request, said communications interface agent generates communications to meeting invitees requesting scheduling information from each of the meeting invitees.
2. The adaptive personal assistant system according to claim 1, further comprising a preferences manager in communication with the meeting scheduling agent, said preferences manager dynamically manages preferences depending on end user's selections.
3. The adaptive personal assistant system according to claim 1, further comprising a natural language processor in communication with said communications interface agent.
4. The adaptive personal assistant system according to claim 3, wherein said natural language processor includes a natural language electronic mail processor agent and a natural language command processor agent.
5. The adaptive personal assistant system according to claim 3, wherein said natural language electronic mail processor agent processes meeting request and meeting scheduling information communications received by said communications interface agent.
6. The adaptive personal assistant system according to claim 1, wherein said meeting scheduling agent processes received communications from meeting invitees upon which said meeting scheduling agent bases said dynamic meeting time convergence by said scheduling method.
7. The adaptive personal assistant system according to claim 1, wherein said meeting scheduling agent includes a scheduler agent for implementing said meeting scheduling, a meeting attendee information manager for managing information relating to said meeting invitees, and a preferences manager agent for managing preferences information.
8. The adaptive personal assistant system according to claim 1 , wherein said information manager includes a calendar display manager and a calendar prompt manager for generating meeting reminders.
9. The adaptive personal assistant system according to claim 1 , wherein said information manager includes a calendar template processor for processing calendar templates and a calendar synchronization tool for synchronizing said scheduling calendar.
10. The adaptive personal assistant system according to claim 9, wherein said calendar template processor is configured to process a calendar template containing at least one field selected from the group consisting of required invitee, optional invitee, invitee requirements, meeting purpose, meeting duration, meeting location, meeting time requirements, meeting date requirements, meeting resources requirements, and text message.
11. A computer network-based distributed automatic meeting scheduling process for facilitating scheduling of meetings having meeting invitees, comprising: receiving a meeting scheduling request, the request containing meeting invitee information; generating and transmitting a meeting request communication to each meeting invitee requesting scheduling information from each meeting invitee via a communications interface agent; receiving and processing a meeting request response communication containing scheduling information from at least one of the meeting invitees via the communications interface agent; and determining a meeting time by the meeting scheduling agent by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication.
12. The computer network-based meeting scheduling process according to claim 1 1, further comprising, prior to the generating and transmitting, selecting preferred meeting time slots by a meeting scheduling agent according to a scheduling information in a scheduling calendar of an information manager.
13. The computer network-based meeting scheduling process according to claim 11 , further comprising generating and transmitting a meeting time communication via the communications interface agent communicating the meeting time as determined by the meeting scheduling agent.
14. The computer network-based meeting scheduling process according to claim 13, wherein said meeting time communication includes a request for the determined meeting time to be blocked.
15. The computer network-based meeting scheduling process according to claim 14, further comprising receiving and processing a meeting time blocking communication from at least one of the meeting invitees via the communications interface agent and wherein upon receiving at least one meeting time blocking communication containing a meeting time not blocked message, the process returns to said generating and transmitting meeting request communication.
16. The computer network-based meeting scheduling process according to claim 14, further comprising receiving and processing a meeting time blocking communication from at least one of the meeting invitees via the communications interface agent and wherein upon receiving a requisite set of meeting time blocked communications, further comprising transmitting a meeting time confirmed message to each meeting invitee.
17. A computer program product that facilitates scheduling of meetings via a network- based distributed automatic meeting scheduling process comprising: computer code that receives a meeting scheduling request, the request containing meeting invitee information; computer code that generates and transmits a meeting request communication to each meeting invitee to request scheduling information from each meeting invitee; computer code that receives and processes a meeting request response communication containing scheduling information from at least one of the meeting invitees; computer code that determines a meeting time by implementing a dynamic convergence scheduling method based upon scheduling information of the information manager and based upon scheduling information contained in the received meeting request response communication; and a computer readable medium that stores the computer codes.
18. The computer program product according to claim 17, further comprising computer code that selects preferred meeting time slots according to a scheduling information in a scheduling calendar.
19. The computer program product according to claim 17, further comprising computer code that generates and transmits a meeting time communication that communicates the determined meeting time.
20. The computer program product according to claim 19, wherein the meeting time communication includes a request for the determined meeting time to be blocked.
21. The computer program product according to claim 20, further comprising computer code that receives and processes a meeting time blocking communication from at least one of the meeting invitees and further comprising computer code that transmits a meeting time confirmed message to each meeting invitee upon receiving a requisite set of meeting time blocked communications.
PCT/US2000/041903 1999-11-02 2000-11-02 System and method for distributed scheduling WO2001037541A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16310799P 1999-11-02 1999-11-02
US60/163,107 1999-11-02

Publications (2)

Publication Number Publication Date
WO2001037541A2 true WO2001037541A2 (en) 2001-05-25
WO2001037541A3 WO2001037541A3 (en) 2001-10-11

Family

ID=22588511

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/041903 WO2001037541A2 (en) 1999-11-02 2000-11-02 System and method for distributed scheduling

Country Status (1)

Country Link
WO (1) WO2001037541A2 (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1724718A1 (en) * 2005-05-20 2006-11-22 Research In Motion Limited Communication device with capability for handling conditional acceptance of meeting requests
EP2026259A1 (en) * 2007-08-09 2009-02-18 Alcatel Lucent Method of managing the organisation of meetings between people having different terminals, for an IMS network core, and associated application server
WO2009034237A1 (en) * 2007-09-10 2009-03-19 France Telecom Method and system for organising meetings by electronic messages
US8019065B2 (en) 2005-05-20 2011-09-13 Research In Motion Limited Communication device with capability for handling conditional acceptance of meeting requests
US8244568B2 (en) 2007-07-12 2012-08-14 International Business Machines Corporation Method and apparatus for gathering participant free time to schedule events on an electronic calendar
US8423347B2 (en) 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US8645182B2 (en) 2007-10-02 2014-02-04 International Business Machines Corporation Integrated calendar and task scheduler
EP3373220A1 (en) * 2017-03-06 2018-09-12 Samsung Electronics Co., Ltd. Method and electronic device for setting alarm

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842009A (en) * 1996-09-30 1998-11-24 Apple Computer, Inc. System for automatically retrieving information relevant to a user's scheduled event

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5842009A (en) * 1996-09-30 1998-11-24 Apple Computer, Inc. System for automatically retrieving information relevant to a user's scheduled event

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1724718A1 (en) * 2005-05-20 2006-11-22 Research In Motion Limited Communication device with capability for handling conditional acceptance of meeting requests
US8019065B2 (en) 2005-05-20 2011-09-13 Research In Motion Limited Communication device with capability for handling conditional acceptance of meeting requests
US8423347B2 (en) 2006-06-06 2013-04-16 Microsoft Corporation Natural language personal information management
US8244568B2 (en) 2007-07-12 2012-08-14 International Business Machines Corporation Method and apparatus for gathering participant free time to schedule events on an electronic calendar
EP2026259A1 (en) * 2007-08-09 2009-02-18 Alcatel Lucent Method of managing the organisation of meetings between people having different terminals, for an IMS network core, and associated application server
WO2009034237A1 (en) * 2007-09-10 2009-03-19 France Telecom Method and system for organising meetings by electronic messages
US8645182B2 (en) 2007-10-02 2014-02-04 International Business Machines Corporation Integrated calendar and task scheduler
EP3373220A1 (en) * 2017-03-06 2018-09-12 Samsung Electronics Co., Ltd. Method and electronic device for setting alarm
US10659593B2 (en) 2017-03-06 2020-05-19 Samsung Electronics Co., Ltd. Method and electronic device for setting alarm

Also Published As

Publication number Publication date
WO2001037541A3 (en) 2001-10-11

Similar Documents

Publication Publication Date Title
US20060200374A1 (en) Automatic scheduling method and apparatus
US8484061B2 (en) Scheduling sessions of multi-speaker events
US8874644B2 (en) Method, system, chat interface, and computer program product for comparing free time between instant message chat members
US8577975B2 (en) Buddy list-based sharing of electronic content
US20080015922A1 (en) Method and user interface for computer-assisted schedule coordination
JP4745717B2 (en) Data sharing within instant messaging sessions
US8655701B2 (en) Buddy list-based calendaring
EP2574003B1 (en) Rules based real-time communication system
US20090222747A1 (en) Designation of delegate for modifying an electronic meeting definition defined using electronic calendaring software
US8756514B2 (en) System and method for real-time scheduling
US8321796B2 (en) Dynamic meeting agenda generation based on presenter availability
US20080109517A1 (en) Scheduling a conference in situations where a particular invitee is unavailable
US20060047557A1 (en) Techniques for resolving conflicts in scheduling conferences
US8091035B2 (en) System and method for sharing data
US20060190547A1 (en) Method and apparatus for restricting instant messaging during a scheduled event
US20080040188A1 (en) System and method for providing temporary and limited grants of calendar access
US20070130223A1 (en) Method for synchronizing information
US9438434B2 (en) Collaborative arbitration of polling results in a collaborative computing environment
WO2015032119A1 (en) Processing method for mail schedule assistant
JP2008217808A (en) Instant messaging system
EP1567964A2 (en) Collaboration integration
WO2001037541A2 (en) System and method for distributed scheduling
EP2096588A1 (en) Designation of delegate for modifying an electronic meeting definition defined using electronic calendaring software
Bhattacharjee A swarm of little notes
Niederer et al. Agent-based meeting scheduling support using mobile clients

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): CA JP

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR

122 Ep: pct application non-entry in european phase