1. Field
The present invention generally relates to meeting scheduling systems, and more specifically to providing meeting notifications that account for travel distances, locations, and times of meeting participants.
2. Background
In large enterprise environments, facilities are often spread over a relatively large geographical area. When scheduling meetings in such large enterprises, it is each participant's responsibility to take into account and estimate their travel time to the meeting place in order to arrive on time. One of the main reasons participants arc late to meetings is that current meeting scheduling systems are not capable of automatically reserving “commute time” between locations. Another problem with current scheduling systems is that meeting reminders are not based on the actual conditions that affect how long it takes to get to the meeting location. Participants either leave too earlier and waste their time, or leave “on time” and get stuck in traffic, missing an important appointment.
Current scheduling systems depend on each meeting participant to allocate travel time between meetings and adjust their schedules accordingly. Current scheduling applications offer time-based reminders for upcoming meetings, which fail if the participant has to travel a long distance to the appointment or if traffic conditions change.
For example, on a large industrial campus, building locations may be miles apart from one another. When a meeting participant has a meeting scheduled for 9:00 AM, for example, at one end of the campus and the participant is located at the other end, the participant would have to leave with sufficient time to travel the distance. Current systems have standard reminders for meetings that are generally in five-minute increments and are set by the participant. This system does not accurately take into account the travel time required to reach the meeting location, or current travel conditions. Further, if there is second meeting scheduled after the 9:00 AM meeting, there are no automated conflict checks that warns a participant that there is insufficient time to travel to the second meeting and arrive on time.
One example of the invention provides an intelligent scheduler that can: 1) identify the preset location of meeting participants and automatically adjust schedules to allow for travel time; 2) automatically check for scheduling conflicts of meeting participants and resources such as meeting locations, projectors, teleconferencing equipment, catering, etc.; 3) automatically select or suggest a time neutral location based on travel time presets and participant priority rules; and/or (4) allow time for travel conditions.
One implementation provides an apparatus for use in a meeting scheduling application, comprising (a) an input interface to obtain a meeting location, date, and time, and a meeting participant list, (b) a processing circuit configured to (1) determine whether the schedules of meeting participants conflict with the meeting date and time; (2) determine a travel time for each meeting participant; and (c) an output interface to (1) send a notification if a conflict exists with a participant's schedule, and (2) transmit an alert to each meeting participant of the meeting just in time to permit each meeting participant to arrive at the meeting location on time. The processing circuit may be further configured to (a) calculate a travel time for a first meeting participant to travel from a first location associated with the first meeting participant to the meeting location; (b) notify the first participant of the meeting with sufficient time to permit the first participant to travel from the first location to the meeting location; (c) receive a second location information from the first meeting participant; and (d) transmit a new meeting alert to the first meeting participant that accounts for the time it takes to travel from the second location to the meeting location. The travel time may be calculated by (a) determining a travel distance between the first location and the meeting location; and (b) dividing the travel distance by a travel rate to determine the travel time. The first location may be a preset location associated with the first meeting participant. Additionally, the notification may be sent to the first participant moments prior to the meeting time, accounting for the travel time between the first location and the meeting location. The processing circuit may be further configured to (a) obtain current travel condition information for the path between the first location and the meeting location; (b) account for travel conditions in calculating the travel time; (r) determine a route to take from the first location to the meeting location; (d) transmit the route to the first participant; (e) check for a scheduling conflict of the meeting location; (f) generate an alternative meeting location, time, or date if a conflict exists; (g) check for a scheduling conflict with the first participant's schedule; and/or (h) if a conflict exists, send a notification of the conflict.
Another embodiment provides a meeting notification method comprising (a) obtaining a meeting location; (b) receiving a list of the meeting participants; (c) automatically determine a travel time for each meeting participant; and/or (d) sending each meeting participant a meeting alert just in time to permit each meeting participant to arrive to the meeting location on time. The method may further comprise (a) obtaining a meeting time and date; (b) obtaining a first location associated with a first participant; (c) determining the travel time between the first location and the meeting location; (d) determining a travel route to take from the first location to the meeting location; (e) transmitting the route to the first participant; (f) monitoring the location of the first participant; (g) notifying other participants if the first participant is going to be tardy to the meeting; (h) determining a convenient meeting location for the meeting participants by minimizing the overall travel times of the combined participants; and/or (i) suggesting such convenient location as the meeting location. Sending each meeting participant a meeting alert includes (a) sending a meeting alert to the first participant moments before the meeting time, and (b) accounting for the travel time to get from the first location to the meeting location.
Yet another embodiment provides a machine-readable medium having one or more instructions for scheduling meetings, which when executed by a processor causes the processor to (a) receive a meeting location, date and time; (b) receive a list of the meeting participants; (c) calculate a travel time for the first meeting participant to travel from a first location associated with the first meeting participant to the meeting location; and (d) notify the first participant of the meeting with sufficient time to permit the first participant to travel from the first location to the meeting location. The travel time may be calculated by (a) determining a travel distance between the first location and meeting location; and (b) dividing the travel distance by a travel rate to determine the travel time. Additionally, the travel time may be obtained from list of predetermined travel times from the first location to the meeting location. The notification may be sent to a terminal associated with the first participant moments prior to the meeting time, accounting for the travel time and travel conditions between the first location and the meeting location.
In the following description, specific details are given to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific detail. For example, circuits may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known circuits, structures and techniques may be shown in detail in order not to obscure the embodiments.
Also, it is noted that the embodiments may be described as a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations can be performed in parallel or concurrently. In addition, the order of the operations may be rearranged. A process is terminated when its operations are completed. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
Moreover, a storage medium may represent one or more devices for storing data, including read-only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “machine readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine-readable medium such as a storage medium or other storage(s). A processor may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted through any suitable means including memory sharing, message passing, token passing, network transmission, etc.
As used herein, an intelligent scheduling application or system includes any program, code, applet, routine, or other such machine or processor implemented algorithm that uses the stored or real-time location of one or more meeting participants to provide scheduling information and notifications to the meeting participants. Examples of such intelligent scheduling applications include programs that can: 1) identify the preset location of meeting participants and automatically adjust schedules to allow for travel time; 2) automatically check for scheduling conflicts of meeting participants and resources such as meeting locations, projectors, teleconferencing equipment, catering, etc.; 3) automatically select or suggest a time neutral location based on travel time presets and participant priority rules; and/or (4) allow time for travel conditions.
According to one feature of meeting scheduling system 114, the system 114 provides location-based meeting scheduling services to one or more meeting participants. For example, when a meeting is scheduled the names of participants are entered and their locations (e.g., office or building) are identified. A participant's location may be his/her regular office location or a real-time location. This location information is accessible to the meeting scheduling system 114 for providing timely location-based notifications to meeting participants that accounts for travel time, traffic, distances, etc.
The meeting scheduling system 114 may provide timely meeting notifications (e.g., text message, email, graphic alerts, audio alerts, etc.) to meeting participants (e.g., anyone invited to the meeting) through terminals 102, 104, 106 and 108. Terminals 102, 104, 106 and 108 may be computers, laptop computers, personal digital assistants (PDA) or wireless devices, such as mobile phones, pagers, wireless modems, personal information managers, handheld computers, and/or other communication/computing devices capable of receiving notifications from an intelligent meeting scheduling application running on scheduling server 116. Terminals 102, 104, 106 and 108, may be configured to receive meeting schedules and notifications, and transmit a participant's location, an acceptance/rejection to attend a scheduled event, etc. Terminals 102, 104, 106 and 108 may transmit to and/or receive information from a network of distribution systems 110 and 112 over wired and/or wireless links.
Distribution systems 110 and 112 are capable of receiving information from, and transmitting information to, terminals 102, 104, 106 and 108 over wired and/or wireless links. Distribution systems 110 and 112 may include various components such as base stations, base station controllers (BSCs), mobile switching centers (MSCs), relay devices, networks, etc.
Scheduling server 116 runs an intelligent meeting scheduling application that provides meeting scheduling, conflict checking, meeting resource allocation, user notifications, and/or availability checking. Having knowledge of participant locations and meeting location information, scheduling server 116 can request or determine travel times and/or distance and, travel conditions, such as traffic information, weather information, road construction/maintenance, road closures, etc., from one or more databases or sources. The travel conditions may be real-time, current, or historical information used for predicting a travel time. Scheduling server 116 then adjusts each participant's travel time and sends a timely notification or alert to the meeting participants that they should depart from their current location to the meeting place at a particular time.
Scheduling server 116 may include a processor, circuit, memory and/or application(s) and database(s) configured to determine an individual participant's location and (1) estimate travel time based on the individual participant's preset or real-time location, (2) estimate travel time based on the individual participant's current location, (3) provide real-time traffic information, and/or (4) provide alternative travel routes (e.g., shortest time, shortest distance, least congested, etc.), or other time and travel related information. The scheduling server 116 may also notify or alert a participant of the meeting with sufficient time to permit the first participant to travel from the first location to the meeting location.
A meeting/personnel location database 120 contains the preset meeting locations on a campus. It may also contain preset or configurable locations of all offices, cubicle, workspaces, etc., of all personnel who work at the campus. When new buildings are added, personnel change location or new personnel are employed, the database are updated to reflect the new location. Additionally, one implementation may include real-time participant location by racking the location of a meeting participant or having knowledge of his/her meeting schedule.
A time-of-travel and/or distances database 122 includes travel time and/or distances between locations on a campus. In one implementation, the distances are all measured from a designated point and can be entered through a database program, or directly by a system administrator. The travel time may include real-time, current, or historical information about travel conditions, such as traffic information, weather information, road construction/maintenance, road closures, etc.
This location and travel time/distance information can then be used by scheduling server 116 to provide timely notifications to meeting participants. Such notifications may be sent to a participant moments (e.g., five minutes, one minute, etc.) before he/she should depart to arrive at the meeting on time. The time-of-travel/distances and location databases may also include maps, directions, etc., that are sent to a meeting participant, either automatically or upon request, to help the participant to travel from his/her current location to the meeting location.
The scheduling server 116, distribution systems 110 and 112, meeting and personnel location database 120, and travel time information database 122 are interconnected to transfer information there between. The meeting and personnel location database 120 and the travel time information database 122 serve as the backbone of the intelligent scheduling application and services provided by the meeting scheduling server 116. As such, these databases may be highly-available, flexible, redundant, and deliver high-performance and salability.
While the exemplary meeting scheduler described herein is for a campus implementation, the intelligent scheduling server 116 may be applied to scheduling meetings at any distances (e.g., across a city, county, or region). In such implementations other features may be added to the intelligent scheduling server 116. For example, a historical or real-time traffic database may enable the system to take into account traffic/commute information when determining travel time to send a participant a meeting reminder or notification.
Depending on the application running on terminals 102, 104, 106 and 108 and terminal resources (e.g., memory, display capabilities, communication capabilities, processing capabilities, etc.), the meeting scheduling server 116 may provide various levels of travel detail or information including, but not limited to, digital maps, text directions, artificial voice directions, etc., when sending a meeting notification or upon request by a meeting participant. The meeting scheduling server 116 may contain mapping and direction algorithms that supports travel time estimates, real-time traffic updates, and/or location information.
One feature may provide a participant's current location information and status (e.g., attending versus not attending, delayed, etc.). This way, meeting participants can be appraised of the geographical proximity of other participants, their estimated arrival time at the meeting location, and whether the participant will be attending.
Another feature may enable a user to specify or update travel time during transit. For example, a participant caught in traffic may send an update to the scheduling system 114. The system can then update and send notifications or new schedule information to all other participants who may decide to adjust their travel plans accordingly.
Another feature may provide real-time tracking of participants by using global positioning system (GPS)-enabled terminals and automatically updates an individual participant's terminal location. That is, the terminals send their position to the intelligent meeting scheduling application its position information. In this manner, participants at the meeting location are be able to determine a missing attendee's estimated arrival time by checking the meeting schedule tracking feature. The intelligent scheduling application may continuously or periodically update individual participant's location.
Another function of scheduling system 114 is to deliver alerts to terminals 102, 104, 106 and 108 based on the participant's location, traffic conditions, distance to the meeting location, etc. For example, the intelligent scheduling application may calculate an estimated arrival time of a participant in bad traffic. The intelligent scheduling application then sends alerts to all meeting participants, if the participant will not arrive on time.
Yet another feature provides a scheduled meetings database 124 which stores meeting schedules and can be accessed by the intelligent scheduling application running in the scheduling server 116 to check for meeting conflicts and/or provide meeting schedules, notifications, or reminders to participants.
One or more of the components and functions illustrated in
One or more of the components and functions illustrated in
According to one optional feature, a travel route from a participant's preset location to the meeting location is determined 316 and sent to the meeting participant 318. Another feature optionally provides for monitoring the real-time location of a meeting participant 320 and notifying the other participants if a participant is going to be tardy 322 to the meeting.
If the meeting location is available at the desired date and time, the meeting scheduling application obtains the schedules for the meeting participants 406. Each participant's schedule is compared to the proposed meeting schedule 408 (e.g., dates and times are compared). If a participant has a scheduling conflict (e.g., two or more events are scheduled at the same or overlapping times), the scheduling application sends a notice of the conflict to person scheduling the meeting and/or the person having the conflict 420. The person scheduling the meeting then has the option of changing the meeting date, time or location to accommodate the invited participant's schedule, ignoring the scheduling conflict, or removing/uninviting the participant from the meeting. If the participant is available, the scheduling application calculates the travel time, adds that time to the participant's schedule 410, and transmit the schedule or notification, indicating departure time or travel time, to the participant 412. This conflict-checking process is repeated until all participants have been scheduled and all conflicts addressed 414.
In an alternative embodiment of the method illustrated in
In one embodiment, the scheduling application may also permit the meeting organizer to the preferred date or time range of the meeting. In this manner, the scheduling application can limit its search for the best available dates and times.
Another feature provides of the meeting scheduling system optimizes the meeting location based on the location of the participants.
Another feature of the scheduling application checks the number of participants attending the meeting before suggesting a meeting location. In this manner, an adequate and available meeting location is provided than can hold the number of expected participants. In such implementation, the scheduling application would have preset knowledge of the capacity of the meeting locations.
In an alternative embodiment of the method illustrated in
In yet another alternative embodiment of the method illustrated in
In yet another alternative embodiment of the method illustrated in
Different types of intelligent scheduling applications may be implemented without departing from the invention. For example, one implementation may schedule meetings and provide on-time reminders to participants within an industrial campus. Another application may provide university students with class schedule notifications or reminder messages, adjusted for travel times between home/dorms and classrooms, to avoid tardiness. In another application, a sales representative may receive reminders on when to leave for client meetings, adjusted for travel time, traffic, etc. Generally, any business or service where people meet and confer with each other would benefit from the efficiency provided by the intelligent scheduler system described herein.
It should be noted that the foregoing embodiments are merely examples and are not to be construed as limiting the invention. The description of the embodiments is intended to be illustrative, and not to limit the scope of the claims. As such, the present teachings can be readily applied to other types of apparatuses and many alternatives., modifications, and variations will be apparent to those skilled in the art.