Techniques are disclosed for performing free-time searches that exploit information of the type used with electronic calendars. By leveraging advanced calendaring system information and using location, other context information such as corporate policy, legal constraints, and technology constraints, and user-specific preferences to provide a complete picture of a person's availability, the functionality (and therefore the value) of scheduling systems in increased, resulting in an ability to schedule meetings with more accuracy and less rework. Various allowable participation types for meeting invitees may be specified, and each invitee's availability is determined accordingly. Location-sensitive travel times (including optional user-specific travel time adjustments) are used in preferred embodiments when in-person participation is required.
PatentSwarm provides a collaborative workspace to search, highlight, annotate, and monitor patent data.
Tip: Select text to highlight, annotate, search, or share the selection.
The present invention is related to the following commonly-assigned U.S. Patents: U.S. Pat. No. 6,988,128, titled “Calendar Events and Calendar-Driven Application Technique” (Ser. No. 09/670,844); U.S. Pat. No. 6,640,230, titled “Calendar-Driven Application Technique for Preparing Responses to Incoming Events” (Ser. No. 09/671,001); U.S. Pat. No. 7,035,865 titled “Calendar-Enhanced Awareness for Instant Messaging Systems and Electronic Status Boards” (Ser. No. 09/941,045); and U.S. Pat. No. 7,096,232, titled “Calendar-Enhanced Directory Searches Including Dynamic Contact Information” (Ser. No. 09/875,556). The disclosures of these related inventions are hereby incorporated herein by reference.
1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with methods, systems, and computer program products for performing intelligent free-time searches (for example, to improve scheduling of meetings) of information such as that used with electronic calendars.
2. Description of the Related Art
Calendars, and electronic calendars in particular, often contain a wealth of information about their owner. For example, an individual may use an electronic calendar to maintain information about his work schedule, his meetings and other appointments, his vacation and business travel plans (including when he will be away, which flights or other transportation he will use, where he can be reached while away, who he may visit while away, etc.), phone calls that need to be made at particular times, and so forth. Examples of electronic calendaring systems include Microsoft Outlook® 2000 and Lotus Notes®. (“Outlook” is a registered trademark of Microsoft Corporation, and “Lotus Notes” is a registered trademark of Lotus Development Corporation.)
Use of electronic calendaring systems for purposes such as scheduling meetings of multiple persons is known in the art. For example, an invitation list may be created for a particular meeting, and a calendaring software application may then use this list to check each invitee's calendar for available time periods. A meeting may then be scheduled during a time period in which all (or some majority) of the invitees have sufficient time available on their calendar. However, prior art scheduling capabilities in calendaring systems have limitations which can render them ineffective in many scenarios. In particular, scheduling meetings between multiple people using prior art techniques is typically a time-consuming task that often involves many iterations. It may either fail to accommodate considerations beyond rudimentary duration requirements or may require significant manual input to handle such considerations, or it may find only unacceptably late dates.
Scheduling capability in prior art electronic calendaring systems, when present, is typically limited to a rudimentary “free-time search” which only looks for blocks of free time on the users' calendars. However, using just free time may generate results that are too constrained in some scenarios or results that are not constrained enough in other scenarios. As an example of results that are too constrained when based solely on free time, it may be acceptable for a particular meeting to have one or more of the invitees participate by phone (rather than requiring them to be present in person); these invitees might be willing to call in to the meeting from their cell phones while they are commuting, or they might be willing to call in after normal business hours, or from an alternate work location or travel destination. For these cases, the person's calendar would ordinarily indicate that they are in an “unavailable” status of one type or another (that is, the commuting, after hours, at alternate work location, or traveling status would not be recognized as “free time” in which meetings could be scheduled). As an example of results that are not sufficiently constrained when based solely on free time, it may happen that some invitees need to be present at the meeting in person, in which case the location of the person is important (in terms of their ability to get to the meeting location), not just whether there is free time on the person's calendar.
The following scenarios illustrate various factors that are not addressed by prior art calendaring systems or their scheduling capabilities. (These calendaring systems and search capabilities are referred to herein generally as “prior art systems”.)
Scenario 1: Prior art systems do not understand nuances related to the physical location of the invitees. Suppose, for purposes of illustration, that Joe works at the Research Triangle Park (“RTP”) site of International Business Machines Corporation (“IBM”), where this RTP site comprises many buildings, some of which are in close physical proximity to each other but others of which are located several miles away. Further suppose that Joe wants to schedule a one-hour, in-person meeting with ten other people who are also located at the RTP site. Joe may use a prior art free-time search capability to search the electronic calendars for the invitees to find one hour where all ten meeting invitees are available. Assuming that all ten people have a common one-hour period available, this time period is selected, and programmatically generated meeting invitations are sent electronically to each invitee. Upon receiving their invitation, several of the invitees decline the invitation because they are located in buildings from which travel time will be required to get to and from the meeting, and they have events already scheduled on either side of the new meeting which prevent their being able to arrive at the next meeting on time. Joe did not manually factor this consideration into the schedule for this meeting, and the prior art free-time search does not have this capability. So, Joe must now find a different hour when everyone can meet, and must also factor in the various travel times for those people who he determines will have to travel. This is a time-consuming effort that requires Joe to not only know the locations of every invitee before and after the proposed meeting and the time it takes to move between these locations and the meeting location, but to also use a combination of free-time search, manual calendar search, and contacting people directly before he can find an appropriate time for the meeting.
There might be other criteria to consider as well, further complicating the scheduling process. For example, some individuals may have travel constraints (such as “Betty participates in a car pool on Tuesdays and Thursdays and therefore has no car”) which prevent them from being able to travel to a meeting at another location.
Scenario 2: Prior art systems do not understand availability beyond simple free time. Suppose now that Joe needs to schedule a one-hour “e-meeting” with Elaine. (An e-meeting may use technology such as Lotus Sametime® or Microsoft's NetMeeting®, which allow people to hold “face-to-face” conversations over the Internet from their computing device. “Sametime” is a registered trademark of Lotus Development Corporation, and “NetMeeting” is a registered trademark of Microsoft Corporation.) Elaine has many events on her calendar, including an out-of-town business trip scheduled for the current week (with meetings scheduled every afternoon), all-day workshops the next week, and vacation the following week. Therefore, when Joe uses a prior art free-time search to search her calendar for one hour of free time, he finds that Elaine won't be available for three weeks. Joe gives up using the automated scheduling system, and calls Elaine's secretary who informs him that Elaine is actually available any morning during her business trip for a one-hour e-meeting. Joe could not determine this by simply looking at Elaine's calendar, and the prior art free-time search is not programmed with this capability.
Scenario 3: Prior art systems do not understand constraints of particular locations and/or policies that impact a person's availability. Suppose that Joe needs to talk to Fred, who travels from one customer site to another in a five-state region. Joe looks at Fred's calendar, and decides to schedule a call during a time in which Fred is scheduled to drive from one customer location to another. What Joe doesn't understand from merely inspecting the entries on Fred's calendar is that Fred will be driving in a state that prohibits cell phone calls while driving. Thus, Joe schedules the meeting, only to learn that it has to be rescheduled. Using the prior art free-time search to find time on Fred's calendar would have not helped in this situation: the automated search would be impaired by the same missing information that Joe needed when manually inspecting Fred's calendar.
In another aspect of this scenario, if the meeting is to discuss confidential topics and corporate policy prohibits discussing confidential information over cell phones, then Joe would need to understand this and not schedule the call while Fred is driving (or during other times when Fred is reachable only by cell phone).
Scenario 4: Prior art systems do not understand capabilities/limitations of various technologies. In yet another aspect of the scenario described above, where Joe wants to reach Fred by cell phone, it might happen that Fred is traveling through a location that allows cell phone calls while driving, provided the cell phone is operated in a “hands-free” mode. Before he could successfully schedule a call with Fred, Joe would have to understand not only where Fred would be at the selected time and any applicable constraints of that location, but also the capabilities of Fred's phone.
Scenario 5: As another example of technology-related constraints, suppose that Joe needs to set up an e-meeting with Barney. Further suppose that Barney is working from home today, according to his calendar. Joe has a high-speed connection in his office, and assumes that everyone else has similar capabilities, so he decides to set up the meeting for today. Barney, however, has a low-speed connection at home. The e-meeting is a disaster, due to the slow line speed.
Scenario 6: Prior art systems do not understand nuances of blocked time, such as time periods marked as having a “local travel” status. Suppose that Joe is trying to schedule a meeting with Wilma at noon in Building number 500. Wilma is in this building from 11 a.m. to noon, according to her calendar, and then has “local travel” scheduled on her calendar from noon until 12:15, giving her time to drive back to her office which is located several miles away in another building. The prior art free-time search would not show that Wilma is actually available at noon in Building number 500.
Accordingly, what is needed are improved scheduling/searching techniques, where these improved techniques consider factors beyond availability of free-time segments on a user's calendar.
An object of the present invention is to provide improved techniques for performing free-time searches of availability information.
Another object of the present invention is to provide these improved techniques by considering factors beyond availability of free-time segments on a user's calendar.
Another object of the present invention is to provide improved scheduling techniques.
It is a further object of the present invention to provide improved techniques for analyzing electronic calendar entries and associated calendar data.
Yet another object of the present invention is to make electronic calendars more useful.
Still another object of the present invention is to define extensions to electronic calendar systems that can be leveraged for improved searching.
Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention.
To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides systems, methods, and computer program products for improving free-time searches and scheduling. In one aspect, this technique comprises: programmatically scheduling a meeting by evaluating, for each invitee of the meeting, calendar data of an electronic calendar to determine each invitee's availability for attending the meeting in one or more allowable participation types; and then scheduling the meeting at a time and location where the invitees are determined to be available for the allowable participation types. The evaluation may further comprise applying factors such as a particular invitee's user-specific preferences and/or corporate policy considerations to determine whether the particular invitee is available for attending the meeting in one or more allowable participation types for this particular invitee. Such factors may also be used to determine whether a particular meeting location is available for scheduling the meeting. Each meeting invitee may have a plurality of allowable participation types, in which case the scheduling of the meeting preferably further comprises scheduling the meeting at a time and location where each invitee is determined to be available for at least one of his/her allowable participation types.
In another aspect, the techniques of the present invention comprise performing a free-time search of calendar data by: retrieving availability information for a plurality of users; locating free-time segments which are available in the retrieved availability information; adjusting the located free-time segments based on one or more context-sensitive criteria which are applicable to this free-time search; determining one or more free-time segments when each of the plurality of users is available, according to the adjusted free-time segments for each of the users; and providing the determined free-time segments as a result of the free-time search. The retrieved availability information preferably comprises calendar data from the users' electronic calendars.
In yet another aspect, the techniques of the present invention comprise programmatically scheduling an event for a plurality of users by: retrieving availability information for a plurality of users; locating free-time segments which are available in the retrieved availability information; adjusting the located free-time segments based on one or more context-sensitive criteria which are applicable to the event being scheduled; determining one or more free-time segments when each of the plurality of users is available, according to the adjusted free-time segments for each of the users; and providing the determined free-time segments as candidate times for scheduling the event.
The context-sensitive criteria preferably comprise one or more of: user preferences of one or more users; policy considerations; legal constraints; location constraints; technology constraints; and device constraints.
The adjusting process preferably further comprises: analyzing located free-time segments in one or more busy bars for each of the users; and marking a particular one of the analyzed free-time segments as a busy-time segment if the context-sensitive criteria indicate that this user is not actually available during this particular time segment. The adjustments may be made for each user's retrieved availability information in view of one or more allowable participation types for that user. If the participation type allowed for a particular user is in-person participation in the event, then marking free-time segments as busy-time segments is performed if the context-sensitive criteria indicate that the particular user is not available for in-person participation during the selected time segment. For in-person participation, travel time is computed as part of the process, and the travel time between locations may be obtained in a number of ways. User-specific adjustments may optionally be applied to the computed travel time. The travel time may represent more than one mode of travel.
In still another aspect, the techniques of the present invention comprise scheduling a meeting by: selecting one or more meeting invitees; selecting, for each invitee, an allowable participation level; evaluating availability information for each invitee, with reference to the allowable participation level; and using results of the evaluation for all invitees to determine when the meeting can be scheduled. The allowable participation level for each invitee may be a minimum required participation level, in which case the evaluation process evaluates the availability information for each invitee for the minimum required participation level and for zero or more higher-ranking participation levels which are implied by the minimum required participation level. Or, the selection may be of one or more explicitly-specified participation levels for each invitee, in which case the evaluation process evaluates the availability information for each invitee for each of the one or more explicitly-specified participation levels of that invitee.
One or more candidate meeting times may be determined when all invitees are available according to the evaluation process. A meeting location supplied by a meeting scheduler may be considered as a constraint on when the meeting can be scheduled. One or more meeting preferences supplied by the meeting scheduler might additionally, or alternatively, be considered in determining when the meeting can be scheduled.
The results of the evaluation are preferably presented to a meeting scheduler, who may then select from among a plurality of potential times and/or locations in the presented results. Meeting invitations may then be sent automatically to the invitees, wherein the meeting invitations specify the selected time and location. The meeting invitations may further specify travel time to and/or from the selected location for those invitees for whom in-person participation is an allowable participation level, and may specify one or more allowable participation levels for each meeting invitee.
The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.
FIG. 1 provides a sample graphical user interface (“GUI”) display which may be used to enter scheduling criteria, according to the present invention;
FIG. 2 provides an overview flow chart which sets forth logic that may be used when implementing preferred embodiments of the present invention;
FIGS. 3-7 illustrate flow charts which set forth logic that may be used to implement free-time searches for scheduling a meeting in a particular location, according to preferred embodiments of the present invention;
FIG. 8 illustrates how a sample “busy bar” is programmatically adapted by preferred embodiments of the present invention to account for travel time;
FIGS. 9-11 provide flow charts which set forth logic that may be used to direct free-time searches in the absence of a pre-specified meeting location, according to preferred embodiments of the present invention; and
FIG. 12 illustrates a sample GUI showing results of a search where multiple potential meeting times and locations were found.
The present invention defines improved techniques for finding common free time, where this common free time is described herein with reference to scheduling meetings among calendar owners using information of the type used by electronic calendars. The disclosed techniques provide more intelligent searching of calendar data, resulting in improved calendar-based scheduling; thus, the terms “searching” and “scheduling” may be used interchangeably when describing advantages of the present invention. (While the discussions herein presume that a person's availability information comes from electronic calendar data, this is for purposes of illustration and not of limitation. The actual origin of the availability data may be different, without deviating from the scope of the present invention. Furthermore, preferred embodiments are described herein with reference to scheduling meetings. However, the disclosed techniques may be adapted to other uses, including but not limited to scheduling other types of events, and such other uses are considered within the scope of the present invention.)
The term “calendar data” is used herein to describe information of the type used by electronic calendars, which preferably comprises calendar entries as well as other information such as the calendar owner's working hours, the time zone for a particular calendar, and preferences that, for example, could indicate how a calendar owner's calendar entries should be interpreted and/or could provide schedules for when devices such as cell phones or pagers could be used.