Intelligent free-time search
First Claim
1. A method of scheduling a meeting, comprising using computer-readable program code executing on a computer for:
- programmatically evaluating, for each of a plurality of meeting invitees of a meeting to be scheduled, calendar data of an electronic calendar of that meeting invitee to determine each meeting invitee'"'"'s availability for attending the meeting in each of at least one allowable participation type for which a meeting scheduler indicates that this meeting invitee is allowed to participate in the meeting, wherein at least one of the meeting invitees has at least two allowable participation types, by using calendared events of the calendar data of the meeting invitees to programmatically build, for each of the allowable participation types for each of the plurality of meeting invitees, a busy bar representing the calendared events of that meeting invitee, wherein;
each of the busy bars comprises a free-time segment for each time segment when the calendar data indicates that the meeting invitee is available for participation in the meeting in the corresponding allowable participation type and a busy-time segment for each time segment when the calendar data indicates that the meeting invitee is not available for participation in the meeting in the corresponding allowable participation type; and
for at least one of the plurality of meeting invitees that has at least two allowable participation types, the free-time segments and the busy-time segments in a first one of the busy bars programmatically built for a first one of the allowable participation types for that meeting invitee are different from the free-time segments and the busy-time segments in a second one of the busy bars programmatically built for a second one of the allowable participation types for that meeting invitee; and
programmatically scheduling the meeting at a time and location where the busy bars programmatically built by the programmatically evaluating indicate that each of the meeting invitees is available for attending the meeting by at least one of the at least one allowable participation type for that meeting invitee.
0 Assignments
0 Petitions
Accused Products
Abstract
Techniques are disclosed for scheduling meetings by exploiting 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/or 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.
53 Citations
20 Claims
-
1. A method of scheduling a meeting, comprising using computer-readable program code executing on a computer for:
-
programmatically evaluating, for each of a plurality of meeting invitees of a meeting to be scheduled, calendar data of an electronic calendar of that meeting invitee to determine each meeting invitee'"'"'s availability for attending the meeting in each of at least one allowable participation type for which a meeting scheduler indicates that this meeting invitee is allowed to participate in the meeting, wherein at least one of the meeting invitees has at least two allowable participation types, by using calendared events of the calendar data of the meeting invitees to programmatically build, for each of the allowable participation types for each of the plurality of meeting invitees, a busy bar representing the calendared events of that meeting invitee, wherein; each of the busy bars comprises a free-time segment for each time segment when the calendar data indicates that the meeting invitee is available for participation in the meeting in the corresponding allowable participation type and a busy-time segment for each time segment when the calendar data indicates that the meeting invitee is not available for participation in the meeting in the corresponding allowable participation type; and for at least one of the plurality of meeting invitees that has at least two allowable participation types, the free-time segments and the busy-time segments in a first one of the busy bars programmatically built for a first one of the allowable participation types for that meeting invitee are different from the free-time segments and the busy-time segments in a second one of the busy bars programmatically built for a second one of the allowable participation types for that meeting invitee; and programmatically scheduling the meeting at a time and location where the busy bars programmatically built by the programmatically evaluating indicate that each of the meeting invitees is available for attending the meeting by at least one of the at least one allowable participation type for that meeting invitee. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for scheduling a meeting, the system comprising:
-
a processor and a memory coupled thereto, the memory storing instructions which are executable, using the processor, to perform functions comprising; programmatically evaluating, for each of a plurality of meeting invitees of a meeting to be scheduled, calendar data of an electronic calendar of that meeting invitee to determine each meeting invitee'"'"'s availability for attending the meeting in each of at least one allowable participation type for which a meeting scheduler indicates that this meeting invitee is allowed to participate in the meeting, wherein at least one of the meeting invitees has at least two allowable participation types, by using calendared events of the calendar data of the meeting invitees to programmatically build, for each of the allowable participation types for each of the plurality of meeting invitees, a busy bar representing the calendared events of that meeting invitee, wherein; each of the busy bars comprises a free-time segment for each time segment when the calendar data indicates that the meeting invitee is available for participation in the meeting in the corresponding allowable participation type and a busy-time segment for each time segment when the calendar data indicates that the meeting invitee is not available for participation in the meeting in the corresponding allowable participation type; and for at least one of the plurality of meeting invitees that has at least two allowable participation types, the free-time segments and the busy-time segments in a first one of the busy bars programmatically built for a first one of the allowable participation types for that meeting invitee are different from the free-time segments and the busy-time segments in a second one of the busy bars programmatically built for a second one of the allowable participation types for that meeting invitee; and programmatically scheduling the meeting at a time and location where the busy bars programmatically built by the programmatically evaluating indicate that each of the meeting invitees is available for attending the meeting by at least one of the at least one allowable participation type for that meeting invitee. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product for scheduling a meeting, the computer program product embodied on one or more computer-readable storage media having computer-readable program code embodied therein for:
-
programmatically evaluating, for each of a plurality of meeting invitees of a meeting to be scheduled, calendar data of an electronic calendar of that meeting invitee to determine each meeting invitee'"'"'s availability for attending the meeting in each of at least one allowable participation type for which a meeting scheduler indicates that this meeting invitee is allowed to participate in the meeting, wherein at least one of the meeting invitees has at least two allowable participation types, by using calendared events of the calendar data of the meeting invitees to programmatically build, for each of the allowable participation types for each of the plurality of meeting invitees, a busy bar representing the calendared events of that meeting invitee, wherein; each of the busy bars comprises a free-time segment for each time segment when the calendar data indicates that the meeting invitee is available for participation in the meeting in the corresponding allowable participation type and a busy-time segment for each time segment when the calendar data indicates that the meeting invitee is not available for participation in the meeting in the corresponding allowable participation type; and for at least one of the plurality of meeting invitees that has at least two allowable participation types, the free-time segments and the busy-time segments in a first one of the busy bars programmatically built for a first one of the allowable participation types for that meeting invitee are different from the free-time segments and the busy-time segments in a second one of the busy bars programmatically built for a second one of the allowable participation types for that meeting invitee; and programmatically scheduling the meeting at a time and location where the busy bars programmatically built by the programmatically evaluating indicate that each of the meeting invitees is available for attending the meeting by at least one of the at least one allowable participation type for that meeting invitee. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification