1. Field of the Invention
The present invention relates to the field of computer software and, more particularly, to scheduling software that manages the travel time of meeting participants.
2. Description of the Related Art
Scheduling software is used to manage the myriad of details relating to meetings, including meeting locations, meeting times, and meeting participants. Typical scheduling software components can include calendars, contact address books, facility management features, task tracking capabilities, communication features, notification features, and the like. Effective use of scheduling software can result in lower meeting setup and coordination time and enhanced meeting attendance. When scheduling software is used to manage meetings, the number of meetings that are missed through lack of proper coordination and communication among meeting participants can be reduced.
Conventional scheduling software, however, has not averted meeting delays due to participants arriving late. One reason for these meeting delays is that meeting participants often fail to allocate sufficient travel time to arrive at scheduled meetings in a timely fashion. Insufficient travel time allocation can result from oversight, unrealistic optimism concerning necessary travel time, and unplanned travel difficulties. Travel difficulties can result from variable travel conditions, such as traffic, airline connections, and bus and train schedules, weather, accidents, and the like. At present, conventional scheduling software fails to provide meeting participants or meeting coordinators with travel time management and calculation tools that could allay meeting delays relating to meeting participant travel times.
The present invention provides a method, a system, and an apparatus for accounting for travel time within scheduling software. More specifically, scheduling software can record and manage meeting related data including, but not limited to, meeting locations, meeting times, meeting participants, and the originating locations of the meeting participants. The scheduling software can automatically calculate travel times for meeting participants based upon originating locations and meeting destination locations. The travel times can be used to calculate suggested departure times, which can be presented to meeting participants. Further, the scheduling software can receive travel condition input, such as traffic and weather data, and can dynamically adjust travel time computations in an appropriate fashion to account for the received travel conditions. Additionally, the scheduling software can be used to dynamically adjust meeting specifics to account for travel related problems, such as missed airline flights.
One aspect of the present invention can include a method for scheduling meetings within a scheduling application. The method can include the step of identifying a meeting location and a meeting time. An origination location can be determined for at least one meeting participant. Travel time for the participant can be automatically computed based at least in part upon the meeting location and the origination location. A time based upon the computed travel time can be presented within the scheduling application. For example, a suggested departure time can be computed and presented within the scheduling application, where the suggested departure time is based upon travel time and meeting time. In one embodiment, at least one mode of communication can be offered for participating in the meeting in a timely fashion, where the offering step can be based at least in part upon the travel time and meeting time. Additionally, a meeting reminder can be automatically conveyed to the meeting participant at some time before the suggested departure time.
In a particular embodiment, an electronic message pertaining to a travel condition can be received and travel times for meeting participants can be responsively adjusted. In another embodiment, the scheduling application can utilize a calculated travel time to proactively determine that the participant will be unable to attend the meeting in a timely fashion. When this determination is made before the planned meeting time, some adjustment can be made so that the meeting participant can still attend the meeting on time. For example, the meeting time can be changed to a later time; the meeting location can be changed to reduce an associated travel time for the participant; and/or, a meeting participation methodology can be changed for the participant. That is, instead of attending a meeting physically, the meeting participant can attend in the meeting in a virtual manner. Virtual attendance can include teleconferencing, Web conferencing, video teleconferencing, and the like.
When a meeting adjustment is made, an electronic document can be responsively conveyed to each meeting participant. The electronic document can specify a meeting adjustment notification and/or a predicted absence notification. In one embodiment, a second meeting that is dependent upon the first meeting can be identified. When the first meeting exceeds a previously established meeting end time, one or more parameters of the second meeting can be automatically adjusted. Further, when the parameter of the second meeting is adjusted, an electronic document relating to the adjustment can be conveyed to each participant of the second meeting.
In another embodiment, a location matrix can be used to calculate the travel time for the scheduling application. The location matrix can include multiple location nodes joined by multiple link weights. Link weights can be values representing travel time that connect pairs of locations nodes. When calculating travel time, location nodes corresponding to the meeting location and to a participant's originating location can be identified. A travel pathway that includes at least one link weight can be plotted between the identified location nodes. Travel time can be computed based upon the link weight(s) of the travel pathway. Further, a link weight can be modified based upon a situation dependant circumstance, such as a travel condition. When the link weight is modified, the travel time can be calculated based upon the modified link weight and not upon a default link weight.
Another aspect of the present invention can include a system for managing meetings including a scheduling application, a travel time calculator, and/or a location matrix. The scheduling software can record a multitude of meeting events. Each of the meeting events can include a meeting location, a meeting start time, a multitude of meeting participants, and a multitude of origination locations. Each origination location can be associated with a meeting participant. In one embodiment, the scheduling application can determine a suggested meeting time for the meeting events based upon travel times of meeting participants associated with the meeting events.
The travel time calculator can calculate a travel time based at least in part upon a starting location and an ending location. The travel time can be calculated for one of the meeting participants using the associated originating location as the starting location and the meeting location as the ending location. In one embodiment, the travel calculator can receive travel condition input. In such an embodiment, a travel time calculation can be based at least in part upon the travel condition input.
The location matrix can be used by the travel time calculator to calculate travel times. The location matrix can include a multitude of location nodes, wherein connections between selected ones of the location nodes can be assigned link weights.
There are shown in the drawings, embodiments which are presently preferred, it being understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown.
The scheduling application 105 can be any software application with meeting scheduling and coordination capabilities. The scheduling application 105 can be a network-based application that is communicatively linked to other scheduling applications, contact management systems, personal information management systems, and the like. The scheduling application 105 can also be a stand-alone software application that may or may not be capable of exchanging information with other software applications. Further, the scheduling application can be a client or a server based application. The scheduling application 105 can reside upon servers, desktop computers, mobile computer systems, personal data assistants, cellular telephones, and the like. Exemplary scheduling applications 105 can include Lotus Organizer (TM) by International Business Machines (IBM) of Armonk, N.Y., Lotus Notes (TM) by IBM, and the like.
The time travel calculator 110 can be a software application configured to calculate travel times based upon two locations, which represent a starting location and an ending location. The travel calculator 110 can be a stand-alone application communicatively linked to the scheduling application 105, can be a plug-in program adding capabilities to the scheduling application 105, and/or can be a functionality integrated within the scheduling application 105.
In one embodiment, the time travel calculator 110 can access a data store 115 to obtain travel and/or meeting information pertaining to meetings, locations, and travel conditions. The data store 115 can be any memory space configured to store and retrieve data. The time travel calculator 110 can also receive travel information from users and/or other applications, such as personal information manager (PIM) 130, scheduling application 105, travel service 135, traffic service 140, airline service 142, weather service 144, and the like. It should be noted that sources of travel information for system 100 are not limited to the explicitly listed information sources and that travel information can be provided by any of a variety of suitable sources. Additional travel information sources can include, for example, a bus service, a taxi service, a subway service, and a ferry service.
Travel information used by the time travel calculator 110 can be general as well as specific. General travel data can include, for example, distances between two locations, general travel times between locations, and the like. Specific travel information can include, but is not limited to, travel information specific to a mode of travel, location specific travel information, conditional traffic information for trips between specified locations, person-specific travel time information extrapolated from past trips, and the like.
Table 150 and table 170 are exemplary tables containing meeting and travel information that can be accessed by the scheduling application 105 and the travel time calculator 110. Table 150 is a table for storing meeting information for a particular person, such as a user of PIM 130. The table 150 can include a meeting column 152, a start time column 154, an end time column 156, a departure location column 158, an arrival location column 160, an allocated travel time column 162, an estimated travel time column 164, and the like.
The meeting column 152 can specify key values for uniquely identifying a meeting. The start time column 154 can record the scheduled start time for a meeting. The end time column 156 can record the scheduled end time for a meeting. The departure location column 158 can specify the location a person is departing from and the arrival location column 160 can specify the location to which the person is traveling. The allocated travel time column 162 can indicate the time that the person allowed themselves for travel to an associated meeting. The estimated travel time 164 can specify times calculated by the travel time calculator 110 that represent a system determined travel time. When the allocated travel time 162 is less than the estimated travel time 164, the scheduling application 105 can indicate that a potential scheduling problem exists.
Table 170 is a table for storing information specific a particular meeting. The table 170 can include a meeting column 172, a participant column 174, a time column 176, a location column 178, and an alternatives column 180, and the like. The meeting column 172 can specify key values for uniquely identifying a meeting. When records in table 170 and table 150 identify a meeting with the same key, the two records presumably represent the same meeting. The participant column 174 can specify participants that are to attend the associated meeting. The time column 176 can specify the duration of a meeting, including both start and end times. The location 178 can specify the location within which a meeting is to be conducted. The alternatives 180 can specify whether any alternatives to physical attendance are available for a meeting. Alternatives can refer to available virtual attendance options, such as telephony teleconferencing, video teleconferencing, Web conferencing, chatting, co-browsing, and the like. Alternatives can permit participants hampered by travel time to nevertheless participate in a meeting in a timely fashion.
In operation, a person can schedule a meeting using scheduling application 105 and enter a preferred meeting location and time. When meeting participants are designated, the scheduling application 105 can automatically determine participant locations from existing data sources. Additionally, the travel time calculator 110 can be used calculate the travel times of the meeting participants. The travel times combined with the preferred meeting time can be used to automatically calculate departure times for the participants.
In one embodiment, the scheduling application 105 can automatically facilitate travel arrangements for the participants by querying a multitude of travel related sources, including travel service 135 and airline service 142. The queries to travel sources can result in automatically generated travel itineraries. In another embodiment, the scheduling application 105 can suggest meeting times and/or locations to the person scheduling the meeting based upon the schedules of participants, available meeting locations, and the travel times/costs associated with the planned meeting.
It should be appreciated that table 150 and table 170 are intended for illustrative purposes only and that variances are permitted from the embodiments disclosed herein without departing from the spirit or essential attributes of the present invention.
The location matrix 205 specifies nodes A, B, C, D, and E, each of which represents a location. The number of nodes in the location matrix 205 is not limited to five locations, and any number of locations can be expressed by the location matrix 205 so long as a corresponding node is added for each additional location. When travel is possible between locations, a line segment is drawn within the location matrix 205 between the appropriate location nodes. Similarly, when direct travel between two locations is not permitted, no line segment is drawn between the corresponding nodes.
For example, when travel restrictions exist between locations A and B making direct travel impossible, no line segment will connect nodes A and B. In such an example, an individual can follow a multi-node path, such as path A-C-B or A-D-B, to travel from location A to location B. Notably, geographical and security considerations can sometimes cause travel from a selected node to another to be impossible without traveling to one or more intervening nodes. As shown in system 200, no travel restrictions exist between nodes A, B, C, D, and E as a user can travel directly between each node.
Each line segment can have an associated numeric value called a link weight. The link weight can quantify the travel time needed to travel from one location to another. In one embodiment, multiple different link weights can be assigned to a single node pair, where each link weight can be associated with a particular mode of travel. Modes of travel can include, but are not limited to, walking, jogging, operating a wheelchair, driving a car, taking a cab, flying in an airplane, and the like.
The matrix table 210 can be an N by N matrix where N represents the number of nodes or locations that are represented within the matrix table 210. The matrix table 210 can be used to represent the location matrix 205. Accordingly, destination or ending locations can be represented by the columns of the matrix table 210, and the rows can represent starting or origination locations. The matrix table 210 can therefore include columns for nodes A, B, C, D, and E and rows for nodes A, B, C, D, and E. Cells within the matrix table 210 can represent link weights between nodes. For example, a link weight of Y is specified for travel from node A to node B. In another example, a link weight of Z is specified for travel from node C to node D.
In one embodiment, the matrix table 210 can represent directional pathways, where travel between locations can require different times depending on the direction of travel. For example, matrix table 210 can specify a time of ten minutes for traveling from an origin of A to a destination of B and a time of five minutes for traveling from an origin of B to a destination of A. In another embodiment, link weights between nodes can be the same in both directions, thereby representing non-directional pathways between nodes. One of ordinary skill in the art can appreciate that linear algebra transformations can be performed upon the matrix table 210 without a loss of stored information. Accordingly, when non-directional pathways are used, the matrix table 210 can be expressed as a simplified table.
The location matrix 215 can be represented by matrix table 220. The matrix table 220 can be a table where each destination location can be represented by a column and each originating location can be represented by a row. The matrix table 220 can therefore include columns for Location A-D-E, Location B, and Location C and rows for Location A-D-E, Location B, and Location C.
The creation of a reduced matrix, such as location matrix 220 that represents a reduction of location matrix 210, can dramatically reduce the overhead necessary for computing travel times without significantly decreasing the accuracy to these calculations. Such a reduction can be particularly important when travel times are computed for a large number of locations, as otherwise the number of necessary columns and rows of a matrix table can grow geometrically with the number of locations.
In step 325, the scheduling application can determine whether a travel condition has been received that relates to the participant. A travel condition can be any variable factor relating to traveling to a meeting that can affect the travel time. For example, if the participant's travel itinerary for the meeting includes an airplane flight, a travel condition can include a delay or cancellation of that flight. If the participant's travel itinerary includes an automobile trip, a travel condition can include a highway accident or other traffic condition within the anticipated travel route. If a travel condition is received, the method can proceed to step 330, where travel time can be appropriately adjusted. For example, when a travel condition indicates heavy highway traffic, then the travel time relating to an automobile trip can be increased by a suitable factor to allow for the heavy traffic. In another example, a meeting participant can input a physical condition affecting that participant's ability to travel, such as a disability or an injury. The scheduling application can responsively increase the travel times for the participant by a suitable factor. After appropriate adjustments are made, the method can continue to step 335. If no travel condition is determined in step 325, the method can proceed to step 335.
In step 335, a suggested departure time can be determined. In one embodiment, a meeting reminder can be presented at some time before the suggested departure time. For example, five minutes before a suggested departure time arrives, a meeting reminder popup window can be automatically presented to the meeting participant. In step 340, participant departure times and travel times can be monitored by the scheduling application. In step 345, a determination can be made as to whether the participant is able to attend the meeting in a timely fashion. If so, the method can proceed to step 350, where the activities of the scheduling application pertaining to the participant can end. The scheduling application can, however, continue to monitor other meetings and/or meeting participants.
If step 345 indicates that the participant cannot attend the meeting in a timely fashion, the method can proceed to step 355. In step 355, a determination can be made concerning whether a meeting adjustment is possible that would permit the participant to attend the meeting in a timely fashion. If an adjustment is possible, the method can proceed to step 360, where at least one aspect of the meeting can be adjusted. For example, the meeting time can be changed to a later time. In another example, the meeting location can be changed to reduce an associated travel time for the participant.
In still another example, a meeting adjustment can alter the method of participation from physical attendance (or other previously established participation methodology) to a different mode of communication. That is, instead of attending a meeting physically, the meeting participant can participate in the meeting in a virtual manner, including teleconferencing, Web conferencing, video teleconferencing, and the like. Because the alternate mode of communication can involve significantly less travel time than the originally planned attendance methodology, the participant can participate in the meeting in a timely fashion.
It should be noted that choosing which meeting adjustments are to be made for a particular meeting can involve a negotiation between the meeting coordinator and a participant experiencing time difficulties. For example, when a portion of meeting participants are already attending the meeting in a virtual manner, such as through video teleconferencing, it can be relatively simple for a participant who was planning to attend the meeting in a face-to-face manner to instead participate by video teleconferencing. It can be difficult, however, for a meeting coordinator to acquire the necessary equipment and/or set up the equipment in a timely fashion to permit meeting participants to participate through different communication modes than those originally planned. Therefore, it may be easier for the meeting coordinator to adjust the meeting time and/or location than to permit a participant to alter a communication mode. Meeting coordination software can be utilized to facilitate the negotiation of suitable meeting adjustments. In step 365, once a meeting adjustment has been made, a meeting adjustment notification can be sent to all meeting participants.
If step 355 indicates that no meeting adjustment solving the travel time problem can be made, then the method can proceed to step 370, where a predicted absence notification concerning the participant can be sent to all other meeting participants. Depending upon the relative importance of the participant, the meeting can then be canceled, a substitute meeting participant can be appointed, the meeting agenda can be adjusted, a notice advising other participants of a potential tardiness of the specified participant can be sent, and other appropriate actions can be taken.
The present invention can be realized in hardware, software, or a combination of hardware and software. The present invention can be realized in a centralized fashion in one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software can be a general purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention also can be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
This invention can be embodied in other forms without departing from the spirit or essential attributes thereof. Accordingly, reference should be made to the following claims, rather than to the foregoing specification, as indicating the scope of the invention.