US9867014B2 - Meeting notification and modification service - Google Patents

Meeting notification and modification service Download PDF

Info

Publication number
US9867014B2
US9867014B2 US15/006,079 US201615006079A US9867014B2 US 9867014 B2 US9867014 B2 US 9867014B2 US 201615006079 A US201615006079 A US 201615006079A US 9867014 B2 US9867014 B2 US 9867014B2
Authority
US
United States
Prior art keywords
appointment
user
time
calendar application
travel
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
US15/006,079
Other versions
US20160142882A1 (en
Inventor
Stephen J. Coughlin
Adrienne C. Meisels
Steven E. Greenberg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Facebook Inc
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
Priority claimed from US11/618,069 external-priority patent/US7941753B2/en
Application filed by Facebook Inc filed Critical Facebook Inc
Priority to US15/006,079 priority Critical patent/US9867014B2/en
Assigned to AOL INC. reassignment AOL INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AOL LLC
Assigned to FACEBOOK, INC. reassignment FACEBOOK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AOL INC.
Assigned to AOL LLC reassignment AOL LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MEISELS, ADRIENNE C., GREENBERG, STEVEN E., COUGHLIN, STEPHEN J.
Publication of US20160142882A1 publication Critical patent/US20160142882A1/en
Application granted granted Critical
Publication of US9867014B2 publication Critical patent/US9867014B2/en
Assigned to META PLATFORMS, INC. reassignment META PLATFORMS, INC. CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FACEBOOK, INC.
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration information
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/20Instruments for performing navigational calculations
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/3407Route searching; Route guidance specially adapted for specific applications
    • G01C21/3438Rendez-vous, i.e. searching a destination where several users can meet, and the routes to this destination for these users; Ride sharing, i.e. searching a route such that at least two users can share a vehicle for at least part of the route
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3605Destination input or retrieval
    • G01C21/362Destination input or retrieval received from an external device or application, e.g. PDA, mobile phone or calendar application
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3697Output of additional, non-guidance related information, e.g. low fuel level
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • 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/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063116Schedule adjustment for a person or group
    • 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
    • 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
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • 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
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1095Meeting or appointment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W68/00User notification, e.g. alerting and paging, for incoming communication, change of service or the like

Definitions

  • This disclosure relates to meeting notification and modification service.
  • a user may populate an electronic calendar with appointments that take place at different locations.
  • the electronic calendar may be, for example, a Microsoft Outlook calendar, and may be manually programmed to include a date and time of appointments and locations associated with the appointments.
  • an appointment in a calendar application is identified, and a geographic location of the appointment is identified.
  • An appointment time at which the appointment is due to start and a current time are identified, and an amount of time remaining between the current time and the appointment time at which the appointment is due to start is identified.
  • first participant of the appointment is identified at the current time.
  • a route extending from the geographic location of the first participant to the geographic location of the appointment is identified, a travel time associated with the route is identified, and it is determined whether the travel time exceeds the amount of time remaining until the appointment time. If it is determined that the travel time exceeds the amount of time remaining, a communication is sent.
  • Implementations may include one or more of the following features.
  • the travel time may be identified based on a current road condition or traffic flow, or the travel time may be identified based on a historic traffic flow.
  • a modality of travel of the first participant to the geographic location of the appointment may be identified, and, based on the modality of travel, the travel time associated with the route may be identified.
  • a time threshold at which travel could be completed by adding the travel time to the current time may be identified, and a later time to schedule the appointment may be determined based on the time threshold.
  • the later time may be the same as or later than the time threshold.
  • the appointment time may be postponed to the later time to thereby enable the first participant to arrive at the geographic location of the appointment. Based on the postponed appointment time, updated appointment information may be sent to at least one participant of the appointment or another designee.
  • the first participant may be alerted that the first participant will be late to the appointment, and/or a second participant, other than the first participant, may be alerted that the first participant will be late to the appointment.
  • the second participant may be informed of the geographic location of the first participant and the travel time of the first participant to the geographic location of the appointment, and the second participant may be informed that the appointment is being changed to account for the travel time.
  • the calendar application of the first and second participants may be accessed, and time availability of the first and second participants may be identified.
  • a mutually convenient time for the first and second participants to participate in a rescheduled version of the appointment may be determined based on the time availability of the first and second participants, and the appointment may be automatically rescheduled at the mutually convenient time for the first and second participants.
  • travel time may be accounted for in each of the first and second participants' schedules, and the mutually convenient time may be selected from among multiple mutually convenient times based on, among other factors, temporal proximity to geographic locations associated with adjacent appointments in one or both of the first and second participants' calendars.
  • one or more suggestions may be provided to the first participant to respond to the alert message.
  • the one or more suggestions may include a suggestion to change the modality of travel used to compute the travel time associated with the route, and/or a suggestion to send a message to the second participant informing the second participant atm estimated arrival time.
  • Telephone contact information may be accessed for the second participant, and a suggestion may be provided to the first participant to call the second participant.
  • the suggestion may include a telephone number for the second participant determined based on the accessed telephone contact information for the second participant.
  • a current geographic location of the first participant may be identified.
  • the current geographic location of the first participant may be identified based on a location-based technology utilized by a client device of the first participant.
  • the client device may utilize a global positioning system.
  • a notification window may be displayed at a specified time that precedes the appointment time by at least the travel time to the geographic location of the appointment if it is determined that the travel time does not exceed the amount of time remaining until the appointment time.
  • appointment information within a calendar application is dynamically updated.
  • An appointment within a calendar application is identified, and appointment times at which the appointment is due to start and due to end are identified. It is identified that the appointment has been delayed for a certain amount of time, and at least one remaining appointment within the calendar application is identified.
  • a need to reschedule at least one remaining appointment is determined based on the certain amount of time that the appointment has been delayed, it is confirmed with at least one participant of the appointment that the remaining appointment should be rescheduled.
  • the remaining appointment is dynamically rescheduled within the calendar application such that a starting time of the remaining appointment is postponed by the certain amount of time.
  • Implementations may include one or more of the following features. For instance, participants of the remaining appointment may be informed of the rescheduling of the remaining appointment. Availability of participants of the appointment at the postponed starting time may be confirmed, and the participants of the appointment may be notified when conflicts with the postponed starting time exist.
  • travel conditions are monitored and changes to travel conditions associated with one or more participants traveling to an appointment are dynamically processed.
  • An amount of time remaining until an appointment time at which an appointment is due to start is identified, and a travel time corresponding to a route of travel associated with one or more participants traveling to the appointment is identified.
  • Based on the identified amount of time remaining until the appointment time and the identified travel time corresponding to the route it is determined that the one or more participants traveling to the appointment are estimated to arrive at the appointment on time.
  • Travel conditions for the route of travel associated with the one or more participants traveling to the appointment are monitored and a change in travel conditions is detected for the route of travel associated with the one or more participants traveling to the appointment.
  • an updated amount of time remaining until the appointment time at which the appointment is due to start is determined, and a current location of the one or more participants is determined. Based on the current location of the one or more participants, an updated travel time corresponding to the route of travel associated with the one or more participants traveling to the appointment is determined. Based on the updated amount of time remaining until the appointment time and the updated travel time corresponding to the route of travel, it is determined that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions. In response to determining that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions, a communication is sent.
  • Implementations may include one or more of the following features. For example, one or more alternative routes may be identified for the one or more participants traveling to the appointment, one or more alternative travel times associated with each of the identified one or more alternative routes of travel may be determined, and it may be determined whether at least one of the one or more alternative travel times is less than the updated travel time. Conditioned on determining that at least one of the one or more alternative travel times is less than the updated travel time, at least one of the one or more alternative routes of travel for which the one or more alternative travel times is lowest is selected, and the one or more participants are alerted about the selected at least one of the one or more alternative routes of travel. Conditioned on determining that at least one of the one or more alternative travel times is not less than the updated travel time, the one or more participants are alerted about current travel conditions and are informed that the route of travel remains most efficient.
  • an alert message may be sent to at least one of the participants of the appointment.
  • the alert message may indicate that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions.
  • the appointment may be dynamically rescheduled based on the updated travel time, and the participants of the appointment may be notified that the appointment has been dynamically rescheduled.
  • One or more subsequent appointments in a calendar of at least one of the participants of the appointment may be identified, and the one or more subsequent appointments may be dynamically rescheduled based on the dynamically rescheduled appointment.
  • a participant is assisted with a calendar appointment when the participant diverges from a suggested route for traveling to the calendar appointment.
  • a current geographic location of a participant traveling to an appointment scheduled in a calendar application used by the participant is determined, and information indicative of the suggested route of travel is accessed.
  • the geographic location of the participant is compared to one or more geographic locations associated with the route of travel suggested for the participant, and, based on comparison results, it is determined whether the current geographic location of the participant traveling to the appointment differs more than a threshold from the one or more geographic locations associated with the route of travel suggested for the participant.
  • an updated route of travel to the appointment is determined based on the current geographic location of the participant, and a travel time associated with the updated route of travel to the appointment is determined. Based on the travel time associated with the updated route of travel, it is determined whether the participant traveling along the updated route is estimated to arrive at the appointment on time.
  • the participant traveling along the updated route is estimated to arrive at the appointment on time.
  • the participant is provided with information related to the updated route of travel.
  • the participant traveling along the updated route is not estimated to arrive at the appointment or time, the participant is provided with information related to the updated route of travel, and a communication is sent.
  • Implementations may include one or more of the following features.
  • an alert message may be sent to at least one of the participants of the appointment.
  • the alert message may indicate that the participant traveling to the appointment is not estimated to arrive at the appointment on time.
  • the appointment may be dynamically rescheduled based on the travel time associated with the updated route of travel to the appointment, and the participants of the appointment may be notified that the appointment has been dynamically rescheduled.
  • One or more subsequent appointments in a calendar of at least one of the participants of the appointment may be identified, and the one or more subsequent appointments may be dynamically rescheduled based on the dynamically rescheduled appointment.
  • time associated with modality-specific incidentals to travel is accounted for in dynamically assisting a participant in handling an appointment.
  • An appointment in a calendar associated with a participant of the appointment is identified, and an appointment time at which the appointment is due to start and a current time are identified.
  • An amount of time remaining between the appointment time at which the appointment is due to start and the current time is identified, and a geographic location of the appointment is identified.
  • a current geographic location of the participant of the appointment is identified, and a route extending from the current geographic location of the participant to the geographic location of the appointment is identified.
  • a modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined, and a modality-based travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the determined modality of travel is determined.
  • at least one incidental travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined, and a total travel time for traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined based on the determined modality-based travel time and the determined at least one incidental travel time. It is determined whether the total travel time exceeds the amount of time remaining until the appointment time. Conditioned on determining that the total travel time exceeds the amount of time remaining until the appointment time, the participant is dynamically assisted in handling the appointment.
  • Implementations may include one or more of the following features.
  • an automobile may be determined as the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment, and a mapping device may be used to compute an automobile travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the automobile.
  • a walking travel time associated with walking from a building to the automobile prior or subsequent to traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the automobile may be determined, and the walking travel time may be added to the automobile travel time.
  • an airplane may be determined as the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment and an air travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the airplane may be determined.
  • a security travel time associated with going through security prior to boarding the airplane may be determined, and the security travel time maybe added to the air travel time.
  • content associated with the appointment may be accessed, and information associated with a distance extending from the geographic location of the participant to the geographic location of the appointment may be accessed.
  • the content associated with the appointment and the information associated with the distance extending from the geographic location of the participant to the geographic location of the appointment may be analyzed, and, based on the analysis, the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be automatically determined.
  • the user may be able to select the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment.
  • the appointment may be dynamically rescheduled based on the total travel time.
  • An alert message may be sent to at least one of the participants of the appointment.
  • the alert message may indicate that the participant is estimated to arrive at the appointment late.
  • multiple, different modalities of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be determined, and a modality-based travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be determined using the determined multiple, different modalities of travel.
  • at least one incidental travel time associated with transitioning from a first modality of travel to a second modality of travel may be determined.
  • FIGS. 1A and 1B illustrate exemplary calendar application interfaces, configured to make a user of the calendar application able to identify a travel route extending from a geographic location of a first appointment to a geographic location of a second appointment and to reserve, within the calendar application, a time block for a travel time associated with the travel route.
  • FIG. 2 illustrates an exemplary process used to identify a travel route between already scheduled first and second appointments and to reserve, within a calendar application, a time block to account for a travel time associated with the travel route.
  • FIGS. 3A and 3B illustrate an exemplary process and an exemplary user interface for soliciting and receiving, from the user, an address associated with an appointment.
  • FIG. 4 illustrates an exemplary process for identifying an amount of unscheduled time between two appointments (e.g., a first appointment and a second appointment).
  • FIG. 5 illustrates an exemplary UI used to inform a user of an unscheduled time in the user's calendar.
  • FIG. 6 illustrates an exemplary UT that makes the user able to set a reminder in calendar application.
  • FIG. 7 illustrates an exemplary UI used to allow a user to set an alert message, alerting the user of certain pre-defined conditions/events.
  • FIG. 8A illustrates an exemplary process used to alert a user about a change in current road conditions.
  • FIG. 8B illustrates an exemplary UI that may be generated as a result of the process illustrated in FIG. 8A and presented to the user to alert a user about a change in current road conditions.
  • FIG. 9A illustrates an exemplary process used to alert a user about conflicting appointments.
  • FIG. 9B illustrates an exemplary user interface that may be generated as a result of the process illustrated in FIG. 9A to alert a user about conflicting appointments.
  • FIG. 9C illustrates an exemplary process used for rescheduling an appointment at a mutually convenient time for the people attending the appointment.
  • FIG. 10A illustrates an exemplary process used to alert a user that the user has deviated from an original route.
  • FIG. 10B illustrates an exemplary user interface that may be generated as a result of the processes illustrated in FIG. 10A to alert a user that the user has deviated from an original route.
  • FIG. 10C illustrates an exemplary user interface used to alert a user that the user has deviated from an originally-calculated route by less than a threshold amount and to help the user to get back on the originally-calculated route.
  • FIG. 11 illustrates an exemplary process used to make able a user to determine presence or absence of a conflict (e.g., absence of sufficient travel time) between an already scheduled first appointment and a second and new appointment that the user wishes to schedule at a particular time.
  • a conflict e.g., absence of sufficient travel time
  • FIGS. 12A-12D illustrate, within UIs 1200 A- 1200 D, an exemplary sequence of interact ions between a calendar application and a user wishing to schedule one or more appointments using the process 1100 described with respect to FIG. 11 .
  • FIG. 12E illustrates an exemplary process used by s a calendar application to cancel and/or modify a travel time block upon receiving an indication from a user to cancel an appointment that is used to estimate the travel time block.
  • FIG. 13 illustrates an exemplary process used for alerting one or more users who are scheduled to participate in an appointment of possible delay of at least one of the participants to the appointment.
  • FIG. 14 illustrates an exemplary process for identifying a travel time based on modality of travel.
  • FIG. 15 illustrates an exemplary UI that is used to solicit, from a participant of an appointment, information regarding a modality of travel.
  • FIG. 16 illustrates an exemplary alert interface used for alerting a participant of an appointment that he or she is not likely to arrive at the appointment location on time.
  • FIG. 17 illustrates an exemplary alert interface showing options that are presented to a participant of an appointment to avoid a scheduling conflict.
  • FIG. 18 illustrates an exemplary process used for rescheduling subsequent appointments of a user based on the determination that one of the appointments of the user has been delayed.
  • Generating directions to geographic locations of appointments stored in a calendar application can be a complex undertaking. For example, a user who maintains a calendar with appointments that take place at various locations may find it difficult or cumbersome to identify a travel route through the locations of the user's appointments. Particularly, the user may find it time-consuming to manually look-up and print out directions for segments of a travel route before leaving, for example, the user's home or work place.
  • a calendar application is configured to allow the user to automatically generate appointment-to-appointment directions and to reserve a time block between user's appointments to account for the travel time associated with a route extending from one appointment to the next.
  • the calendar application includes a navigation component and further includes a control option, manifested by an icon or a “setting,” selection of which results in generation a travel route between multiple appointments and further results in reservation of a time block within the user's calendar to account for the travel time associated with the travel route.
  • a user has two appointments within a calendar application (e.g., a first appointment and a second appointment) and that the user selects, from within the calendar application, the control icon.
  • the calendar application automatically (1) identifies a travel route extending from a geographic location of the first appointment to a geographic location of the second appointment, (2) identifies a travel time associated with the travel route, and (3) places a hold on the user's calendar to account for such travel time.
  • the calendar application may provide the user with a reminder about the user's second appointment, taking into account the travel time associated with the calculated route extending from the geographic location of the first appointment to the geographic location of the second appointment.
  • the user may be presented with an option of selecting to travel immediately following the first appointment or just prior to the second appointment.
  • the user is provided with an alert message at the time of scheduling the first and/or the second appointment, informing the user of the same, as more fully described below with respect to FIGS. 9A-9C .
  • the alert message may be in several forms.
  • the alert message is in the form of automatic e-mail to the user (or a person to whom the user delegates the task of keeping the user's calendar), informing the user of the conflict.
  • the alert message is provided as a user interface (“UI”) within the calendar application. In either case, the alert message provides the user with several options to allow the user (or a person to whom the user delegates the task of keeping the user's calendar) to account for such a conflict.
  • UI user interface
  • the alert message indicates to the user the anticipated need to leave the first appointment earlier than its scheduled ending time or arriving at the second appointment later than its scheduled starting time.
  • the alert message may provide the user with an option to reschedule the first and/or the second appointment.
  • the calendar application may attempt to identify the availability of the participants of the first appointment and/or the second appointment for rescheduling either of the first and/or second appointments. In this manner, the user is presented with several options to resolve the conflict (e.g., absence of sufficient travel time) between the first and second appointments.
  • the calendar application after taking into the account the travel time associated with the travel route between the first and second appointments, the calendar application identifies that there is an unscheduled time period in the user's calendar, and the calendar application informs the user of the same.
  • the calendar application may provide the user with suggestions as to how the user should fill in the identified gap between the user's first and second appointments. This may help the user to more efficiently manage the unscheduled times within the user's daily calendar.
  • the calendar application presents to the user a UI, allowing the user to identify a point of interest at which the user is interested in spending the unscheduled time.
  • the user identifies a point of interest (e.g., a coffee shop or a book store) and a geographic location associated therewith.
  • the geographic location may include a specific address associated with the point of interest.
  • the geographic location may include a geographic area/proximity within which the point of interest should be located. In either case, this implementation allows the user to perform a geographically limited search for a particular point of interest to fill in the identified gap between the user's appointments.
  • the calendar application instead of generating appointment-to-appointment directions and reserving a time block to account for the travel time between appointments after the appointments are scheduled, the calendar application generates appointment-to-appointment directions and reserves a time block to account for the travel time between the appointments at the time of scheduling an appointment.
  • appointment-to-appointment directions and reserves a time block to account for the travel time between the appointments at the time of scheduling an appointment.
  • the calendar application automatically identifies a route extending between the first appointment and the second appointment and identifies the travel time associated with the route. If the travel time exceeds the time gap between the first and second appointments, the calendar application alerts the user of the same before accepting the second appointment at the requested time. As such, the user immediately realizes the conflict (e.g., absence of sufficient travel time between the first and second appointments) and is allowed to schedule the second appointment at another time to avoid such conflict. This minimizes the hassle of later recognizing such conflict and having to reschedule the appointment at that time.
  • the conflict e.g., absence of sufficient travel time between the first and second appointments
  • the calendar application schedules the second appointment at the requested time.
  • the calendar application first ensures that the proposed timing of the third appointment does not present a conflict (e.g., absence of sufficient travel time between the first and third appointments or between the third and second appointments) before accepting the third appointment.
  • the calendar application automatically identifies a first route extending from the geographic location of the first appointment to the geographic location of the third appointment and identifies a first travel time associated with the first route.
  • the calendar application automatically identifies a second rout extending from the geographic location of the third appointment to the geographic location of the second appointment and identifies a second travel time associated with the second route.
  • the calendar application compares the first travel time with the time gap between the first and third appointments and similarly compares the second travel time with the time gap between the third and second appointments.
  • the calendar application alerts the user before accepting the third appointment at the requested time. As such, the user immediately realizes the conflict and is made able to schedule the third appointment at another time to avoid such conflict.
  • the calendar application schedules the third appointment at the requested time.
  • position of an attendee of an appointment is detected. Based on the position of the attendee, current time/position of the attendee is compared to time/location of a next calendar appointment or invite to identify situations in which the attendee will be late to the appointment. Appropriate action may be taken when it is determined that an attendee likely will be late to the appointment. For instance, techniques may include rescheduling the appointment to a time when the attendee will arrive at the appointment. Dynamic changes to travel time (e.g., changes based on changing travel/road conditions or diverging from a route) for one or more attendees may be accounted in rescheduling appointments.
  • Dynamic changes to travel time e.g., changes based on changing travel/road conditions or diverging from a route
  • time required by incidentals of travel may be accounted when determining whether dynamic changes need to be made to a calendar event to which a traveler is scheduled to attend. Specifically, if an attendee is traveling to an appointment by automobile and the navigation system indicates that the attendee is 10 minutes away from the appointment location for a meeting that begins in 10 minutes, the attendee may be late given the need to park, walk from the car to the meeting, and clear security. Keywords such as airport/train/flight/car/security, and distances, may each help to recognize modalities of travel and appropriately account for incidental time required thereby.
  • FIGS. 1A and 1B illustrate exemplary calendar application interfaces, allowing a user of the calendar application to identify a travel route extending from a geographic location of a first appointment to a geographic location of a second appointment and to reserve, within the calendar application, a time block for a travel time associated with the travel route.
  • the user interfaces (“UIs”) of FIGS. 1A and 1B are generally similar. For ease of description, the implementation of FIG. 1A is discussed in detail, and a description of redundant aspects of the implementation of FIG. 1B is omitted for brevity.
  • FIG. 1A illustrates an exemplary UI 100 A used for identifying a travel route between multiple appointments and reserving, within a calendar application, a time block for a travel time associated with the travel route.
  • the UI 100 A includes a calendar application interface 110 .
  • the calendar application interface 110 identifies, within a particular day (e.g., Monday, Apr. 23, 2002), a first appointment 115 , a second appointment 120 , and a control icon 125 .
  • the first appointment 115 is with “patent attorney Karl Renner at 1425 K Street, NW, Washington D.C. 20005.”
  • the first appointment 115 is from 10:00 am to 11:00 am.
  • the second appointment 120 is with “patent examiner Joe Smith ⁇ t the U.S. Patent and Trademark Office.”
  • the second appointment 120 is from 1:00 pm to 2:00 pm.
  • the calendar application interface 110 also includes the control icon 125 .
  • the control icon 125 is structured and arranged for identifying a travel route extending from a geographic location of the first appointment 115 to the geographic location of the second appointment 120 and for reserving a time block, within a calendar application, to account for the travel time associated with the travel route.
  • the selection of the control icon 116 prompts the calendar application to (1) identify a route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 , (2) identify a travel time associated with the route, and (3) reserve a time block within the calendar application to account for the travel time, as more fully described below with respect to FIGS. 1B and 2 .
  • FIG. 1B illustrates the calendar application interface 110 with the control icon 125 being activated.
  • the selection of the control icon 125 prompts the calendar application to reserve a travel time block 130 between the first appointment 115 and the second appointment 120 .
  • the selection of the time block 130 provides the user with directions from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 .
  • FIG. 2 illustrates an exemplary process 200 used to identify a travel route between first and second appointments and to reserve, within a calendar application, a time block to account for a travel time associated with the travel route.
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 200 .
  • the process 200 involves the calendar application interface 110 , the first appointment 115 , the second appointment 120 , the control icon 125 , and the travel time block 130 .
  • the process 200 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 200 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 200 may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the process 200 includes the calendar application identifying a first appointment in a calendar application ( 210 ) and identifying a geographic location of the first appointment ( 215 ).
  • the calendar application references a location field associated with the first appointment 115 to identify the location associated with the first appointment 115 .
  • the calendar application may reference other fields associated with the first appointment 115 and may search for key words identifying an address.
  • the calendar application may search for a zip code, city, and/or state name to identify an address.
  • the calendar application identifies that the geographic location of the first appointment 115 is at “1425 K Street, NW, Washington D.C. 20005.”
  • the process 200 includes the calendar application identifying a second appointment in the calendar application ( 220 ) and identifying the geographic location of the second appointment ( 225 ). Identifying the second appointment may include identifying an existing appointment already scheduled within a calendar application. Alternatively or additionally, identifying the second appointment may include receiving a request to schedule a second appointment within a calendar application.
  • the calendar application uses the above-described techniques to identify the geographic location of the second appointment 120 . In doing so, the calendar application realizes that the geographic location of the second appointment 120 is U.S. Patent and Trademark Office without a specific address. As such, the calendar application identifies a need for identifying an address associated with the U.S. Patent and Trademark Office. To this end, the calendar application may use an exemplary process 300 A illustrated by FIG. 3A and an exemplary UI 300 B illustrated by FIG. 3B to determine the address associated with the U.S. Patent and Trademark Office.
  • Process 300 A begins with determining that the user has not specified an address corresponding to an appointment location ( 310 ). To do so, in one implementation, the calendar application searches the calendar application for the address associated with the appointment. For example and as noted above, the calendar application may reference a location field associated with the second appointment 120 to determine the address for the second appointment 120 . Alternatively or additionally, the calendar application may reference other fields associated with the second appointment 120 and may search for key words (e.g., a zip code, city, and/or state name) identifying an address. In the absence of such information, the calendar application concludes that the user has not specified an address for the appointment location.
  • key words e.g., a zip code, city, and/or state name
  • the calendar application Upon identifying that the user has not specified an address for the appointment location, the calendar application attempts to determine the address associated with the appointment location ( 320 ). To do so, the calendar application may solicit the user for such information. In one example, the calendar application presents the UI 300 B to the user, which includes an “address” icon, allowing the user to specify an address for the appointment location (e.g., U.S. Patent and Trademark Office). In one example, the selection of the “address” icon launches another UI, allowing the user to specify the address for the appointment. The user may manually enter the address in the UI or may import the address into the UI from the user's profile. For example, the user's profile may include an entry for “U.S.
  • Patent and Trademark Office that specifies the address for “U.S. Patent and Trademark Office.”
  • the profile may include the user's contact/address list.
  • the calendar application may automatically determine the address for the U.S. Patent and Trademark Office without having the user to interact with the UI 300 B. For example, the calendar application automatically obtains the address for U.S. Patent and Trademark Office from the user's profile.
  • the calendar application may access an online resource (e.g., Internet) to perform a web search or a database search to determine the address for the U.S. Patent and Trademark Office.
  • an online resource e.g., Internet
  • the calendar application identifies multiple addresses associated with the appointment.
  • the calendar application may present another UI to the user and may request that the user selects from among the multiple addresses associated with the appointment location. Upon identifying the address, the calendar application allows the user to obtain directions to the appointment location ( 320 ). To this end, the calendar application includes a directions/mapping selection portion 325 in the UI 300 B, selection of which provides the user with directions and/or maps to the geographic location of the second appointment 120 from the geographic location of the first appointment 115 .
  • the process 200 includes the calendar application identifying a route extending from the geographic location of the first appointment to the geographic location of the second appointment ( 230 ).
  • the calendar application has a built in navigation component, allowing it to generate directions from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 .
  • the calendar application communicates the location information for each appointment to a navigation application that is physically or logically distinct from the calendar application and requests, from the navigation application, that it identifies the travel route and the travel time associated therewith.
  • the calendar application After identifying the travel route, the calendar application identifies a travel time associated with the route ( 235 ).
  • the travel time may take into account the current road conditions and it may be updated as the current road conditions changes, as described in more detail below with respect to FIGS. 8A and 8B .
  • the travel time may take into account the historic traffic flow.
  • the calendar application determines an amount of unscheduled time between the first and second appointments ( 240 ) to determine whether the amount of unscheduled time can sustain the travel time. To do so, in one implementation, the calendar application uses an exemplary process 400 illustrated by FIG. 4 .
  • FIG. 4 illustrates an exemplary process 400 for identifying an amount of unscheduled time between two appointments (e.g., the first appointment and the second appointment).
  • the process 400 includes the calendar application identifying an ending time of the first appointment ( 410 ) and identifying a starting time of the second appointment ( 415 ).
  • the calendar application references a time field within the calendar application to identify the time during which the appointment is scheduled to take place.
  • the calendar application may reference other fields associated with the first and second appointments and may search for key words identifying time of each appointment. For example, the calendar application may search for key words, such as “starting time,” “ending time,” “from 10:00 am to 11:00 am,” and other possible texts indicative of the time of the appointment.
  • the calendar application determines that the user has failed to identify a start or end time associated with either or both of the first and second appointments.
  • the calendar application may use a UI (not shown) to solicit from the user the time associated with the appointment.
  • the calendar application After identifying the ending time associated with the first appointment and the starting time associated with the second appointment, the calendar application subtracts the ending time of the first appointment from the starting time of the second appointment to determine the amount of unscheduled time ( 420 ).
  • the calendar application determines whether the amount of unscheduled time equals or exceeds the travel time ( 245 ). If so ( 250 , yes), the calendar application reserves, within the calendar application, a time block to account for the travel time ( 255 ).
  • the calendar application determines whether the amount of unscheduled time exceeds the travel time by more than a threshold amount. And, if it is determined that the amount of unscheduled time exceeds the travel time by more than the threshold amount, the calendar application provides a message that informs a user of the unscheduled time period.
  • the calendar application also may provide the user with suggestions as to how the user should fill in the identified gap between the user's first and second appointments. This may help the user to more efficiently manage the unscheduled times within the user's daily calendar.
  • FIG. 5 illustrates an exemplary UI 500 used to inform the user of the unscheduled time in the user's calendar.
  • the user interface 500 alerts the user that “even after taking into account the travel time from the first appointment to the second appointment, there remains an unscheduled time period in [the user's] calendar between the first and second appointments.”
  • the UI 500 prompts the user to request more information, such as, for example, whether the user wishes to spend more time at the preceding or subsequent appointment, to stop at another place (e.g., a gas station), to start traveling toward the next appointment, or to do “other” activities, such as to go to a coffee shop and/or a grocery store.
  • the UI 500 includes an option that allows a user to search for a particular type or point of interest (e.g., a coffee shop) near a user-identified destination. For example, by selecting (e.g., “clicking on”) the “destination” link, the UI 500 generates another UT (not shown) that allows the user to specify a geographic location for the coffee shop.
  • the geographic location for the coffee shop includes a specific address.
  • the geographic location includes a parameter/proximity within which the point of interest should be located. For example, the user may draw a geographical designation proximate to or around the travel route, thereby indicating an interest in the point of interest located within the parameter. As such, these options allow the user to perform a more limited geographical search for a particular point of interest.
  • the calendar application automatically searches and identifies a geographic location for the point of interest within the vicinity of the travel route extending from the geographic location of the first appointment to the geographic location of the second appointment.
  • the calendar application may provide the user with a UI (not shown) that displays a travel route extending from the geographic location of the first appointment to the geographic location of the second appointment, identifies the geographic locations associated with the point of interest along the route, and requests, from the user, to select, from among the identified geographic locations, a location for the point of interest.
  • the calendar application alerts the user of the conflict and provides the user with one or more suggestions to resolve the conflict.
  • the calendar application presents to the user a UI, providing one or more suggestions to make able the user to respond to the alert message.
  • the process associated with generating an alert message is more fully described below with respect to FIG. 9A and the UI providing the user with one or more suggestions is more fully described below with respect to FIG. 9B .
  • the calendar application is configured to allow the user to set a travel time reminder, reminding the user to leave the user's current location at a specified time that precedes the starting time of the appointment by at least the travel time to the appointment.
  • the calendar application is configured to allow the user to set a travel time reminder, reminding the user to leave at a specified time that precedes the starting time (e.g., 1:00 pm) of the second appointment 120 by at least the travel time (e.g., 60 minutes) to the second appointment 120 .
  • FIG. 6 illustrates an exemplary UI 600 that makes able the user to set such reminders within a calendar application.
  • the UI 600 includes a reminder selection portion 610 .
  • the reminder selection portion 610 includes one or more options selection of which instruct the calendar application to remind the user at a “specified time” in advance of the allocated travel time block to arrive at a geographic location of the second appointment on time.
  • the user's selection of the reminder selection portion 610 launches another UI (not shown), allowing the user to set the “specified time.” For example, the user may request to be reminded about an appointment 10 minutes before the time the user should leave the user's present location to arrive at the appointment location on time.
  • the reminder selection portion 610 also allows the user to specify the manner in which the reminder should be sent to the user. As shown in FIG. 6 , the user may choose to receive the reminder via, for example, via an audio call placed to a telephone, an email, an instant message, and/or “other” options, such as short message service (“SMS”).
  • SMS short message service
  • the calendar application may be configured to allow the user to set alert messages, alerting the user about different events.
  • the user may wish to set an alert message, alerting the user if the travel time associated with the calculated route between the first appointment and the second appointment changes due to a change in the current road conditions.
  • the user may wish to set an alert message, alerting the user about conflicting appointments.
  • the timing of the first and second appointments that previously did not conflict with each other even after taking into account travel time from the first appointment to the second appointment may now present a conflict due to the new calculated travel time and the alert message informs the user of the same.
  • the user may set an alert message, alerting the user of an unscheduled within the user's calendar application.
  • the user may set an alert message, providing the user with updated directions and an updated travel time if the user deviates from the previously calculated route.
  • FIG. 7 illustrates an exemplary UI 700 used to allow the user to set an alert message, alerting the user of certain pre-defined conditions/events.
  • the UI 700 includes an alert selection portion 710 .
  • the alert selection portion 710 includes four user-selectable alert options.
  • the first alert option described below in more detail with respect to FIGS. 8A and 8 B, alerts the user if current road conditions change and may suggest an alternate route to the user that avoids problematic routes associated with the change in the road conditions.
  • the second alert option described below in more detail with respect to FIGS. 9A-9C , alerts the user about conflicting appointments (e.g., absence of sufficient travel time between the appointments) and may suggest possible options to help the user avoid the conflicting appointments.
  • conflicting appointments e.g., absence of sufficient travel time between the appointments
  • the third alert option alerts the user about a time period that is unscheduled between the user's appointments and may suggest an alternate schedule to help the user to more efficiently use the unscheduled time slot.
  • the fourth alert option described below with respect to FIGS. 10A and 10B , alerts the user if the user deviates from the previously calculated route and provides the user with new directions based on the user's present location. More particularly, the user's selection of the fourth alert option instructs the calendar application to update the calculated route based on real time information, such that a user deviating from the original route may receive an updated route (an updated effect on a calendar of appointments) to the user's next appointment location.
  • FIG. 8A illustrates an exemplary process 800 A that a calendar application uses to alert a user about a change in current road conditions.
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 800 A.
  • the process 800 A involves the first appointment 115 , the second appointment 120 , the control icon 125 , and the travel time block 130 .
  • the process 800 A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 800 A may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 800 A may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the calendar application may use the process 800 A, for example, in response to the user's selection of the first alert option in the alert selection portion 710 illustrated by FIG. 7 .
  • the calendar application may use the process 800 A in response to the user's selection of the control icon 125 .
  • the process 800 A includes the calendar application monitoring the road conditions between the user's appointment locations ( 805 ).
  • the calendar application monitors the road conditions associated with the previously calculated travel route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 .
  • the calendar application regularly contacts a server that includes traffic data to obtain current road conditions between the user's appointments.
  • the calendar application may contact the server less frequently and, as it gets closer to the time the user has to leave the geographic location of the first appointment 115 to arrive on time at the geographic location of the second appointment 120 , the calendar application contacts the server more often to obtain more up to date information.
  • the calendar application determines that there is a change in the road conditions ( 810 ).
  • the change in the road conditions may include events such as traffic, accidents, rush hours, construction, road blocks, and/or adverse weather conditions resulting in a slower recommended speed limit.
  • the calendar application identifies the updated travel time associated with the travel route under the current road conditions ( 815 ).
  • the calendar application compares the updated travel time under the changed road conditions with the travel time under normal conditions to determine if they differ by more than a threshold amount ( 820 ). For example, the calendar application compares the updated travel time with the travel time specified in the travel time block 130 .
  • the calendar application alerts the user about the current road conditions and the updated travel time under such conditions ( 825 ).
  • the calendar application updates the travel time block 130 , within the calendar application interface 110 , to account for the updated travel time. If the change in travel time is more than the threshold amount ( 820 , yes), the calendar application identifies one or more alternative routes that are less or unaffected by the adverse road conditions and the travel time associated therewith ( 830 ).
  • the calendar application informs the user of the adverse condition and solicits from the user as to whether the user wishes to identify an alternative route.
  • the calendar application identifies one or more alternative routes or determines that an alternative route that is less or unaffected by the adverse road conditions does not exist.
  • the calendar application attempts to find a route that avoids the adverse events (e.g., accidents) resulting in the change in the road conditions for the previously calculated route.
  • the calendar application checks to determine whether the travel time associated with any of the alternative routes is less than the travel time associated with the route with the adverse conditions ( 835 ). If not ( 835 , no), the calendar application alerts the user about the current road conditions and informs the user that their current route remains the most efficient travel route ( 825 ).
  • the calendar application identifies at least one alternative route with a travel time that is lowest (e.g., a route with the least travel time).
  • the calendar application may identify the at least one alternative route with a travel time that is lowest by comparing the travel times of the identified alternative routes and selecting from among the identified alternative routes, the alternative route with the lowest travel time.
  • the calendar application may select more than one alternative route when two routes have the same travel time that is also the lowest travel time or when the calendar application is configured to present options to the user by selecting multiple routes (e.g., the two alternative routes, from among the identified alternative routes, with the two lowest travel times).
  • the calendar application alerts the user of the change in the current road conditions and displays to the user the one or more identified alternative routes, informing the user that the alternative routes will result in an increase in travel time compared to the initial travel schedule, but also informing the user that they will decrease travel time compared to travel time on the current route under the current road conditions ( 860 ).
  • the calendar application may display to the user a UI informing the user of the time, present location, and the adverse condition, and suggesting that the user takes a different route to the user's next appointment location.
  • the calendar application may store the directions associated with the new route in the travel time block 130 for later access by the user and may update the travel time associated with the new route.
  • FIG. 8B illustrates an exemplary UI 800 B the calendar application uses to alert a user about a change in current road conditions.
  • the UI 800 B informs the user of the present time (e.g., 11:00 am), the user's present location (e.g., the first appointment location), and the user's next destination (e.g., the second appointment location).
  • the UI 800 B also informs the user that if the user were able to travel under normal conditions, the user could expect to arrive at the second appointment location in 60 minutes.
  • problematic conditions adversely affect the ability of the user to achieve that estimated travel time.
  • the alert message indicates that “there is heavy traffic due to an accident on the I-60” and now it will take the user 3 hours to arrive at the second appointment location.
  • the calendar application compares the travel time of the original route under the current road conditions with the travel time of an alternative route and suggests to the user the route with the minimum travel time. For example and as shown in FIG. 8B , the calendar application determines the alternative route has the minimum travel time (e.g., 2 hours) and suggests taking the alternative route.
  • the calendar application also communicates to the user to leave immediately if the user wishes to arrive at the second appointment location on time.
  • the UI 800 B also makes able the user to view the alternative route via, for example, selecting the “view” icon. Alternatively or additionally, the user can view the alternative route via, for example, selecting the travel time block 130 . It is to be understood that other alternative may be presented to the user. For example, the user may be presented with an option to postpone and/or cancel the second appointment and inform the participants of the second appointment of the same.
  • FIG. 9A illustrates an exemplary process 900 A used for generating an alert message informing the user of conflicting appointments.
  • the actions performed by the process 900 A are similar to some of the actions performed by the process 200 illustrated by FIG. 2 .
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 900 A.
  • the process 900 A involves the first appointment 115 , the second appointment 120 , the control icon 125 , and the travel time block 130 .
  • the process 900 A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application.
  • some of the actions within the process 900 A may be performed by the calendar application and others may be performed by the navigation application.
  • the process 900 A may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the process 900 A may be used, for example, in response to the user's selection of the control icon 125 .
  • the process 900 A may be used, for example, in response to the user's selection of the second alert option in the alert selection portion 710 illustrated by FIG. 7 .
  • the process 900 A includes the calendar application determining the amount of unscheduled time between the first appointment 115 and the second appointment 120 ( 910 A).
  • the action ( 910 A) is similar to action ( 240 ).
  • the calendar application identifies that the amount of unscheduled time is about 2 hours.
  • the calendar application then identifies the travel time for the route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 ( 915 A).
  • the action ( 915 A) is similar to action ( 235 ). For example, the calendar application identifies that the travel time is 2 hours and 30 minutes.
  • the calendar application compares the travel time with the amount of unscheduled time ( 920 A) and based on the comparison, determines if the travel time exceeds the amount of unscheduled time ( 925 A).
  • the actions ( 920 A) and ( 925 A) illustrate action ( 245 ) in more detail.
  • the calendar application identifies that the travel time exceeds the amount of unscheduled time by 30 minutes. Accordingly, the calendar application alerts the user of the conflict and provides the user with suggestions to avoid the conflict ( 930 A).
  • the action ( 930 A) is similar to action ( 255 ).
  • the suggestions include ending the first appointment 115 sooner than the scheduled ending time and/or canceling or rescheduling the first or the second appointment 115 , 120 .
  • the alert and the suggestions may be presented to the user via a UI.
  • FIG. 9B illustrates an exemplary UI 900 B used to alert a user about conflicting appointments.
  • the UI 900 B may be presented to the user automatically as a part of a regular morning update schedule, alerting the user if there are conflicting appointments in the user's calendar.
  • the UI 900 B may be presented to the user at the time the user selects (e.g., clicks on) the control icon 125 .
  • the UI 900 B notes that the first appointment at 10:00 am is supposed to last for 60 minutes and the second appointment is at 12:00 pm.
  • the UI 900 B also notes that “it takes 120 minutes to arrive at the second appointment location from the first appointment location plus an approximate 10 minutes to get from the car to the meeting.”
  • the UI 900 B displays to the user several options to address this conflict.
  • the first option allows the user to spend less time at the first appointment.
  • the second option allows the user to cancel or reschedule the “second appointment”.
  • the third option informs the calendar application of the user's preference to arrive late to the second appointment. Other attendees then may be notified that the user will be arriving late.
  • the UI 900 B may be interactive, such that the user is allowed to cancel or reschedule another appointment instead of the second appointment. For example, the user's selection of the “second appointment,” launches another UI (not shown), allowing the user to select an appointment to be canceled or rescheduled.
  • the calendar application may identify the participants of the second appointment 120 and their time availability to reschedule the second appointment 120 at a mutually convenient time for the participants of the second appointment 120 .
  • FIG. 9C illustrates an exemplary process 900 C used for rescheduling the appointment 120 at a mutually convenient time for the people attending the appointment 120 .
  • Process 900 C includes the calendar application identifying participants of the second appointment 120 ( 910 C).
  • the calendar application searches participant field to identify the participants of the second appointment 120 .
  • the calendar application identifies time availability of each of them ( 915 C).
  • the calendar application remotely accesses, over a wireless network, a calendar application of each of the participants to identify their time availability.
  • the calendar application sends an e-mail to each of the participants and requests from each of them to identify his/her time availability. In either case, based on the time availability of the participants, the calendar application reschedules the second appointment 120 at the mutually convenient time for the participants of the second appointment 120 ( 920 C) and informs the participants of the same.
  • FIG. 10A illustrates an exemplary process 1000 A used to alert a user that the user has deviated from an original route.
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1000 A.
  • the process 1000 A involves the first appointment 115 , the second appointment 120 , the control icon 125 , and the travel time block 130 .
  • the process 1000 A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1000 A may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1000 A may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the process 1000 A may be used, for example, in response to the user's selection of the fourth alert option in the alert selection portion 710 illustrated by FIG. 7 .
  • the process 1000 A may be used, for example, in response to the user's selection of the control icon 125 .
  • the process 1000 A includes the calendar application, including a navigation component, identifying the present location of the client device.
  • the calendar application automatically determines the present location of the user using location providing technology implemented in the user's client device. If the client device is equipped with multiple location providing technologies, the calendar application may use the technology that provides the most accurate information about the present location.
  • the client device includes a mobile device that is GPS-enabled, and the calendar application automatically determines the present location of the user based on the GPS position of the client device.
  • the present location of the user is automatically determined by registering the client device with a host (e.g., a Session Initiation Protocol (“SIP”)) server.
  • the client device may provide information to the host that is used to derive location information.
  • the host may derive location information based on how the client device is accessing the network (e.g., as identified by source IP address or another packet identifier).
  • the present location of the user is automatically determined from the user's profile.
  • the user has associated profile or contact information indicating a predetermined home and/or office location.
  • the user of a client office computer has previously stored the location of the user's office in the user's profile.
  • the navigation application uses the user's profile to determine the office location.
  • the calendar application Upon determining the current location, the calendar application references the originally calculated route ( 1010 ) and checks to determine whether the current location of the user differs more than a threshold amount from the originally-calculated route ( 1015 ). If not ( 1015 , no), the calendar application checks to determine whether the current location is on the route ( 1020 ) and if so ( 1020 , yes), the calendar application continues to monitor the current location of the user to account for the possible departure of the user from the route. If, however, the current location of the user is not on the route ( 1020 , no), the calendar application shows the user how to return to the originally-calculated route ( 1025 ).
  • FIG. 10C illustrates a UI 10000 that may be used to help the user to return to the originally-calculated route.
  • the calendar application waits a period of time (e.g., a predetermined and configurable period of time, a time determined based on the distance from the originally-calculated route, etc.) or until the user has returned to the originally-calculated route, and continues to monitor the current location of the user to account for departure of the user from the originally-calculated route ( 1028 ).
  • a period of time e.g., a predetermined and configurable period of time, a time determined based on the distance from the originally-calculated route, etc.
  • the calendar application alerts the user ( 1030 ).
  • the threshold is 1 mile from the originally calculated route. If the current location of the client device differs more than the threshold amount from the originally calculated route, the calendar application alerts the user ( 1030 ) and provides the user with directions to the user's next appointment location from the current location of the client device ( 1035 ).
  • FIG. 10A illustrates that actions ( 1030 and 1035 ) are performed serially, it is possible that actions ( 1030 and 1035 ) can be performed simultaneously.
  • the calendar application may use a UI, such as the one shown in FIG. 10B , to alert the user and provide the user with updated directions.
  • the alert message also informs the user of the time and location of the user's next appointment and the travel time to the next appointment location based on the user's present location.
  • FIG. 10B illustrates an exemplary UI 1000 B used to alert a user that the user has deviated from an original route.
  • the alert message notes to the user that “it is currently 11:00 am, and it seems you have deviated from the original route. You are presently located at 1100 F St., NW, Washington D.C. 20005.”
  • the alert message also informs the user of the time and location of the user's next appointment (e.g., the second appointment 120 ) and the travel time (e.g., 30 minutes) to the next appointment location based on the present location of the user.
  • the alert message also allows the user to view directions from the present location to the next appointment.
  • the calendar application determines whether the user arrives on time at the user's next appointment based on the new travel time and informs the user in either case. If the user is going to be late to the appointment based on the new travel time, the calendar application may present the user with one or more suggestions to avoid such conflict. For example, the calendar application may present the user with options similar to those described with respect to FIG. 9B .
  • FIG. 10C illustrates an exemplary UI 1000 C used to alert the user that the user has deviated from the originally-calculated route by less than a threshold amount and helps the user to get back on the originally-calculated route.
  • the alert message notes to the user that “it is currently 11:00 am, and it seems you have deviated from the originally calculated route by less than a threshold amount.”
  • the user who is presented with the UI 1000 C may have deviated from the route by less than a threshold amount (e.g., 1 mile).
  • the alert message 1000 C allows the user to view directions in order to get back on the originally-calculated route.
  • a time block for the travel time between multiple appointments after the multiple appointments have already been scheduled as described with respect to FIG. 2
  • the user is allowed to reserve, within the calendar application, a time block for such travel time during scheduling of an appointment.
  • the user immediately realizes the conflict (e.g., absence of sufficient travel time between appointments) at the time of scheduling an appointment, and the user is allowed to schedule the appointment at another time to avoid such conflict. This minimizes the hassle of later recognizing such conflict and having to reschedule the already scheduled appointment at that time.
  • FIG. 11 illustrates an exemplary process 1100 used to make able a user to determine presence or absence of a conflict (e.g., absence of sufficient travel time) between an already scheduled first appointment and a second and new appointment that the user wishes to schedule at a particular time.
  • a conflict e.g., absence of sufficient travel time
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1100 .
  • the process 1100 involves the calendar application interface 110 , the first appointment 115 , the second appointment 120 , the control icon 125 , and the travel time block 130 .
  • process 1100 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1100 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1100 may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the process 1100 includes many of the actions described with respect to the process 200 . As such, for the sake brevity, only the actions that are different is described here in more detail. These actions include actions ( 1110 , 1150 , 1155 , and 1160 ). To illustrate, the process 1100 includes the calendar application receiving, from a user, a request to schedule, within a calendar application, a new (second) appointment 120 at a particular time ( 1110 ). To formulate such a request, in one implementation, the user clicks on the time windows appearing on the calendar application interface 1110 . This results in generation of a similar to the one shown and described below with respect to FIG. 12C , soliciting, from the user, to specify the time, date, subject, and location of the second appointment 120 . After identifying this information, the user may save the second appointment 120 within the calendar application by selecting the “save and close” icon.
  • the calendar application may first determine whether the proposed second appointment present a conflict (e.g., absence of sufficient travel time) with an already scheduled first appointment 115 . If not ( 1145 , yes), the calendar application schedules the second appointment 120 at the proposed particular time ( 1150 ). Additionally, the calendar application also reserves a travel time block within the calendar application to account for the travel time ( 1155 ). In one implementation, the calendar application places the travel time block immediately before the starting time of the second appointment. In another implementation, the calendar application places the travel time block immediately after the ending time of the first appointment. In yet another implementation, the calendar application presents to a user a UI (not shown), allowing the user to select where the time block should be located between the first and second appointments. In either case, the user may have the option of removing and/or adjusting the travel time block placed between the first and second appointments.
  • a conflict e.g., absence of sufficient travel time
  • the calendar application alerts the user of the conflict and provides the user with suggestions before or at the time of saving the second appointment 120 into the calendar application at the particular time ( 1160 ).
  • the calendar application presents to the user a UI, providing the user with one or more suggestions in, resolving the conflict, as described above in more detail with respect to FIGS. 9A-9C .
  • the user may simply select to schedule the second appointment at another time that does not present such a conflict.
  • FIGS. 12A-121 illustrate, within the UIs 1200 A- 1200 D, an exemplary sequence of interactions between a calendar application and a user wishing to schedule an appointment using the process 1100 described with respect to FIG. 11 .
  • FIG. 12A illustrates an exemplary UI 1200 A enabling a user to perceive, within the calendar application, an already scheduled appointment and to schedule a new appointment in the absence of a conflict (e.g., absence of sufficient travel time) between the already scheduled appointment and the new appointment.
  • a conflict e.g., absence of sufficient travel time
  • the UI 1200 A includes a calendar application interface 1210 .
  • the calendar application interface 1210 includes, within a particular day (e.g., Monday, Apr. 23, 2002), an already scheduled first appointment 1215 .
  • the first appointment 1215 is with “patent attorney Karl Renner at 1425 K Street, NW, Washington D.C. 20005.”
  • the calendar application receives, from the user, a request to schedule a second and anew appointment 1220 , which appears to be with “a patent examiner Joe Smith at U.S. Patent and Trademark Office.”
  • the request is in the form of drag and drop operation.
  • the user drags, from another application and into the calendar application interface 1210 , the information about the second appointment 1220 and drops, within the calendar application interface 1210 , the information about the second appointment 1220 .
  • the user drops this information within a particular time window (e.g., between 1:00 pm to 2:00 pm window).
  • the user instead of using the drag and drop operation, the user simply selects (e.g., clicks on), for example, “new appointment” icon within the calendar application interface 1210 to schedule the second appointment 1220 and provides the calendar application with the information regarding the second appointment 1220 .
  • the calendar application uses the exemplary process 1100 to determine whether the proposed timing of the second appointment 1220 presents a conflict (e.g., absence of sufficient travel time) with the already scheduled first appointment 1215 . If not, the calendar application schedules the second appointment 1220 within the calendar application interface 1210 and also reserves, within the calendar application interface 1210 , a travel time block associated with the travel time of the route extending between the first appointment 1215 and the second appointment 1220 , as shown by FIG. 12B .
  • a conflict e.g., absence of sufficient travel time
  • FIG. 12B illustrates an exemplary UI 1200 B with the second appointment 1220 and the travel time block 1230 both scheduled within the calendar application interface 1210 .
  • the travel time block 1230 reserves, within the calendar application interface 1210 , the identified time window for traveling.
  • the travel time block 130 provides the user with directions from the geographic location of the first appointment 1215 to the geographic location of the second appointment 1220 .
  • FIG. 12C illustrates an exemplary UI 1200 C used to allow the user to schedule a third appointment within the calendar application interface 1210 using the process 1100 .
  • the UI 1200 C is presented to the user in response to the user selecting (e.g., clicking on) a “new appointment” icon within the calendar application interface 1210 .
  • the UI 1200 C is presented to the user in response the user selecting (e.g., clicking on) one of the time windows (e.g., 11:00 am to 11:30 am window) appearing within the calendar application interface 1210 .
  • the UI 1200 C includes various fields for gathering information about the third appointment.
  • the various fields include a subject field 1235 , a location field 1240 , a starting time field 1245 , an ending time field 1250 , and a reminder field 1255 .
  • the subject field 1235 allows the user to identify the subject associated with the third appointment.
  • the subject associated with the third appointment includes “appointment with Dr. Jones.”
  • the location field 1240 allows the user to identifying the geographic location of the third appointment.
  • the geographic location of the new appointment is at “11208 Camp Rd. Bethesda, Md., 20854.”
  • the starting time and ending time fields 1245 , 1250 identify the starting date/time and ending date/time associated with the third appointment, respectively.
  • the starting date/time of the third appointment is on Thursday, Apr. 23, 2002 at 11:00 am and the ending date/time of the third appointment is on Thursday Apr. 23, 2003 at 11:30 am.
  • the reminder field 1255 allows the user to set a reminder for the appointment. For example, as shown, the user has specified a reminder 15 minutes in advance of the appointment time.
  • the user may click on “save and close” icon 1260 .
  • This causes the appointment information to be saved within the calendar application, and the appointment information to be presented on the calendar application interface 1210 between the first and second appointments 1215 and 1220 , as shown in FIG. 12D .
  • the calendar application again uses the process 1100 to determine whether the timing of the third appointment 1265 present a conflict (e.g., absence of sufficient travel time) with the already scheduled first and second appointments 1215 , 1220 .
  • the calendar application automatically identifies a first route extending from the geographic location of the first appointment 1215 to the geographic location of the third appointment 1265 and identifies a first travel time associated with the first route.
  • the calendar application automatically identifies a second route extending from the geographic location of the third appointment 1265 to the geographic location of the second appointment 1220 and identifies a second travel time associated with the second route.
  • the calendar application compares the first travel time with the time gap between the first and third appointments 1215 , 1265 and similarly compares the second travel time with the time gap between the third and second appointments 1265 , 1220 .
  • the calendar application alerts the user before or at the time of accepting the third appointment 1265 at the requested time. As such, the user immediately realizes the conflict and is permitted to schedule the third appointment 1265 at another time to avoid the conflict. For example, and as shown, the calendar application generates a pop-up window 1270 informing the user of the conflict.
  • the calendar application schedules the third appointment 1265 at the requested time.
  • FIG. 9B illustrates some of the suggestions that may be offered to the user to avoid the conflict between two appointments
  • other suggestions also are possible.
  • the calendar application may offer to the user to default to a telephone or video conference to avoid the conflict.
  • the calendar application may offer to the user to conduct either the first appointment or the second appointment via telephone.
  • the user may be presented with an option to specify whether an appointment is to be conducted via a teleconference or a video conference. If so, the calendar application does not take into account that appointment for purposes of reserving a time block to account for the travel time.
  • the calendar application realizes that the second appointment is a teleconference or a video conference appointment, and, as such, the calendar application does not reserve a time block for travel time between the first appointment and the second appointment and similarly between the second appointment and the third appointment.
  • the calendar application reserves a time block to account for travel time from the first appointment to the third appointment. That is the calendar application intentionally disregards the second appointment for purposes of reserving a time block to account for the travel tame.
  • the user is informed that the travel time between the first and third appointment impinges on the scheduled second appointment that takes place via a teleconference, for example. And, the user is presented with an option to schedule the travel before, during, or after the intervening teleconference appointment.
  • the calendar application infers such conclusion from the information associated with the appointment. In one example, if there is a dial-in number and/or a pin number associated with the appointment and thus, is location independent, the calendar application concludes that the appointment is to be conducted via a telephone, and, as such, does not take into account the appointment for purposes of identifying a travel time. In one implementation, the calendar application confirms with the user as to whether the appointment is indeed to be conducted via a telephone to reduce errors.
  • the calendar application may recognize certain keywords (e.g., airports, flights) or locations (e.g., airports) associated with a calendar event, and may have a particular setting to set aside time in addition to the travel time to account for certain routine activities (e.g., going through security). Similarly, the calendar application may set aside time to account for other factors, such as, for example, time needed to get from the car to a meeting. In keeping with the example described above with respect to FIG. 9B , the calendar application notifies the user that the travel time between two appointments is 130 minutes (120 minutes of travel time plus an additional 10 minutes to get from the car to the meeting). As such, the calendar application reserves a time block for 130 to account for the time needed for the user to get from the car to the meeting.
  • certain keywords e.g., airports, flights
  • locations e.g., airports
  • the calendar application cancels or modifies the already scheduled travel time block upon determining that the user wishes to cancel an appointment used for the estimation of the travel time block.
  • FIG. 12E illustrates an exemplary process 1200 E used by the calendar application to cancel and/or modify the travel time block upon receiving an indication from the user to cancel an appointment that is used to estimate the travel time block.
  • the process 1200 E includes receiving a notification of an appointment cancellation ( 1210 E).
  • the calendar application may receive a notification that the first appointment 1215 with the patent attorney Karl Renner should be canceled.
  • the calendar application identifies the travel time block that is based on the canceled appointment ( 1215 E).
  • the calendar application identifies the travel time block 1230 that is reserved for the travel lime between the first appointment 1215 and the second appointment 1220 .
  • the calendar application either cancels or modifies the travel time block ( 1220 E).
  • the calendar application cancels the travel time block 1230 .
  • the calendar application modifies the travel time block such that it is based on the third appointment 1265 .
  • the third appointment 1265 is shown in FIG. 12D to take place after the first appointment 1215 , it is to be understood that the third appointment 1265 can take place before the first appointment 1215 .
  • the calendar application identifies the new travel time block and informs the user of the same ( 1225 E).
  • the concepts described herein also relate to a system that dynamically updates appointment information within a calendar application based on the current location of the user scheduled to participant in an appointment.
  • the system identifies the current location of the user, and based on the current location of the user the system approximates the arrival of the user to the geographic location of the user's next appointment. To do so, the system may take into account the user's modality of travel.
  • the modality of travel may include driving, walking, public transportation, and/or other means of traveling, such as, bicycling.
  • the system may inform the user that the user is running late to the meeting. Similarly, the system may inform other participants of the appointment, thereby saving the remaining participants of waiting for the user.
  • GPS or other location-based information about at least one of the participants in the appointment can be used to automatically (e.g., on the fly) update the appointment in the participant's electronic calendar application (e.g., Microsoft Exchange).
  • the appointment can be rescheduled to start in 20 minutes, saving the remaining participants from waiting.
  • real time traffic and travel data can be leveraged to account for the participant's travel time to a distant meeting.
  • this information can be used to alarm the participant as to when he/she needs to depart in order to arrive at the geographic location of the appointment on time.
  • the concepts described herein also relate to a system for identifying that a user's appointment has been delayed and dynamically rescheduling the user's subsequent appointments to account for the delay.
  • a system for identifying that a user's appointment has been delayed and dynamically rescheduling the user's subsequent appointments to account for the delay To illustrate, assume that the doctor is running late to his or her first patient meeting and as such the first appointment that is due to start at 9:00 am and last until 9:15 am actually starts at 9:15 am. The system realizes this delay, identifies subsequent appointments within the doctor's calendar, and automatically reschedules the remaining appointments. For example, the system postpones each appointment by 15 minutes.
  • next appointment that was due to start at 9:15 am and end at 9:30 am will be postponed such that it will start at 9:30 am and end at 9:45 am.
  • the system also may inform other participants of the appointment, thereby saving the remaining participants of waiting for the user. This scenario can be useful in, for example, allowing patients to delay their arrivals at doctor's offices if doctors are running late.
  • FIG. 13 illustrates an exemplary process 1300 used for alerting one or more users who are scheduled to participate in an appointment of possible delay of the at least one of the participants to the appointment.
  • the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1300 .
  • the process 1300 involves the calendar application interface 110 , the first appointment 115 , and the second appointment 120 .
  • process 1300 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1300 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1100 may be performed by an application that acts as an interface between the navigation and calendar applications.
  • the process 1300 may be activated either manually or automatically.
  • the manual activation may be through a setting (e.g., an icon) appearing in the calendar application or a navigation application.
  • the process 1300 includes the calendar application identifying an appointment within a calendar application ( 1305 ) and identifying a geographic location of the appointment and the time at which the appointment is due to start ( 1310 ).
  • the calendar application references a location field associated with the appointment.
  • the calendar application may reference other fields associated with the appointment and may search for keywords identifying an address.
  • the calendar application searches for a zip code, city, and/or state name to identify an address. In this manner, the calendar application identifies that the geographic location of, for example, the first appointment 115 is at “1425 K Street, NW, Washington D.C. 20005.”
  • the calendar application references a time field within the calendar application to identify the time during which the appointment is scheduled to take place.
  • the calendar application may reference other fields associated with the appointment and may search for keywords identifying time of each appointment.
  • the calendar application searches for key words, such as “starting time,” “ending time,” “from 10:00 am to 11:00 am,” and other possible texts indicative of the time of the appointment. In this manner, the calendar application identifies that the time associated with, for example, the first appointment 115 is from “10:00 am to 11:00 am.”
  • the process 1300 also includes the calendar application identifying participants of the appointment ( 1315 ).
  • the calendar application searches participant field to identify the participants of the appointment.
  • the calendar application identifies at least two participants (e.g., a first participant and a second participant).
  • the first participant may be the owner of the calendar application referenced in FIGS. 1A and 1B , for example.
  • the calendar application After identifying the participants of the appointment, the calendar application identifies, at a time before the appointment time, a geographic location of one of the identified participants ( 1320 ). For example, the calendar application identifies the geographic location of the first participant (e.g., the owner of the calendar application referenced in FIGS. 1A and 1B ).
  • the calendar application automatically identifies a geographic location of one of the identified participants at a predetermined time before the appointment.
  • the predetermined time may be immediately preceding the appointment time or may be, for example, fifteen minutes prior to the appointment.
  • the predetermined time may be at a user-specified or a system-specified time in advance of the appointment time.
  • the calendar application identifies a geographic location of one of the identified participants in response to a user requesting the calendar application to identify the geographic location. An administrator, an appointment participant, an organizer of the appointment, or another user related to the appointment may inspire the calendar application to identify the geographic location.
  • a first appointment participant may contact an assistant of a second appointment participant to determine whether the second appointment participant will be attending the appointment in person, by telephone, or whether a need exists to reschedule the appointment.
  • the assistant of the second appointment participant may inspire the calendar application to identify the geographic location of the second appointment participant to obtain the information requested by the first appointment participant.
  • the calendar application automatically determines the present location of the first participant using location providing technology implemented in the client device of the first participant. If the client device is equipped with multiple location providing technologies, the calendar application may use the technology that provides the more accurate information about the present location.
  • the client device includes a mobile device that is GPS-enabled, and the calendar application automatically determines the present location of the first participant based on the GPS position of the client device.
  • the present location of the first participant is automatically determined by registering the client device with a host (e.g., a Session Initiation Protocol (“SIP”) server.
  • SIP Session Initiation Protocol
  • the client device may provide information to the host that is used to derive location information. For example, the host may derive location information based on how the client device is accessing the network (e.g., as identified by source IP address or another packet identifier).
  • SIP Session Initiation Protocol
  • the present location of the first participant is automatically determined from a profile associated with the first participant.
  • the profile and/or contact information may indicate a predetermined home and/or office location.
  • the user of a client office computer has previously stored in his/her profile the location of the first participant's office.
  • the calendar application uses the profile to determine the office location.
  • the calendar application After identifying the geographic location of the first participant, the calendar application identifies a route extending from the geographic location of the first participant to the geographic location of the appointment ( 1325 ). To this end, in one example, the calendar application is equipped with navigation capabilities. Alternatively or additionally, the calendar application communicates with a navigation application that is logically separate from the calendar application to identify the route extending from the geographic location of the first participant to the geographic location of the appointment. As noted above, the U.S. patent application Ser. No. 11/618,069, filed on Dec.
  • the calendar application also identifies the travel time associated with the route ( 1330 ). For instance, the calendar application may identify a travel time associated with the route by using its own navigation capabilities or by communicating with a navigation application that is logically separate from the calendar application. The calendar application may identify the travel time associated with the route by determining a distance of the route and determining an average travel time corresponding to traveling the determined distance.
  • the calendar application also may use historical data in identifying the travel time associated with the route. For example, if the participant has previously traveled along the route, the calendar application may use an actual time (or an average of actual times) with which the participant previously traveled the route. The calendar application also may use historical data related to users other than the participant. The calendar application may determine an average time that it took for all known users to travel the route.
  • the calendar application may consider the time of day, the date, current travel conditions, or any other information that may impact travel time. For example, the calendar application may, when the travel is during rush hour, identify a travel time that is longer than a travel time when the travel is not during rush hour. The calendar application also may identify a travel time that is longer than typical when the calendar application determines that an event (e.g., a parade, a car accident, road work, etc.) is occurring along the route. The calendar application further may account for the modality of travel in identifying the travel time associated with the route.
  • an event e.g., a parade, a car accident, road work, etc.
  • FIG. 14 illustrates an exemplary process for identifying a travel time based on modality of travel.
  • the calendar application identifies a modality of travel of the participant to the geographic location of the appointment ( 1410 ). To do so, in one implementation, the calendar application presents a UI to solicit, from the first participant, such information.
  • FIG. 15 illustrates an exemplary UI 1500 that is used to solicit, from the participant of the appointment, information regarding the modality of travel.
  • the UI 1500 requests that the first participant specifies or confirms the modality of travel and to this end presents to the user several options.
  • the several options include walking, driving, public transportation, and others.
  • the “others” option may be selected if the first participant's choice of travel does not appear among one of the walking, driving, or public transportation.
  • the user choice of travel may be via a bicycle.
  • the selection of the “others” option generates another UI allowing the first participant to specify the modality of travel (e.g., a bicycle).
  • the calendar application based on the modality of travel, identifies travel time associated with the route ( 1420 ). In identifying the travel time, the calendar application may take into account the speed of traveling. The speed of traveling may include an average speed based on the specified modality of travel or actual speed of travel. The calendar application may determine that actual speed of traveling by soliciting it from the user or automatically gleaning it from the client device.
  • the calendar application also may take into account traffic conditions.
  • the traffic conditions may include current traffic flow or historic traffic flow.
  • the current traffic flow may be determined by contacting a server that includes traffic data to obtain current road conditions between the user's appointments.
  • the calendar application also identifies the amount of time remaining until the appointment time at which the appointment is due to start ( 1340 ).
  • the time remaining may be determined by identifying a present or current time and subtracting the present or current time from the starting time of the appointment. Unless the present or current time is after the appointment time, the amount of time remaining until the appointment time is a positive number and may be used to determine whether the first participant is likely to arrive at the appointment on time.
  • the calendar application determines whether the travel time exceeds the amount of time remaining until the appointment ( 1345 ). For example, the calendar application may compare the travel time to the amount of time remaining until the appointment and determine whether the travel time is greater than the amount of time remaining until the appointment based on the comparison. The calendar application may subtract the travel time from the amount of time remaining until the appointment. If the result is positive, the calendar application determines that the travel time does not exceed the amount of time remaining until the appointment. If the result is negative, the calendar application determines that the travel time does exceed the amount of time remaining until the appointment.
  • the calendar application sends a message ( 1350 ). For instance, the calendar application may alert the first participant by displaying an alert display to the first participant that informs the first participant of the same.
  • the calendar application also may send a message to other participants of the appointment indicating that the first participant likely will be late for the appointment.
  • the message may be a reschedule request from the first participant that does not specify the reason that the first participant needs to reschedule the meeting (e.g., that the first participant is running late).
  • the calendar application may send a message to other users that are not participants of the appointment. For example, the calendar application may send a message to the first participant's assistant, a family member of the first participant, participants scheduled to have a subsequent appointment with the first participant after the appointment, etc. In this example, the message may indicate that the first participant may be running late.
  • FIG. 16 illustrates an exemplary alert interface 1600 used for alerting the first participant that he or she is not likely to arrive at the appointment location on time.
  • the calendar application described with respect to FIGS. 1A and 1B is referenced in describing the alert display 1600 .
  • the alert interface 1600 informs the first participant that it is currently 11:30 am and the first participant is still at the first appointment location (e.g., at “1425 K St. NW, Washington D.C., 20005”) and the next appointment of the first participant takes place at noon and is located at United States Patent and Trademark Office.
  • the alert interface 1600 then alerts the first participant that the travel time to the next appointment exceeds the timing remaining until the appointment time.
  • the first participant may be presented with a list of suggestions helping the first participant to avoid such potential conflict.
  • FIG. 17 illustrates an exemplary alert interface 1700 showing options that are presented to the first participant to avoid the scheduling conflict.
  • the options include (1) sending a message to a second participant informing him or her of the estimated arrival time of the first participant, (2) rescheduling the appointment, and/or (3) changing the modality of travel.
  • Sending a message to the second participant includes informing the second participant of the geographic location of the first participant and estimated arrival time of the first participant.
  • the second participant knows that the first participant is running late and does not have to wait for the first participant at the meeting location and can, for example, delay his/her arrival to the meeting location accordingly.
  • the second participant may even be directed to reschedule the appointment to account for estimated arrival time of the first participant.
  • the message may be integrated with the address book or the calendar information to alert other users. For example, a calendar entry for the appointment on a calendar associated with another participant in the appointment may be updated to include the message that the first participant is running late.
  • the message also may be sent to other participants of the appointment by accessing contact information for the other participants using the first participant's address book information and sending the message using the accessed contact information.
  • the alert interface 1700 also may include telephone numbers or other contact information for the other participants of the appointment.
  • the first participant may view the telephone numbers or other contact information and contact the other participants to inform the other participants that the first participant will likely be late for the appointment.
  • the options also include rescheduling the appointment Rescheduling the appointment, for example, includes postponing the appointment time to a later time to thereby allow the first participant to timely arrive at the geographic location of the appointment.
  • the calendar application accesses a calendar application of the second participant to identify the time availability of the second participant, and based on the time availability of the first and second participant the calendar application reschedules the appointment at a mutually convenient time for the first and second participants.
  • the options for avoiding the conflict also include changing the modality of travel. Selection of this option may result in generation of another UI instructing the first participant to change the current travel mode to a different one. For example, the first participant may be instructed to change the travel mode from public transportation to driving.
  • the calendar application automatically selects one of the options based on the user preferences. For example, upon determining that the first participant is running late to the appointment, the calendar application automatically sends a message to the other participants informing them that the first participant is running late along with the estimated arrival time. For another example, upon determining that the first participant is running late to the appointment, the calendar application automatically reschedules the appointment at a convenient time for the attending users. In yet another example, upon determining that the first participant is running late to the appointment, the calendar application automatically informs the first participant to change the modality of travel and/or travel faster using the current modality of travel to timely arrive at the appointment location.
  • the calendar application may subtract travel time from the amount of time remaining until the appointment to determine the amount of time by which the first participant should leave to arrive at the appointment on time.
  • the calendar application may compare the amount of time by which the first participant should leave to arrive at the appointment on time to a threshold and, if the amount of time by which the first participant should leave to arrive at the appointment on time is less than the threshold, the calendar application may send a reminder to the first participant to remind the first participant to leave for the appointment.
  • the reminder may include the amount of time by which the first participant should leave to arrive at the appointment on time.
  • techniques described above with respect to FIG. 13 may be repeated.
  • the techniques described with respect to FIG. 13 may be periodically repeated as the first participant travels to the appointment.
  • updated information regarding the first participant's current location and the current time may be used.
  • the concepts described herein also relate to a process for identifying that a user's appointment has been delayed and also for dynamically rescheduling the user's subsequent appointments to account for such a delay.
  • FIG. 18 provides an example of such a process.
  • FIG. 18 illustrates an exemplary process 1800 used for dynamically rescheduling subsequent appointments of the user (e.g., the first participant) based on the determination that one of the appointments of the user (e.g., the first participant) has been delayed.
  • Some of the actions performed by the process 1800 are similar to the actions performed by the process 1300 . As such and for purposes of brevity, these actions are not described here in more detail.
  • the process 1800 includes the calendar application identifying an appointment within a calendar application ( 1805 ) and identifying an appointment time at which the appointment is due to start and due to end ( 1810 ).
  • the actions ( 1805 and 1810 ) are similar to those ( 1305 and 1310 ) described above with respect to the process 1300 , and, as such, they are not described here in more detail.
  • the process 1800 also includes the calendar application identifying that the appointment has been delayed for a certain fixed amount of time ( 1815 ). For example, the calendar application identifies that the starting time of the appointment has been delayed due to one of the participants running late to the appointment. Alternatively or additionally, the calendar application may identify that the duration of the appointment has been extended beyond the scheduled ending time by a certain fixed amount of time. For instance, in one implementation, one of the participants of the appointment notifies the calendar application of such delay. In another implementation, the calendar application determines such delay based on the locations of the participants. For example, if the participant appears to still be at the location of the appointment instead of on the road traveling to the next appointment, the calendar application determines that the appointment has lasted longer than previously scheduled.
  • the calendar application identifies the amount of time the appointment has been delayed and also identifies the subsequent appointments within the calendar application ( 1820 ). Based on the amount of time the appointment has been delayed and the timing of the subsequent appointments, the calendar application determines that a need for rescheduling other appointments exists and confirms with the participant the desire to reschedule the other appointments ( 1825 ). The calendar application then automatically reschedules the subsequent appointments within the calendar application such that the starting time of each of the subsequent appointments is postponed to account for the delay associated with the current appointment ( 1830 ). The calendar application also may notify the participants of each of the subsequent appointments and inform them of such change, so that they can change their schedule according.

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Automation & Control Theory (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Navigation (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Techniques are described for providing a meeting notification and automatic modification service. A system may be configured to identify an appointment in a calendar application, identify a geographic location of the appointment, and identify, before the appointment time, a geographic location of a first participant of the appointment. Based on the geographic information, the system may identify a route extending from the geographic location of the first participant to the geographic location of the appointment, and may identify a travel time associated with the route. Based on the travel time and the appointment time, the system may determine whether the first participant is estimated to arrive at the appointment on time and, based on the determination, the system may send a message to participants of the appointment or dynamically reschedule the appointment.

Description

CROSS REFERENCE TO RELATED APPLICATIONS
The present application is a continuation of U.S. patent application Ser. No. 14/054,349, filed Oct. 15, 2013, which is a continuation of U.S. patent application Ser. No. 13/620,520, filed Sep. 14, 2012 now issued as U.S. Pat. No. 8,560,232, which is a continuation of U.S. patent application Ser. No. 13/296,130, filed Nov. 14, 2011 now issued as U.S. Pat. No. 8,364,400, which is a continuation of U.S. patent application Ser. No. 12/962,357, filed on Dec. 7, 2010 now issued as U.S. Pat. No. 8,073,614, which is a continuation of U.S. patent application Ser. No. 11/966,562, filed on Dec. 28, 2007 now issued as U.S. Pat. No. 7,869,941, which is a continuation-in-part of U.S. patent application Ser. No. 11/618,069, filed on Dec. 29, 2006 now issued as U.S. Pat. No. 7,941,753, and claims the benefit of and priority to U.S. provisional application No. 60/947,278, filed on Jun. 29, 2007, U.S. provisional application No. 60/945,805, filed on Jun. 22, 2007, U.S. provisional application No. 60/938,145, filed on May 15, 2007, and U.S. provisional application No. 60/888,850, filed on Feb. 8, 2007. Each of the aforementioned patent(s) and application(s) are hereby incorporated by reference in their entirety.
TECHNICAL FIELD
This disclosure relates to meeting notification and modification service.
BACKGROUND
A user may populate an electronic calendar with appointments that take place at different locations. The electronic calendar may be, for example, a Microsoft Outlook calendar, and may be manually programmed to include a date and time of appointments and locations associated with the appointments.
SUMMARY
In one aspect, an appointment in a calendar application is identified, and a geographic location of the appointment is identified. An appointment time at which the appointment is due to start and a current time are identified, and an amount of time remaining between the current time and the appointment time at which the appointment is due to start is identified. first participant of the appointment is identified at the current time. A route extending from the geographic location of the first participant to the geographic location of the appointment is identified, a travel time associated with the route is identified, and it is determined whether the travel time exceeds the amount of time remaining until the appointment time. If it is determined that the travel time exceeds the amount of time remaining, a communication is sent.
Implementations may include one or more of the following features. For example, the travel time may be identified based on a current road condition or traffic flow, or the travel time may be identified based on a historic traffic flow. A modality of travel of the first participant to the geographic location of the appointment may be identified, and, based on the modality of travel, the travel time associated with the route may be identified.
Also, a time threshold at which travel could be completed by adding the travel time to the current time may be identified, and a later time to schedule the appointment may be determined based on the time threshold. The later time may be the same as or later than the time threshold. The appointment time may be postponed to the later time to thereby enable the first participant to arrive at the geographic location of the appointment. Based on the postponed appointment time, updated appointment information may be sent to at least one participant of the appointment or another designee.
In some implementations, the first participant may be alerted that the first participant will be late to the appointment, and/or a second participant, other than the first participant, may be alerted that the first participant will be late to the appointment. In these implementations, the second participant may be informed of the geographic location of the first participant and the travel time of the first participant to the geographic location of the appointment, and the second participant may be informed that the appointment is being changed to account for the travel time.
In some examples, the calendar application of the first and second participants may be accessed, and time availability of the first and second participants may be identified. In these examples, a mutually convenient time for the first and second participants to participate in a rescheduled version of the appointment may be determined based on the time availability of the first and second participants, and the appointment may be automatically rescheduled at the mutually convenient time for the first and second participants. Further, in these examples, travel time may be accounted for in each of the first and second participants' schedules, and the mutually convenient time may be selected from among multiple mutually convenient times based on, among other factors, temporal proximity to geographic locations associated with adjacent appointments in one or both of the first and second participants' calendars.
Also, one or more suggestions may be provided to the first participant to respond to the alert message. The one or more suggestions may include a suggestion to change the modality of travel used to compute the travel time associated with the route, and/or a suggestion to send a message to the second participant informing the second participant atm estimated arrival time. Telephone contact information may be accessed for the second participant, and a suggestion may be provided to the first participant to call the second participant. The suggestion may include a telephone number for the second participant determined based on the accessed telephone contact information for the second participant.
In some implementations, a current geographic location of the first participant may be identified. In these implementations, the current geographic location of the first participant may be identified based on a location-based technology utilized by a client device of the first participant. The client device may utilize a global positioning system. Further, a notification window may be displayed at a specified time that precedes the appointment time by at least the travel time to the geographic location of the appointment if it is determined that the travel time does not exceed the amount of time remaining until the appointment time.
In another aspect, appointment information within a calendar application is dynamically updated. An appointment within a calendar application is identified, and appointment times at which the appointment is due to start and due to end are identified. It is identified that the appointment has been delayed for a certain amount of time, and at least one remaining appointment within the calendar application is identified. A need to reschedule at least one remaining appointment is determined based on the certain amount of time that the appointment has been delayed, it is confirmed with at least one participant of the appointment that the remaining appointment should be rescheduled. The remaining appointment is dynamically rescheduled within the calendar application such that a starting time of the remaining appointment is postponed by the certain amount of time.
Implementations may include one or more of the following features. For instance, participants of the remaining appointment may be informed of the rescheduling of the remaining appointment. Availability of participants of the appointment at the postponed starting time may be confirmed, and the participants of the appointment may be notified when conflicts with the postponed starting time exist.
In a further aspect, travel conditions are monitored and changes to travel conditions associated with one or more participants traveling to an appointment are dynamically processed. An amount of time remaining until an appointment time at which an appointment is due to start is identified, and a travel time corresponding to a route of travel associated with one or more participants traveling to the appointment is identified. Based on the identified amount of time remaining until the appointment time and the identified travel time corresponding to the route, it is determined that the one or more participants traveling to the appointment are estimated to arrive at the appointment on time. Travel conditions for the route of travel associated with the one or more participants traveling to the appointment are monitored and a change in travel conditions is detected for the route of travel associated with the one or more participants traveling to the appointment. In response to detecting the change in travel conditions, an updated amount of time remaining until the appointment time at which the appointment is due to start is determined, and a current location of the one or more participants is determined. Based on the current location of the one or more participants, an updated travel time corresponding to the route of travel associated with the one or more participants traveling to the appointment is determined. Based on the updated amount of time remaining until the appointment time and the updated travel time corresponding to the route of travel, it is determined that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions. In response to determining that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions, a communication is sent.
Implementations may include one or more of the following features. For example, one or more alternative routes may be identified for the one or more participants traveling to the appointment, one or more alternative travel times associated with each of the identified one or more alternative routes of travel may be determined, and it may be determined whether at least one of the one or more alternative travel times is less than the updated travel time. Conditioned on determining that at least one of the one or more alternative travel times is less than the updated travel time, at least one of the one or more alternative routes of travel for which the one or more alternative travel times is lowest is selected, and the one or more participants are alerted about the selected at least one of the one or more alternative routes of travel. Conditioned on determining that at least one of the one or more alternative travel times is not less than the updated travel time, the one or more participants are alerted about current travel conditions and are informed that the route of travel remains most efficient.
In some examples, an alert message may be sent to at least one of the participants of the appointment. The alert message may indicate that the one or more participants traveling to the appointment are estimated to arrive at the appointment late based on the changed travel conditions. Also, the appointment may be dynamically rescheduled based on the updated travel time, and the participants of the appointment may be notified that the appointment has been dynamically rescheduled. One or more subsequent appointments in a calendar of at least one of the participants of the appointment may be identified, and the one or more subsequent appointments may be dynamically rescheduled based on the dynamically rescheduled appointment.
In yet another aspect, a participant is assisted with a calendar appointment when the participant diverges from a suggested route for traveling to the calendar appointment. A current geographic location of a participant traveling to an appointment scheduled in a calendar application used by the participant is determined, and information indicative of the suggested route of travel is accessed. The geographic location of the participant is compared to one or more geographic locations associated with the route of travel suggested for the participant, and, based on comparison results, it is determined whether the current geographic location of the participant traveling to the appointment differs more than a threshold from the one or more geographic locations associated with the route of travel suggested for the participant.
Conditioned on determining that the current geographic location of the participant traveling to the appointment differs more than the threshold from the one or more geographic locations associated with the route of travel suggested for the participant, an updated route of travel to the appointment is determined based on the current geographic location of the participant, and a travel time associated with the updated route of travel to the appointment is determined. Based on the travel time associated with the updated route of travel, it is determined whether the participant traveling along the updated route is estimated to arrive at the appointment on time. Conditioned on determining that the participant traveling along the updated route is estimated to arrive at the appointment on time, the participant is provided with information related to the updated route of travel. Conditioned on determining that the participant traveling along the updated route is not estimated to arrive at the appointment or time, the participant is provided with information related to the updated route of travel, and a communication is sent.
Conditioned on determining that the current geographic location of the participant traveling to the appointment does not differ more than the threshold from the one or more geographic locations associated with the route of travel suggested for the participant, it is determined whether the current geographic location of the participant is on the route. Conditioned on determining that the current geographic location of the participant is not on the route, information is provided to the participant related to how to return to the route.
Implementations may include one or more of the following features. For example, an alert message may be sent to at least one of the participants of the appointment. The alert message may indicate that the participant traveling to the appointment is not estimated to arrive at the appointment on time. The appointment may be dynamically rescheduled based on the travel time associated with the updated route of travel to the appointment, and the participants of the appointment may be notified that the appointment has been dynamically rescheduled. One or more subsequent appointments in a calendar of at least one of the participants of the appointment may be identified, and the one or more subsequent appointments may be dynamically rescheduled based on the dynamically rescheduled appointment.
In another aspect, time associated with modality-specific incidentals to travel is accounted for in dynamically assisting a participant in handling an appointment. An appointment in a calendar associated with a participant of the appointment is identified, and an appointment time at which the appointment is due to start and a current time are identified. An amount of time remaining between the appointment time at which the appointment is due to start and the current time is identified, and a geographic location of the appointment is identified. A current geographic location of the participant of the appointment is identified, and a route extending from the current geographic location of the participant to the geographic location of the appointment is identified. A modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined, and a modality-based travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the determined modality of travel is determined. Based on the determined modality of travel, at least one incidental travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined, and a total travel time for traveling the route extending from the geographic location of the participant to the geographic location of the appointment is determined based on the determined modality-based travel time and the determined at least one incidental travel time. It is determined whether the total travel time exceeds the amount of time remaining until the appointment time. Conditioned on determining that the total travel time exceeds the amount of time remaining until the appointment time, the participant is dynamically assisted in handling the appointment.
Implementations may include one or more of the following features. For instance, an automobile may be determined as the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment, and a mapping device may be used to compute an automobile travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the automobile. A walking travel time associated with walking from a building to the automobile prior or subsequent to traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the automobile may be determined, and the walking travel time may be added to the automobile travel time.
In some examples, an airplane may be determined as the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment and an air travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment using the airplane may be determined. A security travel time associated with going through security prior to boarding the airplane may be determined, and the security travel time maybe added to the air travel time.
Also, content associated with the appointment may be accessed, and information associated with a distance extending from the geographic location of the participant to the geographic location of the appointment may be accessed. The content associated with the appointment and the information associated with the distance extending from the geographic location of the participant to the geographic location of the appointment may be analyzed, and, based on the analysis, the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be automatically determined.
Further, the user may be able to select the modality of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment. The appointment may be dynamically rescheduled based on the total travel time. An alert message may be sent to at least one of the participants of the appointment. The alert message may indicate that the participant is estimated to arrive at the appointment late.
In some implementations, multiple, different modalities of travel for traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be determined, and a modality-based travel time associated with traveling the route extending from the geographic location of the participant to the geographic location of the appointment may be determined using the determined multiple, different modalities of travel. In these implementations, at least one incidental travel time associated with transitioning from a first modality of travel to a second modality of travel may be determined.
The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
DESCRIPTION OF DRAWINGS
FIGS. 1A and 1B illustrate exemplary calendar application interfaces, configured to make a user of the calendar application able to identify a travel route extending from a geographic location of a first appointment to a geographic location of a second appointment and to reserve, within the calendar application, a time block for a travel time associated with the travel route.
FIG. 2 illustrates an exemplary process used to identify a travel route between already scheduled first and second appointments and to reserve, within a calendar application, a time block to account for a travel time associated with the travel route.
FIGS. 3A and 3B illustrate an exemplary process and an exemplary user interface for soliciting and receiving, from the user, an address associated with an appointment.
FIG. 4 illustrates an exemplary process for identifying an amount of unscheduled time between two appointments (e.g., a first appointment and a second appointment).
FIG. 5 illustrates an exemplary UI used to inform a user of an unscheduled time in the user's calendar.
FIG. 6 illustrates an exemplary UT that makes the user able to set a reminder in calendar application.
FIG. 7 illustrates an exemplary UI used to allow a user to set an alert message, alerting the user of certain pre-defined conditions/events.
FIG. 8A illustrates an exemplary process used to alert a user about a change in current road conditions.
FIG. 8B illustrates an exemplary UI that may be generated as a result of the process illustrated in FIG. 8A and presented to the user to alert a user about a change in current road conditions.
FIG. 9A illustrates an exemplary process used to alert a user about conflicting appointments.
FIG. 9B illustrates an exemplary user interface that may be generated as a result of the process illustrated in FIG. 9A to alert a user about conflicting appointments.
FIG. 9C illustrates an exemplary process used for rescheduling an appointment at a mutually convenient time for the people attending the appointment.
FIG. 10A illustrates an exemplary process used to alert a user that the user has deviated from an original route.
FIG. 10B illustrates an exemplary user interface that may be generated as a result of the processes illustrated in FIG. 10A to alert a user that the user has deviated from an original route.
FIG. 10C illustrates an exemplary user interface used to alert a user that the user has deviated from an originally-calculated route by less than a threshold amount and to help the user to get back on the originally-calculated route.
FIG. 11 illustrates an exemplary process used to make able a user to determine presence or absence of a conflict (e.g., absence of sufficient travel time) between an already scheduled first appointment and a second and new appointment that the user wishes to schedule at a particular time.
FIGS. 12A-12D illustrate, within UIs 1200A-1200D, an exemplary sequence of interact ions between a calendar application and a user wishing to schedule one or more appointments using the process 1100 described with respect to FIG. 11.
FIG. 12E illustrates an exemplary process used by s a calendar application to cancel and/or modify a travel time block upon receiving an indication from a user to cancel an appointment that is used to estimate the travel time block.
FIG. 13 illustrates an exemplary process used for alerting one or more users who are scheduled to participate in an appointment of possible delay of at least one of the participants to the appointment.
FIG. 14 illustrates an exemplary process for identifying a travel time based on modality of travel.
FIG. 15 illustrates an exemplary UI that is used to solicit, from a participant of an appointment, information regarding a modality of travel.
FIG. 16 illustrates an exemplary alert interface used for alerting a participant of an appointment that he or she is not likely to arrive at the appointment location on time.
FIG. 17 illustrates an exemplary alert interface showing options that are presented to a participant of an appointment to avoid a scheduling conflict.
FIG. 18 illustrates an exemplary process used for rescheduling subsequent appointments of a user based on the determination that one of the appointments of the user has been delayed.
DETAILED DESCRIPTION
Generating directions to geographic locations of appointments stored in a calendar application can be a complex undertaking. For example, a user who maintains a calendar with appointments that take place at various locations may find it difficult or cumbersome to identify a travel route through the locations of the user's appointments. Particularly, the user may find it time-consuming to manually look-up and print out directions for segments of a travel route before leaving, for example, the user's home or work place.
To reduce the user's burden in identifying a travel route through the geographic locations of the user's appointments, in one implementation described generally with respect to FIGS. 1A-1B and 2-4, a calendar application is configured to allow the user to automatically generate appointment-to-appointment directions and to reserve a time block between user's appointments to account for the travel time associated with a route extending from one appointment to the next. To this end, the calendar application includes a navigation component and further includes a control option, manifested by an icon or a “setting,” selection of which results in generation a travel route between multiple appointments and further results in reservation of a time block within the user's calendar to account for the travel time associated with the travel route.
To illustrate, assume that a user has two appointments within a calendar application (e.g., a first appointment and a second appointment) and that the user selects, from within the calendar application, the control icon. In response, the calendar application automatically (1) identifies a travel route extending from a geographic location of the first appointment to a geographic location of the second appointment, (2) identifies a travel time associated with the travel route, and (3) places a hold on the user's calendar to account for such travel time. Additionally, the calendar application may provide the user with a reminder about the user's second appointment, taking into account the travel time associated with the calculated route extending from the geographic location of the first appointment to the geographic location of the second appointment.
As such, depending on the required travel time, the user may be presented with an option of selecting to travel immediately following the first appointment or just prior to the second appointment. In the absence of sufficient time between the first and second appointments, the user is provided with an alert message at the time of scheduling the first and/or the second appointment, informing the user of the same, as more fully described below with respect to FIGS. 9A-9C. The alert message may be in several forms. In one example, the alert message is in the form of automatic e-mail to the user (or a person to whom the user delegates the task of keeping the user's calendar), informing the user of the conflict. In another example, the alert message is provided as a user interface (“UI”) within the calendar application. In either case, the alert message provides the user with several options to allow the user (or a person to whom the user delegates the task of keeping the user's calendar) to account for such a conflict.
For instance, the alert message indicates to the user the anticipated need to leave the first appointment earlier than its scheduled ending time or arriving at the second appointment later than its scheduled starting time. Alternatively, the alert message may provide the user with an option to reschedule the first and/or the second appointment. To this end and as described with respect to FIG. 9C, the calendar application may attempt to identify the availability of the participants of the first appointment and/or the second appointment for rescheduling either of the first and/or second appointments. In this manner, the user is presented with several options to resolve the conflict (e.g., absence of sufficient travel time) between the first and second appointments.
In another implementation described generally with respect to FIG. 5, after taking into the account the travel time associated with the travel route between the first and second appointments, the calendar application identifies that there is an unscheduled time period in the user's calendar, and the calendar application informs the user of the same. Along these lines, the calendar application may provide the user with suggestions as to how the user should fill in the identified gap between the user's first and second appointments. This may help the user to more efficiently manage the unscheduled times within the user's daily calendar.
In one example, the calendar application presents to the user a UI, allowing the user to identify a point of interest at which the user is interested in spending the unscheduled time. In response, the user identifies a point of interest (e.g., a coffee shop or a book store) and a geographic location associated therewith. The geographic location may include a specific address associated with the point of interest. Alternatively, the geographic location may include a geographic area/proximity within which the point of interest should be located. In either case, this implementation allows the user to perform a geographically limited search for a particular point of interest to fill in the identified gap between the user's appointments.
In another implementation described generally with respect to FIGS. 11 and 12A-12D, instead of generating appointment-to-appointment directions and reserving a time block to account for the travel time between appointments after the appointments are scheduled, the calendar application generates appointment-to-appointment directions and reserves a time block to account for the travel time between the appointments at the time of scheduling an appointment. To illustrate, assume that the user has scheduled a first appointment within the user's calendar and the user wishes to schedule a second appointment within the user's calendar. Upon indicating a desire to schedule the second appointment, the calendar notes the proposed time and location of the second appointment.
Thereafter, the calendar application automatically identifies a route extending between the first appointment and the second appointment and identifies the travel time associated with the route. If the travel time exceeds the time gap between the first and second appointments, the calendar application alerts the user of the same before accepting the second appointment at the requested time. As such, the user immediately realizes the conflict (e.g., absence of sufficient travel time between the first and second appointments) and is allowed to schedule the second appointment at another time to avoid such conflict. This minimizes the hassle of later recognizing such conflict and having to reschedule the appointment at that time.
However, if the travel time associated with the route does not exceed the time gap between the two appointments, the calendar application schedules the second appointment at the requested time. Along these lines, if the user now wishes to schedule a third appointment between the first and second appointments, the calendar application first ensures that the proposed timing of the third appointment does not present a conflict (e.g., absence of sufficient travel time between the first and third appointments or between the third and second appointments) before accepting the third appointment.
In particular, the calendar application automatically identifies a first route extending from the geographic location of the first appointment to the geographic location of the third appointment and identifies a first travel time associated with the first route. Similarly, the calendar application automatically identifies a second rout extending from the geographic location of the third appointment to the geographic location of the second appointment and identifies a second travel time associated with the second route. The calendar application then compares the first travel time with the time gap between the first and third appointments and similarly compares the second travel time with the time gap between the third and second appointments.
If the first travel time exceeds the time gap between the first and third appointments or the second travel time exceeds the time gap between the third and the second appointments, the calendar application alerts the user before accepting the third appointment at the requested time. As such, the user immediately realizes the conflict and is made able to schedule the third appointment at another time to avoid such conflict.
Alternatively, if the first travel time does not exceed the time gap between the first and third appointments and the second travel time also does not exceed the time gap between the third and second appointments, the calendar application schedules the third appointment at the requested time.
In some implementations, position of an attendee of an appointment is detected. Based on the position of the attendee, current time/position of the attendee is compared to time/location of a next calendar appointment or invite to identify situations in which the attendee will be late to the appointment. Appropriate action may be taken when it is determined that an attendee likely will be late to the appointment. For instance, techniques may include rescheduling the appointment to a time when the attendee will arrive at the appointment. Dynamic changes to travel time (e.g., changes based on changing travel/road conditions or diverging from a route) for one or more attendees may be accounted in rescheduling appointments.
In addition, time required by incidentals of travel may be accounted when determining whether dynamic changes need to be made to a calendar event to which a traveler is scheduled to attend. Specifically, if an attendee is traveling to an appointment by automobile and the navigation system indicates that the attendee is 10 minutes away from the appointment location for a meeting that begins in 10 minutes, the attendee may be late given the need to park, walk from the car to the meeting, and clear security. Keywords such as airport/train/flight/car/security, and distances, may each help to recognize modalities of travel and appropriately account for incidental time required thereby.
FIGS. 1A and 1B illustrate exemplary calendar application interfaces, allowing a user of the calendar application to identify a travel route extending from a geographic location of a first appointment to a geographic location of a second appointment and to reserve, within the calendar application, a time block for a travel time associated with the travel route. The user interfaces (“UIs”) of FIGS. 1A and 1B are generally similar. For ease of description, the implementation of FIG. 1A is discussed in detail, and a description of redundant aspects of the implementation of FIG. 1B is omitted for brevity.
FIG. 1A illustrates an exemplary UI 100A used for identifying a travel route between multiple appointments and reserving, within a calendar application, a time block for a travel time associated with the travel route. In particular, the UI 100A includes a calendar application interface 110. The calendar application interface 110 identifies, within a particular day (e.g., Monday, Apr. 23, 2002), a first appointment 115, a second appointment 120, and a control icon 125. As shown, the first appointment 115 is with “patent attorney Karl Renner at 1425 K Street, NW, Washington D.C. 20005.” And, the first appointment 115 is from 10:00 am to 11:00 am. The second appointment 120 is with “patent examiner Joe Smith εt the U.S. Patent and Trademark Office.” And, the second appointment 120 is from 1:00 pm to 2:00 pm.
The calendar application interface 110 also includes the control icon 125. The control icon 125 is structured and arranged for identifying a travel route extending from a geographic location of the first appointment 115 to the geographic location of the second appointment 120 and for reserving a time block, within a calendar application, to account for the travel time associated with the travel route. To this end, the selection of the control icon 116 prompts the calendar application to (1) identify a route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120, (2) identify a travel time associated with the route, and (3) reserve a time block within the calendar application to account for the travel time, as more fully described below with respect to FIGS. 1B and 2.
FIG. 1B illustrates the calendar application interface 110 with the control icon 125 being activated. As shown, the selection of the control icon 125 prompts the calendar application to reserve a travel time block 130 between the first appointment 115 and the second appointment 120. In one implementation, the selection of the time block 130 provides the user with directions from the geographic location of the first appointment 115 to the geographic location of the second appointment 120.
FIG. 2 illustrates an exemplary process 200 used to identify a travel route between first and second appointments and to reserve, within a calendar application, a time block to account for a travel time associated with the travel route. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 200. In particular, the process 200 involves the calendar application interface 110, the first appointment 115, the second appointment 120, the control icon 125, and the travel time block 130. Although the process 200 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 200 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 200 may be performed by an application that acts as an interface between the navigation and calendar applications.
The process 200 includes the calendar application identifying a first appointment in a calendar application (210) and identifying a geographic location of the first appointment (215). To do so, in one implementation, the calendar application references a location field associated with the first appointment 115 to identify the location associated with the first appointment 115. Alternatively or additionally, the calendar application may reference other fields associated with the first appointment 115 and may search for key words identifying an address. For example, the calendar application may search for a zip code, city, and/or state name to identify an address. In keeping with the previous example described with respect to FIGS. 1A and 1B, the calendar application identifies that the geographic location of the first appointment 115 is at “1425 K Street, NW, Washington D.C. 20005.”
Similarly, the process 200 includes the calendar application identifying a second appointment in the calendar application (220) and identifying the geographic location of the second appointment (225). Identifying the second appointment may include identifying an existing appointment already scheduled within a calendar application. Alternatively or additionally, identifying the second appointment may include receiving a request to schedule a second appointment within a calendar application. The calendar application uses the above-described techniques to identify the geographic location of the second appointment 120. In doing so, the calendar application realizes that the geographic location of the second appointment 120 is U.S. Patent and Trademark Office without a specific address. As such, the calendar application identifies a need for identifying an address associated with the U.S. Patent and Trademark Office. To this end, the calendar application may use an exemplary process 300A illustrated by FIG. 3A and an exemplary UI 300B illustrated by FIG. 3B to determine the address associated with the U.S. Patent and Trademark Office.
Process 300A begins with determining that the user has not specified an address corresponding to an appointment location (310). To do so, in one implementation, the calendar application searches the calendar application for the address associated with the appointment. For example and as noted above, the calendar application may reference a location field associated with the second appointment 120 to determine the address for the second appointment 120. Alternatively or additionally, the calendar application may reference other fields associated with the second appointment 120 and may search for key words (e.g., a zip code, city, and/or state name) identifying an address. In the absence of such information, the calendar application concludes that the user has not specified an address for the appointment location.
Upon identifying that the user has not specified an address for the appointment location, the calendar application attempts to determine the address associated with the appointment location (320). To do so, the calendar application may solicit the user for such information. In one example, the calendar application presents the UI 300B to the user, which includes an “address” icon, allowing the user to specify an address for the appointment location (e.g., U.S. Patent and Trademark Office). In one example, the selection of the “address” icon launches another UI, allowing the user to specify the address for the appointment. The user may manually enter the address in the UI or may import the address into the UI from the user's profile. For example, the user's profile may include an entry for “U.S. Patent and Trademark Office” that specifies the address for “U.S. Patent and Trademark Office.” The profile may include the user's contact/address list. Alternatively, the calendar application may automatically determine the address for the U.S. Patent and Trademark Office without having the user to interact with the UI 300B. For example, the calendar application automatically obtains the address for U.S. Patent and Trademark Office from the user's profile.
Alternatively, the calendar application may access an online resource (e.g., Internet) to perform a web search or a database search to determine the address for the U.S. Patent and Trademark Office. In this manner and in one specific example, after performing the search, the calendar application identifies multiple addresses associated with the appointment.
To ensure the coned address is used, the calendar application may present another UI to the user and may request that the user selects from among the multiple addresses associated with the appointment location. Upon identifying the address, the calendar application allows the user to obtain directions to the appointment location (320). To this end, the calendar application includes a directions/mapping selection portion 325 in the UI 300B, selection of which provides the user with directions and/or maps to the geographic location of the second appointment 120 from the geographic location of the first appointment 115.
Along these lines, the process 200 includes the calendar application identifying a route extending from the geographic location of the first appointment to the geographic location of the second appointment (230). To do so, in one implementation, the calendar application has a built in navigation component, allowing it to generate directions from the geographic location of the first appointment 115 to the geographic location of the second appointment 120. In another implementation and as noted above, the calendar application communicates the location information for each appointment to a navigation application that is physically or logically distinct from the calendar application and requests, from the navigation application, that it identifies the travel route and the travel time associated therewith. The U.S. patent application Ser. No. 11/618,069, filed on Dec. 29, 2006 and entitled “Communicating Appointment And/Or Mapping Information Among A Calendar Application And A Navigation Application,” describes in detail concepts that effect communications of appointment information from a calendar application to a navigation application for generating a travel route and a travel time associated therewith. The entire content of this application is incorporated herein by reference.
After identifying the travel route, the calendar application identifies a travel time associated with the route (235). The travel time may take into account the current road conditions and it may be updated as the current road conditions changes, as described in more detail below with respect to FIGS. 8A and 8B. Alternatively or additionally, the travel time may take into account the historic traffic flow.
Moving forward, the calendar application determines an amount of unscheduled time between the first and second appointments (240) to determine whether the amount of unscheduled time can sustain the travel time. To do so, in one implementation, the calendar application uses an exemplary process 400 illustrated by FIG. 4.
FIG. 4 illustrates an exemplary process 400 for identifying an amount of unscheduled time between two appointments (e.g., the first appointment and the second appointment). The process 400 includes the calendar application identifying an ending time of the first appointment (410) and identifying a starting time of the second appointment (415). To do so, in one implementation, the calendar application references a time field within the calendar application to identify the time during which the appointment is scheduled to take place. Alternatively or additionally, the calendar application may reference other fields associated with the first and second appointments and may search for key words identifying time of each appointment. For example, the calendar application may search for key words, such as “starting time,” “ending time,” “from 10:00 am to 11:00 am,” and other possible texts indicative of the time of the appointment.
In one scenario, the calendar application determines that the user has failed to identify a start or end time associated with either or both of the first and second appointments. In such scenario, the calendar application may use a UI (not shown) to solicit from the user the time associated with the appointment.
After identifying the ending time associated with the first appointment and the starting time associated with the second appointment, the calendar application subtracts the ending time of the first appointment from the starting time of the second appointment to determine the amount of unscheduled time (420).
After identifying the amount of unscheduled time, the calendar application determines whether the amount of unscheduled time equals or exceeds the travel time (245). If so (250, yes), the calendar application reserves, within the calendar application, a time block to account for the travel time (255).
Upon determining that the amount of unscheduled time exceeds the travel time, in one implementation, the calendar application determines whether the amount of unscheduled time exceeds the travel time by more than a threshold amount. And, if it is determined that the amount of unscheduled time exceeds the travel time by more than the threshold amount, the calendar application provides a message that informs a user of the unscheduled time period. Along these lines, the calendar application also may provide the user with suggestions as to how the user should fill in the identified gap between the user's first and second appointments. This may help the user to more efficiently manage the unscheduled times within the user's daily calendar.
FIG. 5 illustrates an exemplary UI 500 used to inform the user of the unscheduled time in the user's calendar. The user interface 500 alerts the user that “even after taking into account the travel time from the first appointment to the second appointment, there remains an unscheduled time period in [the user's] calendar between the first and second appointments.” And, the UI 500 prompts the user to request more information, such as, for example, whether the user wishes to spend more time at the preceding or subsequent appointment, to stop at another place (e.g., a gas station), to start traveling toward the next appointment, or to do “other” activities, such as to go to a coffee shop and/or a grocery store.
In particular, the UI 500 includes an option that allows a user to search for a particular type or point of interest (e.g., a coffee shop) near a user-identified destination. For example, by selecting (e.g., “clicking on”) the “destination” link, the UI 500 generates another UT (not shown) that allows the user to specify a geographic location for the coffee shop. In one implementation, the geographic location for the coffee shop includes a specific address. In another implementation, the geographic location includes a parameter/proximity within which the point of interest should be located. For example, the user may draw a geographical designation proximate to or around the travel route, thereby indicating an interest in the point of interest located within the parameter. As such, these options allow the user to perform a more limited geographical search for a particular point of interest.
In another slightly different implementation, after the user identifies the point of interest, the calendar application automatically searches and identifies a geographic location for the point of interest within the vicinity of the travel route extending from the geographic location of the first appointment to the geographic location of the second appointment. Along these lines, the calendar application may provide the user with a UI (not shown) that displays a travel route extending from the geographic location of the first appointment to the geographic location of the second appointment, identifies the geographic locations associated with the point of interest along the route, and requests, from the user, to select, from among the identified geographic locations, a location for the point of interest.
Referring again to FIG. 2, if it is determined that the travel time exceeds the amount of unscheduled time (250, no), the calendar application alerts the user of the conflict and provides the user with one or more suggestions to resolve the conflict. In one example, the calendar application presents to the user a UI, providing one or more suggestions to make able the user to respond to the alert message. The process associated with generating an alert message is more fully described below with respect to FIG. 9A and the UI providing the user with one or more suggestions is more fully described below with respect to FIG. 9B.
In one implementation, the calendar application is configured to allow the user to set a travel time reminder, reminding the user to leave the user's current location at a specified time that precedes the starting time of the appointment by at least the travel time to the appointment. In keeping with the previous example described with respect to FIGS. 1A and 1B, the calendar application is configured to allow the user to set a travel time reminder, reminding the user to leave at a specified time that precedes the starting time (e.g., 1:00 pm) of the second appointment 120 by at least the travel time (e.g., 60 minutes) to the second appointment 120.
FIG. 6 illustrates an exemplary UI 600 that makes able the user to set such reminders within a calendar application. The UI 600 includes a reminder selection portion 610. The reminder selection portion 610 includes one or more options selection of which instruct the calendar application to remind the user at a “specified time” in advance of the allocated travel time block to arrive at a geographic location of the second appointment on time. In one example, the user's selection of the reminder selection portion 610 launches another UI (not shown), allowing the user to set the “specified time.” For example, the user may request to be reminded about an appointment 10 minutes before the time the user should leave the user's present location to arrive at the appointment location on time. The reminder selection portion 610 also allows the user to specify the manner in which the reminder should be sent to the user. As shown in FIG. 6, the user may choose to receive the reminder via, for example, via an audio call placed to a telephone, an email, an instant message, and/or “other” options, such as short message service (“SMS”).
The calendar application may be configured to allow the user to set alert messages, alerting the user about different events. In one specific example, the user may wish to set an alert message, alerting the user if the travel time associated with the calculated route between the first appointment and the second appointment changes due to a change in the current road conditions. In another example, the user may wish to set an alert message, alerting the user about conflicting appointments. In keeping with the previous example, the timing of the first and second appointments that previously did not conflict with each other even after taking into account travel time from the first appointment to the second appointment, may now present a conflict due to the new calculated travel time and the alert message informs the user of the same. In yet another example, the user may set an alert message, alerting the user of an unscheduled within the user's calendar application. In yet another example, the user may set an alert message, providing the user with updated directions and an updated travel time if the user deviates from the previously calculated route.
FIG. 7 illustrates an exemplary UI 700 used to allow the user to set an alert message, alerting the user of certain pre-defined conditions/events. The UI 700 includes an alert selection portion 710. As shown, the alert selection portion 710 includes four user-selectable alert options. The first alert option, described below in more detail with respect to FIGS. 8A and 8B, alerts the user if current road conditions change and may suggest an alternate route to the user that avoids problematic routes associated with the change in the road conditions. The second alert option, described below in more detail with respect to FIGS. 9A-9C, alerts the user about conflicting appointments (e.g., absence of sufficient travel time between the appointments) and may suggest possible options to help the user avoid the conflicting appointments.
The third alert option, described above in more detail with respect to FIG. 5, alerts the user about a time period that is unscheduled between the user's appointments and may suggest an alternate schedule to help the user to more efficiently use the unscheduled time slot. The fourth alert option, described below with respect to FIGS. 10A and 10B, alerts the user if the user deviates from the previously calculated route and provides the user with new directions based on the user's present location. More particularly, the user's selection of the fourth alert option instructs the calendar application to update the calculated route based on real time information, such that a user deviating from the original route may receive an updated route (an updated effect on a calendar of appointments) to the user's next appointment location.
FIG. 8A illustrates an exemplary process 800A that a calendar application uses to alert a user about a change in current road conditions. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 800A. In particular, the process 800A involves the first appointment 115, the second appointment 120, the control icon 125, and the travel time block 130. Although the process 800A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 800A may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 800A may be performed by an application that acts as an interface between the navigation and calendar applications.
Moving forward with the calendar application performing the actions of the process 800A, the calendar application may use the process 800A, for example, in response to the user's selection of the first alert option in the alert selection portion 710 illustrated by FIG. 7. Alternatively or additionally, the calendar application may use the process 800A in response to the user's selection of the control icon 125. In either case, the process 800A includes the calendar application monitoring the road conditions between the user's appointment locations (805). For example, the calendar application monitors the road conditions associated with the previously calculated travel route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120. To do so, in one implementation, the calendar application regularly contacts a server that includes traffic data to obtain current road conditions between the user's appointments. To minimize the burden on the server initially, the calendar application may contact the server less frequently and, as it gets closer to the time the user has to leave the geographic location of the first appointment 115 to arrive on time at the geographic location of the second appointment 120, the calendar application contacts the server more often to obtain more up to date information.
Regardless, the calendar application determines that there is a change in the road conditions (810). The change in the road conditions may include events such as traffic, accidents, rush hours, construction, road blocks, and/or adverse weather conditions resulting in a slower recommended speed limit. The calendar application identifies the updated travel time associated with the travel route under the current road conditions (815). The calendar application then compares the updated travel time under the changed road conditions with the travel time under normal conditions to determine if they differ by more than a threshold amount (820). For example, the calendar application compares the updated travel time with the travel time specified in the travel time block 130. If they do not differ by more than the threshold amount (820, no), the calendar application alerts the user about the current road conditions and the updated travel time under such conditions (825). In one example, the calendar application updates the travel time block 130, within the calendar application interface 110, to account for the updated travel time. If the change in travel time is more than the threshold amount (820, yes), the calendar application identifies one or more alternative routes that are less or unaffected by the adverse road conditions and the travel time associated therewith (830). In another implementation, the calendar application informs the user of the adverse condition and solicits from the user as to whether the user wishes to identify an alternative route. Upon receiving an indication from the user that the user wishes to identify an alternative route, the calendar application identifies one or more alternative routes or determines that an alternative route that is less or unaffected by the adverse road conditions does not exist.
To identify an alternative route, the calendar application attempts to find a route that avoids the adverse events (e.g., accidents) resulting in the change in the road conditions for the previously calculated route. The calendar application checks to determine whether the travel time associated with any of the alternative routes is less than the travel time associated with the route with the adverse conditions (835). If not (835, no), the calendar application alerts the user about the current road conditions and informs the user that their current route remains the most efficient travel route (825).
If the travel time associated with any of the alternative routes is less than the travel time associated with the original route facing the adverse road condition (835, yes), the calendar application identifies at least one alternative route with a travel time that is lowest (e.g., a route with the least travel time). The calendar application may identify the at least one alternative route with a travel time that is lowest by comparing the travel times of the identified alternative routes and selecting from among the identified alternative routes, the alternative route with the lowest travel time. The calendar application may select more than one alternative route when two routes have the same travel time that is also the lowest travel time or when the calendar application is configured to present options to the user by selecting multiple routes (e.g., the two alternative routes, from among the identified alternative routes, with the two lowest travel times). In response to identifying the at least one alternative route with a travel time that is lowest, the calendar application alerts the user of the change in the current road conditions and displays to the user the one or more identified alternative routes, informing the user that the alternative routes will result in an increase in travel time compared to the initial travel schedule, but also informing the user that they will decrease travel time compared to travel time on the current route under the current road conditions (860).
To alert the user, the calendar application may display to the user a UI informing the user of the time, present location, and the adverse condition, and suggesting that the user takes a different route to the user's next appointment location. Alternatively or additionally, the calendar application may store the directions associated with the new route in the travel time block 130 for later access by the user and may update the travel time associated with the new route.
FIG. 8B illustrates an exemplary UI 800B the calendar application uses to alert a user about a change in current road conditions. The UI 800B informs the user of the present time (e.g., 11:00 am), the user's present location (e.g., the first appointment location), and the user's next destination (e.g., the second appointment location). As shown in FIG. 8B, the UI 800B also informs the user that if the user were able to travel under normal conditions, the user could expect to arrive at the second appointment location in 60 minutes. However, problematic conditions adversely affect the ability of the user to achieve that estimated travel time. In particular, the alert message indicates that “there is heavy traffic due to an accident on the I-60” and now it will take the user 3 hours to arrive at the second appointment location.
In one implementation, to estimate the new travel time, the calendar application compares the travel time of the original route under the current road conditions with the travel time of an alternative route and suggests to the user the route with the minimum travel time. For example and as shown in FIG. 8B, the calendar application determines the alternative route has the minimum travel time (e.g., 2 hours) and suggests taking the alternative route. The calendar application also communicates to the user to leave immediately if the user wishes to arrive at the second appointment location on time. The UI 800B also makes able the user to view the alternative route via, for example, selecting the “view” icon. Alternatively or additionally, the user can view the alternative route via, for example, selecting the travel time block 130. It is to be understood that other alternative may be presented to the user. For example, the user may be presented with an option to postpone and/or cancel the second appointment and inform the participants of the second appointment of the same.
FIG. 9A illustrates an exemplary process 900A used for generating an alert message informing the user of conflicting appointments. The actions performed by the process 900A are similar to some of the actions performed by the process 200 illustrated by FIG. 2. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 900A. In particular, the process 900A involves the first appointment 115, the second appointment 120, the control icon 125, and the travel time block 130. Although the process 900A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 900A may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 900A may be performed by an application that acts as an interface between the navigation and calendar applications.
The process 900A may be used, for example, in response to the user's selection of the control icon 125. Alternatively or additionally, the process 900A may be used, for example, in response to the user's selection of the second alert option in the alert selection portion 710 illustrated by FIG. 7. In either case, the process 900A includes the calendar application determining the amount of unscheduled time between the first appointment 115 and the second appointment 120 (910A). The action (910A) is similar to action (240). To this end and as more fully described above with respect to process 400 illustrated by FIG. 4, the calendar application identifies that the amount of unscheduled time is about 2 hours. The calendar application then identifies the travel time for the route extending from the geographic location of the first appointment 115 to the geographic location of the second appointment 120 (915A). The action (915A) is similar to action (235). For example, the calendar application identifies that the travel time is 2 hours and 30 minutes.
The calendar application then compares the travel time with the amount of unscheduled time (920A) and based on the comparison, determines if the travel time exceeds the amount of unscheduled time (925A). The actions (920A) and (925A) illustrate action (245) in more detail. In keeping with the above-described example, the calendar application identifies that the travel time exceeds the amount of unscheduled time by 30 minutes. Accordingly, the calendar application alerts the user of the conflict and provides the user with suggestions to avoid the conflict (930A). The action (930A) is similar to action (255). For example, the suggestions include ending the first appointment 115 sooner than the scheduled ending time and/or canceling or rescheduling the first or the second appointment 115, 120. The alert and the suggestions may be presented to the user via a UI.
FIG. 9B illustrates an exemplary UI 900B used to alert a user about conflicting appointments. The UI 900B may be presented to the user automatically as a part of a regular morning update schedule, alerting the user if there are conflicting appointments in the user's calendar. Alternatively or additionally, the UI 900B may be presented to the user at the time the user selects (e.g., clicks on) the control icon 125. The UI 900B notes that the first appointment at 10:00 am is supposed to last for 60 minutes and the second appointment is at 12:00 pm. The UI 900B also notes that “it takes 120 minutes to arrive at the second appointment location from the first appointment location plus an approximate 10 minutes to get from the car to the meeting.”
The UI 900B displays to the user several options to address this conflict. The first option allows the user to spend less time at the first appointment. The second option allows the user to cancel or reschedule the “second appointment”. The third option informs the calendar application of the user's preference to arrive late to the second appointment. Other attendees then may be notified that the user will be arriving late. The UI 900B may be interactive, such that the user is allowed to cancel or reschedule another appointment instead of the second appointment. For example, the user's selection of the “second appointment,” launches another UI (not shown), allowing the user to select an appointment to be canceled or rescheduled.
Upon identifying that the user wishes to reschedule the second appointment 120, the calendar application may identify the participants of the second appointment 120 and their time availability to reschedule the second appointment 120 at a mutually convenient time for the participants of the second appointment 120. FIG. 9C illustrates an exemplary process 900C used for rescheduling the appointment 120 at a mutually convenient time for the people attending the appointment 120.
Process 900C includes the calendar application identifying participants of the second appointment 120 (910C). In one example, the calendar application searches participant field to identify the participants of the second appointment 120. After identifying the participants, the calendar application identifies time availability of each of them (915C). To do so, in one implementation, the calendar application remotely accesses, over a wireless network, a calendar application of each of the participants to identify their time availability. In another implementation, the calendar application sends an e-mail to each of the participants and requests from each of them to identify his/her time availability. In either case, based on the time availability of the participants, the calendar application reschedules the second appointment 120 at the mutually convenient time for the participants of the second appointment 120 (920C) and informs the participants of the same.
FIG. 10A illustrates an exemplary process 1000A used to alert a user that the user has deviated from an original route. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1000A. In particular, the process 1000A involves the first appointment 115, the second appointment 120, the control icon 125, and the travel time block 130. Although the process 1000A is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1000A may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1000A may be performed by an application that acts as an interface between the navigation and calendar applications.
The process 1000A may be used, for example, in response to the user's selection of the fourth alert option in the alert selection portion 710 illustrated by FIG. 7. Alternatively or additionally, the process 1000A may be used, for example, in response to the user's selection of the control icon 125. In either case, the process 1000A includes the calendar application, including a navigation component, identifying the present location of the client device. In one implementation, the calendar application automatically determines the present location of the user using location providing technology implemented in the user's client device. If the client device is equipped with multiple location providing technologies, the calendar application may use the technology that provides the most accurate information about the present location.
In one example, the client device includes a mobile device that is GPS-enabled, and the calendar application automatically determines the present location of the user based on the GPS position of the client device. In another example, the present location of the user is automatically determined by registering the client device with a host (e.g., a Session Initiation Protocol (“SIP”)) server. The client device may provide information to the host that is used to derive location information. For example, the host may derive location information based on how the client device is accessing the network (e.g., as identified by source IP address or another packet identifier).
In yet another alternative, the present location of the user is automatically determined from the user's profile. For example, the user has associated profile or contact information indicating a predetermined home and/or office location. In one specific example, the user of a client office computer has previously stored the location of the user's office in the user's profile. Thus, the navigation application uses the user's profile to determine the office location.
Upon determining the current location, the calendar application references the originally calculated route (1010) and checks to determine whether the current location of the user differs more than a threshold amount from the originally-calculated route (1015). If not (1015, no), the calendar application checks to determine whether the current location is on the route (1020) and if so (1020, yes), the calendar application continues to monitor the current location of the user to account for the possible departure of the user from the route. If, however, the current location of the user is not on the route (1020, no), the calendar application shows the user how to return to the originally-calculated route (1025). FIG. 10C illustrates a UI 10000 that may be used to help the user to return to the originally-calculated route. After showing the user how to return to the originally-calculated route, the calendar application waits a period of time (e.g., a predetermined and configurable period of time, a time determined based on the distance from the originally-calculated route, etc.) or until the user has returned to the originally-calculated route, and continues to monitor the current location of the user to account for departure of the user from the originally-calculated route (1028).
If the current location of the user does differ more than a threshold amount from the originally-calculated route (1015, yes), the calendar application alerts the user (1030). In one example, the threshold is 1 mile from the originally calculated route. If the current location of the client device differs more than the threshold amount from the originally calculated route, the calendar application alerts the user (1030) and provides the user with directions to the user's next appointment location from the current location of the client device (1035). Although FIG. 10A illustrates that actions (1030 and 1035) are performed serially, it is possible that actions (1030 and 1035) can be performed simultaneously.
The calendar application may use a UI, such as the one shown in FIG. 10B, to alert the user and provide the user with updated directions. As described further below with respect to FIG. 10B, the alert message also informs the user of the time and location of the user's next appointment and the travel time to the next appointment location based on the user's present location.
FIG. 10B illustrates an exemplary UI 1000B used to alert a user that the user has deviated from an original route. In particular, the alert message notes to the user that “it is currently 11:00 am, and it seems you have deviated from the original route. You are presently located at 1100 F St., NW, Washington D.C. 20005.”
The alert message also informs the user of the time and location of the user's next appointment (e.g., the second appointment 120) and the travel time (e.g., 30 minutes) to the next appointment location based on the present location of the user. The alert message also allows the user to view directions from the present location to the next appointment. In one implementation, the calendar application determines whether the user arrives on time at the user's next appointment based on the new travel time and informs the user in either case. If the user is going to be late to the appointment based on the new travel time, the calendar application may present the user with one or more suggestions to avoid such conflict. For example, the calendar application may present the user with options similar to those described with respect to FIG. 9B.
FIG. 10C illustrates an exemplary UI 1000C used to alert the user that the user has deviated from the originally-calculated route by less than a threshold amount and helps the user to get back on the originally-calculated route. In particular, the alert message notes to the user that “it is currently 11:00 am, and it seems you have deviated from the originally calculated route by less than a threshold amount.” In keeping with the example described with respect to FIG. 10A, the user who is presented with the UI 1000C may have deviated from the route by less than a threshold amount (e.g., 1 mile). Regardless, the alert message 1000C allows the user to view directions in order to get back on the originally-calculated route.
Other implementations are also contemplated. For example, instead of or in addition to allowing the user to a reserve, within a calendar application, a time block for the travel time between multiple appointments after the multiple appointments have already been scheduled, as described with respect to FIG. 2, the user is allowed to reserve, within the calendar application, a time block for such travel time during scheduling of an appointment. As such, in this implementation, the user immediately realizes the conflict (e.g., absence of sufficient travel time between appointments) at the time of scheduling an appointment, and the user is allowed to schedule the appointment at another time to avoid such conflict. This minimizes the hassle of later recognizing such conflict and having to reschedule the already scheduled appointment at that time.
FIG. 11 illustrates an exemplary process 1100 used to make able a user to determine presence or absence of a conflict (e.g., absence of sufficient travel time) between an already scheduled first appointment and a second and new appointment that the user wishes to schedule at a particular time. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1100. In particular, the process 1100 involves the calendar application interface 110, the first appointment 115, the second appointment 120, the control icon 125, and the travel time block 130.
Although the process 1100 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1100 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1100 may be performed by an application that acts as an interface between the navigation and calendar applications.
The process 1100 includes many of the actions described with respect to the process 200. As such, for the sake brevity, only the actions that are different is described here in more detail. These actions include actions (1110, 1150, 1155, and 1160). To illustrate, the process 1100 includes the calendar application receiving, from a user, a request to schedule, within a calendar application, a new (second) appointment 120 at a particular time (1110). To formulate such a request, in one implementation, the user clicks on the time windows appearing on the calendar application interface 1110. This results in generation of a similar to the one shown and described below with respect to FIG. 12C, soliciting, from the user, to specify the time, date, subject, and location of the second appointment 120. After identifying this information, the user may save the second appointment 120 within the calendar application by selecting the “save and close” icon.
Before saving the second appointment 120 into the calendar application, however, the calendar application may first determine whether the proposed second appointment present a conflict (e.g., absence of sufficient travel time) with an already scheduled first appointment 115. If not (1145, yes), the calendar application schedules the second appointment 120 at the proposed particular time (1150). Additionally, the calendar application also reserves a travel time block within the calendar application to account for the travel time (1155). In one implementation, the calendar application places the travel time block immediately before the starting time of the second appointment. In another implementation, the calendar application places the travel time block immediately after the ending time of the first appointment. In yet another implementation, the calendar application presents to a user a UI (not shown), allowing the user to select where the time block should be located between the first and second appointments. In either case, the user may have the option of removing and/or adjusting the travel time block placed between the first and second appointments.
However, if it is determined that the amount of travel time exceeds the amount of unscheduled time (1145, no), the calendar application alerts the user of the conflict and provides the user with suggestions before or at the time of saving the second appointment 120 into the calendar application at the particular time (1160). In one example, the calendar application presents to the user a UI, providing the user with one or more suggestions in, resolving the conflict, as described above in more detail with respect to FIGS. 9A-9C. In response, the user may simply select to schedule the second appointment at another time that does not present such a conflict.
FIGS. 12A-121) illustrate, within the UIs 1200A-1200D, an exemplary sequence of interactions between a calendar application and a user wishing to schedule an appointment using the process 1100 described with respect to FIG. 11. FIG. 12A illustrates an exemplary UI 1200A enabling a user to perceive, within the calendar application, an already scheduled appointment and to schedule a new appointment in the absence of a conflict (e.g., absence of sufficient travel time) between the already scheduled appointment and the new appointment.
The UI 1200A includes a calendar application interface 1210. The calendar application interface 1210 includes, within a particular day (e.g., Monday, Apr. 23, 2002), an already scheduled first appointment 1215. As shown, the first appointment 1215 is with “patent attorney Karl Renner at 1425 K Street, NW, Washington D.C. 20005.” Thereafter, the calendar application receives, from the user, a request to schedule a second and anew appointment 1220, which appears to be with “a patent examiner Joe Smith at U.S. Patent and Trademark Office.” As shown, in one implementation, the request is in the form of drag and drop operation.
In particular, the user drags, from another application and into the calendar application interface 1210, the information about the second appointment 1220 and drops, within the calendar application interface 1210, the information about the second appointment 1220. In one particular example, the user drops this information within a particular time window (e.g., between 1:00 pm to 2:00 pm window). In another implementation described generally with respect to FIG. 12C, instead of using the drag and drop operation, the user simply selects (e.g., clicks on), for example, “new appointment” icon within the calendar application interface 1210 to schedule the second appointment 1220 and provides the calendar application with the information regarding the second appointment 1220.
In either case, after receiving the information about the second appointment 1220 and before or at the time of accepting/scheduling the second appointment 1220, the calendar application uses the exemplary process 1100 to determine whether the proposed timing of the second appointment 1220 presents a conflict (e.g., absence of sufficient travel time) with the already scheduled first appointment 1215. If not, the calendar application schedules the second appointment 1220 within the calendar application interface 1210 and also reserves, within the calendar application interface 1210, a travel time block associated with the travel time of the route extending between the first appointment 1215 and the second appointment 1220, as shown by FIG. 12B.
FIG. 12B illustrates an exemplary UI 1200B with the second appointment 1220 and the travel time block 1230 both scheduled within the calendar application interface 1210. The travel time block 1230 reserves, within the calendar application interface 1210, the identified time window for traveling. As noted above, in addition to reserving a time block to account for the travel time, the travel time block 130 provides the user with directions from the geographic location of the first appointment 1215 to the geographic location of the second appointment 1220.
FIG. 12C illustrates an exemplary UI 1200C used to allow the user to schedule a third appointment within the calendar application interface 1210 using the process 1100. In one implementation, the UI 1200C is presented to the user in response to the user selecting (e.g., clicking on) a “new appointment” icon within the calendar application interface 1210. In another implementation, the UI 1200C is presented to the user in response the user selecting (e.g., clicking on) one of the time windows (e.g., 11:00 am to 11:30 am window) appearing within the calendar application interface 1210. In either case, the UI 1200C includes various fields for gathering information about the third appointment. The various fields include a subject field 1235, a location field 1240, a starting time field 1245, an ending time field 1250, and a reminder field 1255.
The subject field 1235 allows the user to identify the subject associated with the third appointment. For example, as shown, the subject associated with the third appointment includes “appointment with Dr. Jones.” The location field 1240 allows the user to identifying the geographic location of the third appointment. For example, as shown, the geographic location of the new appointment is at “11208 Camp Rd. Bethesda, Md., 20854.” The starting time and ending time fields 1245, 1250, identify the starting date/time and ending date/time associated with the third appointment, respectively. For example, as shown, the starting date/time of the third appointment is on Thursday, Apr. 23, 2002 at 11:00 am and the ending date/time of the third appointment is on Thursday Apr. 23, 2003 at 11:30 am. The reminder field 1255 allows the user to set a reminder for the appointment. For example, as shown, the user has specified a reminder 15 minutes in advance of the appointment time.
To schedule the appointment, the user may click on “save and close” icon 1260. This causes the appointment information to be saved within the calendar application, and the appointment information to be presented on the calendar application interface 1210 between the first and second appointments 1215 and 1220, as shown in FIG. 12D. However, before or at the time of scheduling the third appointment 1265, the calendar application again uses the process 1100 to determine whether the timing of the third appointment 1265 present a conflict (e.g., absence of sufficient travel time) with the already scheduled first and second appointments 1215, 1220.
To this end, the calendar application automatically identifies a first route extending from the geographic location of the first appointment 1215 to the geographic location of the third appointment 1265 and identifies a first travel time associated with the first route. Similarly, the calendar application automatically identifies a second route extending from the geographic location of the third appointment 1265 to the geographic location of the second appointment 1220 and identifies a second travel time associated with the second route. The calendar application then compares the first travel time with the time gap between the first and third appointments 1215, 1265 and similarly compares the second travel time with the time gap between the third and second appointments 1265, 1220.
If the first travel time exceeds the time gap between the first and third appointments 1215, 1265 or the second travel time exceeds the time gap between the third and the second appointments 1265, 1220, the calendar application alerts the user before or at the time of accepting the third appointment 1265 at the requested time. As such, the user immediately realizes the conflict and is permitted to schedule the third appointment 1265 at another time to avoid the conflict. For example, and as shown, the calendar application generates a pop-up window 1270 informing the user of the conflict.
Alternatively, if the first travel time does not exceed the time gap between the first and third appointments 1215, 1265 and the second travel time also does not exceed the time gap between the third and second appointments 1265, 1220, the calendar application schedules the third appointment 1265 at the requested time.
Although FIG. 9B illustrates some of the suggestions that may be offered to the user to avoid the conflict between two appointments, other suggestions also are possible. For example, upon determining that two appointments are conflicting (e.g., there is an absence of sufficient travel time from the first appointment location to the second appointment location), the calendar application may offer to the user to default to a telephone or video conference to avoid the conflict. In keeping with the example described about with respect to FIG. 9B, upon realizing that the amount of unscheduled time between the first appointment and the second appointment is less than the travel time between the two, the calendar application may offer to the user to conduct either the first appointment or the second appointment via telephone.
Along these lines, at a time of scheduling an appointment, the user may be presented with an option to specify whether an appointment is to be conducted via a teleconference or a video conference. If so, the calendar application does not take into account that appointment for purposes of reserving a time block to account for the travel time. To illustrate, assume that the user has three appointments within the user's calendar on a particular day. The first appointment is to be conducted live at 10:00 am, the second appointment is to be conducted via a telephone conference at 11:00 am, and the third appointment is to be conducted live at 12:00 pm. The calendar application realizes that the second appointment is a teleconference or a video conference appointment, and, as such, the calendar application does not reserve a time block for travel time between the first appointment and the second appointment and similarly between the second appointment and the third appointment.
Instead, the calendar application reserves a time block to account for travel time from the first appointment to the third appointment. That is the calendar application intentionally disregards the second appointment for purposes of reserving a time block to account for the travel tame. In one implementation, the user is informed that the travel time between the first and third appointment impinges on the scheduled second appointment that takes place via a teleconference, for example. And, the user is presented with an option to schedule the travel before, during, or after the intervening teleconference appointment.
In a slightly different implementation, instead of the user explicitly specifying that the appointment is a teleconference one, the calendar application infers such conclusion from the information associated with the appointment. In one example, if there is a dial-in number and/or a pin number associated with the appointment and thus, is location independent, the calendar application concludes that the appointment is to be conducted via a telephone, and, as such, does not take into account the appointment for purposes of identifying a travel time. In one implementation, the calendar application confirms with the user as to whether the appointment is indeed to be conducted via a telephone to reduce errors.
Similar to the notion of recognizing and accounting for telephone and/or video conference appointments, the calendar application also may recognize certain keywords (e.g., airports, flights) or locations (e.g., airports) associated with a calendar event, and may have a particular setting to set aside time in addition to the travel time to account for certain routine activities (e.g., going through security). Similarly, the calendar application may set aside time to account for other factors, such as, for example, time needed to get from the car to a meeting. In keeping with the example described above with respect to FIG. 9B, the calendar application notifies the user that the travel time between two appointments is 130 minutes (120 minutes of travel time plus an additional 10 minutes to get from the car to the meeting). As such, the calendar application reserves a time block for 130 to account for the time needed for the user to get from the car to the meeting.
In another implementation, the calendar application cancels or modifies the already scheduled travel time block upon determining that the user wishes to cancel an appointment used for the estimation of the travel time block. FIG. 12E illustrates an exemplary process 1200E used by the calendar application to cancel and/or modify the travel time block upon receiving an indication from the user to cancel an appointment that is used to estimate the travel time block.
The process 1200E includes receiving a notification of an appointment cancellation (1210E). In keeping with the example described with respect to FIG. 12D, the calendar application may receive a notification that the first appointment 1215 with the patent attorney Karl Renner should be canceled. Upon receiving such an indication, the calendar application identifies the travel time block that is based on the canceled appointment (1215E). Toward this end, the calendar application identifies the travel time block 1230 that is reserved for the travel lime between the first appointment 1215 and the second appointment 1220. And, the calendar application either cancels or modifies the travel time block (1220E).
In one example, if the only remaining appointment is the second appointment 1220, the calendar application cancels the travel time block 1230. However, and as shown in FIG. 12D, if there is a third appointment 1265, the calendar application modifies the travel time block such that it is based on the third appointment 1265. Although, the third appointment 1265 is shown in FIG. 12D to take place after the first appointment 1215, it is to be understood that the third appointment 1265 can take place before the first appointment 1215. In either case, the calendar application identifies the new travel time block and informs the user of the same (1225E).
Other implementations are contemplated. For example, in another general aspect and as described in more detail below with respect to FIG. 13, the concepts described herein also relate to a system that dynamically updates appointment information within a calendar application based on the current location of the user scheduled to participant in an appointment. The system identifies the current location of the user, and based on the current location of the user the system approximates the arrival of the user to the geographic location of the user's next appointment. To do so, the system may take into account the user's modality of travel. The modality of travel may include driving, walking, public transportation, and/or other means of traveling, such as, bicycling. Based on the estimated arrival time, the system may inform the user that the user is running late to the meeting. Similarly, the system may inform other participants of the appointment, thereby saving the remaining participants of waiting for the user.
By way of example, GPS or other location-based information about at least one of the participants in the appointment can be used to automatically (e.g., on the fly) update the appointment in the participant's electronic calendar application (e.g., Microsoft Exchange). To this end, if the participant is 20 minutes walk or drive away from and just underway to an appointment that is due to start now, the appointment can be rescheduled to start in 20 minutes, saving the remaining participants from waiting. In one implementation, to determine the travel time of the participant to the geographic location of the appointment real time traffic and travel data can be leveraged to account for the participant's travel time to a distant meeting. Similarly, this information can be used to alarm the participant as to when he/she needs to depart in order to arrive at the geographic location of the appointment on time.
In another general aspect and as described in more detail with respect to FIG. 18, the concepts described herein also relate to a system for identifying that a user's appointment has been delayed and dynamically rescheduling the user's subsequent appointments to account for the delay. To illustrate, assume that the doctor is running late to his or her first patient meeting and as such the first appointment that is due to start at 9:00 am and last until 9:15 am actually starts at 9:15 am. The system realizes this delay, identifies subsequent appointments within the doctor's calendar, and automatically reschedules the remaining appointments. For example, the system postpones each appointment by 15 minutes. As such the next appointment that was due to start at 9:15 am and end at 9:30 am will be postponed such that it will start at 9:30 am and end at 9:45 am. The system also may inform other participants of the appointment, thereby saving the remaining participants of waiting for the user. This scenario can be useful in, for example, allowing patients to delay their arrivals at doctor's offices if doctors are running late.
FIG. 13 illustrates an exemplary process 1300 used for alerting one or more users who are scheduled to participate in an appointment of possible delay of the at least one of the participants to the appointment. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced as performing the process 1300. In particular, the process 1300 involves the calendar application interface 110, the first appointment 115, and the second appointment 120.
Although the process 1300 is described below as being performed by the calendar application, it should be understood that it can be performed by a navigation application. Alternatively or additionally, some of the actions within the process 1300 may be performed by the calendar application and others may be performed by the navigation application. Alternatively or additionally, the process 1100 may be performed by an application that acts as an interface between the navigation and calendar applications.
The process 1300 may be activated either manually or automatically. The manual activation may be through a setting (e.g., an icon) appearing in the calendar application or a navigation application. The process 1300 includes the calendar application identifying an appointment within a calendar application (1305) and identifying a geographic location of the appointment and the time at which the appointment is due to start (1310). To identify the geographic location of the appointment, in one implementation, the calendar application references a location field associated with the appointment. Alternatively or additionally, the calendar application may reference other fields associated with the appointment and may search for keywords identifying an address. In one example, the calendar application searches for a zip code, city, and/or state name to identify an address. In this manner, the calendar application identifies that the geographic location of, for example, the first appointment 115 is at “1425 K Street, NW, Washington D.C. 20005.”
To identify the time associated with the appointment, in one implementation, the calendar application references a time field within the calendar application to identify the time during which the appointment is scheduled to take place. Alternatively or additionally, the calendar application may reference other fields associated with the appointment and may search for keywords identifying time of each appointment. In one example, the calendar application searches for key words, such as “starting time,” “ending time,” “from 10:00 am to 11:00 am,” and other possible texts indicative of the time of the appointment. In this manner, the calendar application identifies that the time associated with, for example, the first appointment 115 is from “10:00 am to 11:00 am.”
The process 1300 also includes the calendar application identifying participants of the appointment (1315). In one example, the calendar application searches participant field to identify the participants of the appointment. To this end, the calendar application identifies at least two participants (e.g., a first participant and a second participant). The first participant may be the owner of the calendar application referenced in FIGS. 1A and 1B, for example.
After identifying the participants of the appointment, the calendar application identifies, at a time before the appointment time, a geographic location of one of the identified participants (1320). For example, the calendar application identifies the geographic location of the first participant (e.g., the owner of the calendar application referenced in FIGS. 1A and 1B).
In some configurations, the calendar application automatically identifies a geographic location of one of the identified participants at a predetermined time before the appointment. For instance, the predetermined time may be immediately preceding the appointment time or may be, for example, fifteen minutes prior to the appointment. The predetermined time may be at a user-specified or a system-specified time in advance of the appointment time. In other configurations, the calendar application identifies a geographic location of one of the identified participants in response to a user requesting the calendar application to identify the geographic location. An administrator, an appointment participant, an organizer of the appointment, or another user related to the appointment may inspire the calendar application to identify the geographic location. For example, a first appointment participant may contact an assistant of a second appointment participant to determine whether the second appointment participant will be attending the appointment in person, by telephone, or whether a need exists to reschedule the appointment. In this example, the assistant of the second appointment participant may inspire the calendar application to identify the geographic location of the second appointment participant to obtain the information requested by the first appointment participant.
In one implementation, the calendar application automatically determines the present location of the first participant using location providing technology implemented in the client device of the first participant. If the client device is equipped with multiple location providing technologies, the calendar application may use the technology that provides the more accurate information about the present location. In one example, the client device includes a mobile device that is GPS-enabled, and the calendar application automatically determines the present location of the first participant based on the GPS position of the client device. In another example, the present location of the first participant is automatically determined by registering the client device with a host (e.g., a Session Initiation Protocol (“SIP”) server. The client device may provide information to the host that is used to derive location information. For example, the host may derive location information based on how the client device is accessing the network (e.g., as identified by source IP address or another packet identifier).
In yet another alternative, the present location of the first participant is automatically determined from a profile associated with the first participant. The profile and/or contact information may indicate a predetermined home and/or office location. In one specific example, the user of a client office computer has previously stored in his/her profile the location of the first participant's office. Thus, the calendar application uses the profile to determine the office location.
After identifying the geographic location of the first participant, the calendar application identifies a route extending from the geographic location of the first participant to the geographic location of the appointment (1325). To this end, in one example, the calendar application is equipped with navigation capabilities. Alternatively or additionally, the calendar application communicates with a navigation application that is logically separate from the calendar application to identify the route extending from the geographic location of the first participant to the geographic location of the appointment. As noted above, the U.S. patent application Ser. No. 11/618,069, filed on Dec. 29, 2006 and entitled “Communicating Appointment And/Or Mapping Information Among A Calendar Application And A Navigation Application,” describes in detail concepts that effect communications of appointment information from a calendar application to a navigation application for generating a travel route and a travel time associated therewith. Therefore, the manner in which communications between the calendar application and the navigation application takes place is not described here in more detail.
In either case, the calendar application also identifies the travel time associated with the route (1330). For instance, the calendar application may identify a travel time associated with the route by using its own navigation capabilities or by communicating with a navigation application that is logically separate from the calendar application. The calendar application may identify the travel time associated with the route by determining a distance of the route and determining an average travel time corresponding to traveling the determined distance.
The calendar application also may use historical data in identifying the travel time associated with the route. For example, if the participant has previously traveled along the route, the calendar application may use an actual time (or an average of actual times) with which the participant previously traveled the route. The calendar application also may use historical data related to users other than the participant. The calendar application may determine an average time that it took for all known users to travel the route.
In identifying the travel time, the calendar application may consider the time of day, the date, current travel conditions, or any other information that may impact travel time. For example, the calendar application may, when the travel is during rush hour, identify a travel time that is longer than a travel time when the travel is not during rush hour. The calendar application also may identify a travel time that is longer than typical when the calendar application determines that an event (e.g., a parade, a car accident, road work, etc.) is occurring along the route. The calendar application further may account for the modality of travel in identifying the travel time associated with the route.
FIG. 14 illustrates an exemplary process for identifying a travel time based on modality of travel. The calendar application identifies a modality of travel of the participant to the geographic location of the appointment (1410). To do so, in one implementation, the calendar application presents a UI to solicit, from the first participant, such information.
FIG. 15 illustrates an exemplary UI 1500 that is used to solicit, from the participant of the appointment, information regarding the modality of travel. The UI 1500 requests that the first participant specifies or confirms the modality of travel and to this end presents to the user several options. The several options include walking, driving, public transportation, and others. The “others” option may be selected if the first participant's choice of travel does not appear among one of the walking, driving, or public transportation. For example, the user choice of travel may be via a bicycle. To this end, the selection of the “others” option generates another UI allowing the first participant to specify the modality of travel (e.g., a bicycle).
Referring again to FIG. 14, based on the modality of travel, the calendar application identifies travel time associated with the route (1420). In identifying the travel time, the calendar application may take into account the speed of traveling. The speed of traveling may include an average speed based on the specified modality of travel or actual speed of travel. The calendar application may determine that actual speed of traveling by soliciting it from the user or automatically gleaning it from the client device.
To identify the travel time, the calendar application also may take into account traffic conditions. The traffic conditions may include current traffic flow or historic traffic flow. The current traffic flow may be determined by contacting a server that includes traffic data to obtain current road conditions between the user's appointments.
Referring again to FIG. 13, the calendar application also identifies the amount of time remaining until the appointment time at which the appointment is due to start (1340). The time remaining may be determined by identifying a present or current time and subtracting the present or current time from the starting time of the appointment. Unless the present or current time is after the appointment time, the amount of time remaining until the appointment time is a positive number and may be used to determine whether the first participant is likely to arrive at the appointment on time.
Based on the time remaining until the appointment, the calendar application determines whether the travel time exceeds the amount of time remaining until the appointment (1345). For example, the calendar application may compare the travel time to the amount of time remaining until the appointment and determine whether the travel time is greater than the amount of time remaining until the appointment based on the comparison. The calendar application may subtract the travel time from the amount of time remaining until the appointment. If the result is positive, the calendar application determines that the travel time does not exceed the amount of time remaining until the appointment. If the result is negative, the calendar application determines that the travel time does exceed the amount of time remaining until the appointment.
If it is determined that the travel time exceeds the remaining time, the calendar application sends a message (1350). For instance, the calendar application may alert the first participant by displaying an alert display to the first participant that informs the first participant of the same. The calendar application also may send a message to other participants of the appointment indicating that the first participant likely will be late for the appointment. The message may be a reschedule request from the first participant that does not specify the reason that the first participant needs to reschedule the meeting (e.g., that the first participant is running late). The calendar application may send a message to other users that are not participants of the appointment. For example, the calendar application may send a message to the first participant's assistant, a family member of the first participant, participants scheduled to have a subsequent appointment with the first participant after the appointment, etc. In this example, the message may indicate that the first participant may be running late.
FIG. 16 illustrates an exemplary alert interface 1600 used for alerting the first participant that he or she is not likely to arrive at the appointment location on time. In keeping with the previous example and for convenience, the calendar application described with respect to FIGS. 1A and 1B is referenced in describing the alert display 1600.
The alert interface 1600 informs the first participant that it is currently 11:30 am and the first participant is still at the first appointment location (e.g., at “1425 K St. NW, Washington D.C., 20005”) and the next appointment of the first participant takes place at noon and is located at United States Patent and Trademark Office. The alert interface 1600 then alerts the first participant that the travel time to the next appointment exceeds the timing remaining until the appointment time. Along these lines, the first participant may be presented with a list of suggestions helping the first participant to avoid such potential conflict.
FIG. 17 illustrates an exemplary alert interface 1700 showing options that are presented to the first participant to avoid the scheduling conflict. The options include (1) sending a message to a second participant informing him or her of the estimated arrival time of the first participant, (2) rescheduling the appointment, and/or (3) changing the modality of travel. Sending a message to the second participant includes informing the second participant of the geographic location of the first participant and estimated arrival time of the first participant. In this manner, the second participant knows that the first participant is running late and does not have to wait for the first participant at the meeting location and can, for example, delay his/her arrival to the meeting location accordingly. To this end, the second participant may even be directed to reschedule the appointment to account for estimated arrival time of the first participant.
In implementations in which the calendar application sends a message to the other participants, the message may be integrated with the address book or the calendar information to alert other users. For example, a calendar entry for the appointment on a calendar associated with another participant in the appointment may be updated to include the message that the first participant is running late. The message also may be sent to other participants of the appointment by accessing contact information for the other participants using the first participant's address book information and sending the message using the accessed contact information.
The alert interface 1700 also may include telephone numbers or other contact information for the other participants of the appointment. The first participant may view the telephone numbers or other contact information and contact the other participants to inform the other participants that the first participant will likely be late for the appointment.
The options also include rescheduling the appointment Rescheduling the appointment, for example, includes postponing the appointment time to a later time to thereby allow the first participant to timely arrive at the geographic location of the appointment. To reschedule the appointment, in one implementation, the calendar application accesses a calendar application of the second participant to identify the time availability of the second participant, and based on the time availability of the first and second participant the calendar application reschedules the appointment at a mutually convenient time for the first and second participants.
The options for avoiding the conflict also include changing the modality of travel. Selection of this option may result in generation of another UI instructing the first participant to change the current travel mode to a different one. For example, the first participant may be instructed to change the travel mode from public transportation to driving.
In a slightly different implementation, instead of the first participant having to select one of the options presented in the UI 1700, the calendar application automatically selects one of the options based on the user preferences. For example, upon determining that the first participant is running late to the appointment, the calendar application automatically sends a message to the other participants informing them that the first participant is running late along with the estimated arrival time. For another example, upon determining that the first participant is running late to the appointment, the calendar application automatically reschedules the appointment at a convenient time for the attending users. In yet another example, upon determining that the first participant is running late to the appointment, the calendar application automatically informs the first participant to change the modality of travel and/or travel faster using the current modality of travel to timely arrive at the appointment location.
In some implementations, if it is determined that the travel time does not exceed the amount of time remaining until the appointment, further processing may be performed. For example, the calendar application may subtract travel time from the amount of time remaining until the appointment to determine the amount of time by which the first participant should leave to arrive at the appointment on time. The calendar application may compare the amount of time by which the first participant should leave to arrive at the appointment on time to a threshold and, if the amount of time by which the first participant should leave to arrive at the appointment on time is less than the threshold, the calendar application may send a reminder to the first participant to remind the first participant to leave for the appointment. The reminder may include the amount of time by which the first participant should leave to arrive at the appointment on time.
In some implementations, techniques described above with respect to FIG. 13 may be repeated. For instance, the techniques described with respect to FIG. 13 may be periodically repeated as the first participant travels to the appointment. In this example, updated information regarding the first participant's current location and the current time may be used.
In another implementation and as noted above, the concepts described herein also relate to a process for identifying that a user's appointment has been delayed and also for dynamically rescheduling the user's subsequent appointments to account for such a delay. FIG. 18 provides an example of such a process.
FIG. 18 illustrates an exemplary process 1800 used for dynamically rescheduling subsequent appointments of the user (e.g., the first participant) based on the determination that one of the appointments of the user (e.g., the first participant) has been delayed. Some of the actions performed by the process 1800 are similar to the actions performed by the process 1300. As such and for purposes of brevity, these actions are not described here in more detail.
The process 1800 includes the calendar application identifying an appointment within a calendar application (1805) and identifying an appointment time at which the appointment is due to start and due to end (1810). The actions (1805 and 1810) are similar to those (1305 and 1310) described above with respect to the process 1300, and, as such, they are not described here in more detail.
The process 1800 also includes the calendar application identifying that the appointment has been delayed for a certain fixed amount of time (1815). For example, the calendar application identifies that the starting time of the appointment has been delayed due to one of the participants running late to the appointment. Alternatively or additionally, the calendar application may identify that the duration of the appointment has been extended beyond the scheduled ending time by a certain fixed amount of time. For instance, in one implementation, one of the participants of the appointment notifies the calendar application of such delay. In another implementation, the calendar application determines such delay based on the locations of the participants. For example, if the participant appears to still be at the location of the appointment instead of on the road traveling to the next appointment, the calendar application determines that the appointment has lasted longer than previously scheduled.
Along these lines, the calendar application identifies the amount of time the appointment has been delayed and also identifies the subsequent appointments within the calendar application (1820). Based on the amount of time the appointment has been delayed and the timing of the subsequent appointments, the calendar application determines that a need for rescheduling other appointments exists and confirms with the participant the desire to reschedule the other appointments (1825). The calendar application then automatically reschedules the subsequent appointments within the calendar application such that the starting time of each of the subsequent appointments is postponed to account for the delay associated with the current appointment (1830). The calendar application also may notify the participants of each of the subsequent appointments and inform them of such change, so that they can change their schedule according.
Other implementations are also contemplated.

Claims (20)

What is claimed is:
1. A method comprising:
identifying, by at least one processor, a geographic location and a start time associated with an appointment in an electronic calendar associated with a user;
determining a location of a mobile device associated with the user;
determining, based on the location of the mobile device associated with the user, that the user will be late for the appointment; and
based on the determination that the user will be late for the appointment, providing a communication associated with the determination that the user will be late for the appointment.
2. The method of claim 1, wherein providing the communication associated with the determination that the user will be late for the appointment comprises providing an alert to the user.
3. The method of claim 1, wherein providing the communication associated with the determination that the user will be late for the appointment comprises providing an alert to a second user associated with the appointment.
4. The method of claim 3, further comprising providing the location of the mobile device associated with the user to the second user.
5. The method of claim 1, wherein providing the communication associated with the determination that the user will be late for the appointment comprises displaying a user interface to the user, the user interface comprising one or more of:
an option to send a message to one or more participants associated with the appointment,
an option to reschedule the appointment, or
an option to change one or more aspects associated with travel to the geographic location associated with the appointment.
6. The method of claim 5, further comprising:
accessing contact information associated with the one or more participants associated with the appointment; and
sending a message to the one or more participants using the accessed contact information.
7. The method of claim 1, wherein determining that the user will be late for the appointment comprises:
identifying an amount of time remaining until the start time associated with the appointment;
identifying a travel time associated with a route from the location of the mobile device to the geographic location associated with the appointment; and
determining that the travel time exceeds the amount of time remaining until the start time associated with the appointment.
8. The method of claim 1, further comprising:
determining when the user will arrive at the geographic location associated with the appointment; and
rescheduling the appointment for a time after the user will arrive at the geographic location associated with the appointment.
9. The method of claim 8, wherein providing a communication associated with the determination that the user will be late for the appointment comprises providing updated appointment information to at least one participant of the appointment.
10. The method of claim 8, further comprising:
identifying one or more additional users associated with the appointment;
determining time availability of the one or more additional users; and
automatically rescheduling the appointment based on the time availability of the one or more additional users and a time availability of the user.
11. The method of claim 10, further comprising rescheduling, without user input, the appointment based on temporal proximity to geographic locations associated with adjacent appointments associated with the user and the one or more additional users.
12. The method of claim 1, further comprising:
in response to the determination that the user will be late for the appointment, identifying a need to reschedule at least one additional appointment in the electronic calendar associated with the user;
receiving confirmation from the user that the at least one additional appointment should be rescheduled; and
dynamically rescheduling the at least one additional appointment within the electronic calendar in response to the received confirmation.
13. A system comprising:
at least one processor; and
at least one non-transitory computer-readable medium storing instructions that, when executed by the at least one processor, cause the system to:
identify a geographic location and a start time associated with an appointment in an electronic calendar associated with a user;
determine a location of a mobile device associated with the user;
determine, based on the location of the mobile device associated with the user, that the user will be late for the appointment; and
based on the determination that the user will be late for the appointment, provide a communication associated with the determination that the user will be late for the appointment.
14. The system of claim 13, wherein the at least one non-transitory computer-readable medium further storing instructions that, when executed by the at least one processor, cause the system to:
provide the communication by providing an alert to a second user associated with the appointment, and
provide the location of the mobile device associated with the user to the second user.
15. The system of claim 13, wherein the system is implemented by at least one server that is remote from the mobile device associated with the user.
16. The system of claim 13, wherein the system is implemented by the mobile device associated with the user.
17. The system of claim 13, wherein the at least one non-transitory computer-readable medium further storing instructions that, when executed by the at least one processor, cause the system to:
determine that multiple participants associated with the appointment will be late for the appointment; and
reschedule, without user input, the appointment to accommodate the multiple participants that will be late for the appointment.
18. The system of claim 13, wherein the at least one non-transitory computer-readable medium further storing instructions that, when executed by the at least one processor, cause the system to:
provide the communication associated with the determination that the user will be late for the appointment by displaying a user interface to the user, the user interface comprising one or more of:
an option to send a message to one or more participants associated with the appointment,
an option to reschedule the appointment, or
an option to change one or more aspects associated with travel to the geographic location associated with the appointment;
access contact information associated with the one or more participants associated with the appointment; and
send the message to the one or more participants using the accessed contact information in response to selection of the option to send the message to one or more participants associated with the appointment.
19. The system of claim 13, wherein the at least one non-transitory computer-readable medium further storing instructions that, when executed by the at least one processor, cause the system to:
determine when the user will arrive at the geographic location associated with the appointment;
identify one or more additional users associated with the appointment;
determine time availability of the one or more additional users;
reschedule, without user input, the appointment based on the time availability of the one or more additional users and a time availability of the user; and
provide updated appointment information to the user and the one or more additional users.
20. A non-transitory computer-readable medium storing instructions that, when executed by at least one processor, cause a computer system to:
identify a geographic location and a start time associated with an appointment in a calendar associated with a user;
determine a location of a mobile device associated with the user;
determine, based on the location of the mobile device associated with the user, that the user will be late for the appointment; and
based on the determination that the user will be late for the appointment, provide a communication associated with the determination that the user will be late for the appointment.
US15/006,079 2006-12-29 2016-01-25 Meeting notification and modification service Active US9867014B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/006,079 US9867014B2 (en) 2006-12-29 2016-01-25 Meeting notification and modification service

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US11/618,069 US7941753B2 (en) 2006-03-31 2006-12-29 Communicating appointment and/or mapping information among a calendar application and a navigation application
US88885007P 2007-02-08 2007-02-08
US93814507P 2007-05-15 2007-05-15
US94580507P 2007-06-22 2007-06-22
US94727807P 2007-06-29 2007-06-29
US11/966,562 US7869941B2 (en) 2006-12-29 2007-12-28 Meeting notification and modification service
US12/962,357 US8073614B2 (en) 2006-12-29 2010-12-07 Meeting notification and modification service
US13/296,130 US8364400B2 (en) 2006-12-29 2011-11-14 Meeting notification and modification service
US13/620,520 US8560232B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US14/054,349 US9243911B2 (en) 2006-12-29 2013-10-15 Meeting notification and modification service
US15/006,079 US9867014B2 (en) 2006-12-29 2016-01-25 Meeting notification and modification service

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US14/054,349 Continuation US9243911B2 (en) 2006-12-29 2013-10-15 Meeting notification and modification service

Publications (2)

Publication Number Publication Date
US20160142882A1 US20160142882A1 (en) 2016-05-19
US9867014B2 true US9867014B2 (en) 2018-01-09

Family

ID=39595072

Family Applications (9)

Application Number Title Priority Date Filing Date
US11/966,562 Active 2028-02-21 US7869941B2 (en) 2006-12-29 2007-12-28 Meeting notification and modification service
US12/962,357 Active US8073614B2 (en) 2006-12-29 2010-12-07 Meeting notification and modification service
US13/296,130 Active US8364400B2 (en) 2006-12-29 2011-11-14 Meeting notification and modification service
US13/620,520 Active US8560232B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,529 Active US8489329B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,523 Active US8554476B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,525 Active US8554477B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US14/054,349 Active US9243911B2 (en) 2006-12-29 2013-10-15 Meeting notification and modification service
US15/006,079 Active US9867014B2 (en) 2006-12-29 2016-01-25 Meeting notification and modification service

Family Applications Before (8)

Application Number Title Priority Date Filing Date
US11/966,562 Active 2028-02-21 US7869941B2 (en) 2006-12-29 2007-12-28 Meeting notification and modification service
US12/962,357 Active US8073614B2 (en) 2006-12-29 2010-12-07 Meeting notification and modification service
US13/296,130 Active US8364400B2 (en) 2006-12-29 2011-11-14 Meeting notification and modification service
US13/620,520 Active US8560232B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,529 Active US8489329B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,523 Active US8554476B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US13/620,525 Active US8554477B2 (en) 2006-12-29 2012-09-14 Meeting notification and modification service
US14/054,349 Active US9243911B2 (en) 2006-12-29 2013-10-15 Meeting notification and modification service

Country Status (1)

Country Link
US (9) US7869941B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160364696A1 (en) * 2015-06-09 2016-12-15 International Business Machines Corporation Meeting scheduler for automated face-to-face meeting generation
US10445704B2 (en) * 2014-07-31 2019-10-15 Ent. Services Development Corporation Lp Object identification and sensing

Families Citing this family (290)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005013169A1 (en) * 2003-08-05 2005-02-10 Matsushita Electric Industrial Co., Ltd. Reservation changing system
US7383308B1 (en) 2004-02-11 2008-06-03 Aol Llc, A Delaware Limited Liability Company Buddy list-based sharing of electronic content
US7991636B1 (en) * 2004-02-11 2011-08-02 Aol Inc. Buddy list-based calendaring
US8683044B2 (en) 2005-03-16 2014-03-25 Vonage Network Llc Third party call control application program interface
WO2007008248A2 (en) * 2005-07-11 2007-01-18 Voicedemand, Inc. Voice control of a media player
US7506805B1 (en) * 2006-03-31 2009-03-24 Rearden Commerce, Inc. Method and system for unified presentation of event booking systems
US7743056B2 (en) * 2006-03-31 2010-06-22 Aol Inc. Identifying a result responsive to a current location of a client device
US7765119B2 (en) * 2006-10-16 2010-07-27 Rearden Commerce, Inc. System and method for predictive booking of reservations based on historical aggregation and events
US8712810B2 (en) * 2006-12-29 2014-04-29 Facebook, Inc. Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US7869941B2 (en) * 2006-12-29 2011-01-11 Aol Inc. Meeting notification and modification service
US8620712B1 (en) * 2007-01-26 2013-12-31 Intuit Inc. Method and system of intelligent matching for meetings
US7941133B2 (en) 2007-02-14 2011-05-10 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for schedule management based on locations of wireless devices
US20080201197A1 (en) * 2007-02-16 2008-08-21 Rearden Commerce, Inc. System and Method for Peer Person- And Situation-Based Recommendations
KR20090000609A (en) 2007-03-07 2009-01-08 팅크웨어(주) Method for managing schedule using user' location information and system thereof
TWI330325B (en) * 2007-03-14 2010-09-11 Mitac Int Corp Regional message reminder apparatus and method, intergration message reminder apparatus and method
US20080254811A1 (en) 2007-04-11 2008-10-16 Palm, Inc. System and method for monitoring locations of mobile devices
US9140552B2 (en) * 2008-07-02 2015-09-22 Qualcomm Incorporated User defined names for displaying monitored location
US9175964B2 (en) * 2007-06-28 2015-11-03 Apple Inc. Integrated calendar and map applications in a mobile device
US20090018887A1 (en) * 2007-07-13 2009-01-15 Judith Helen Bank Method of and System for Modifying Attendance Status for Electronic Calendar Events
US20090030769A1 (en) * 2007-07-27 2009-01-29 Rearden Commerce, Inc. System and Method for Latency Management Assistant
US20090030609A1 (en) * 2007-07-27 2009-01-29 Rearden Commerce, Inc. System and Method for Proactive Agenda Management
KR101387503B1 (en) * 2007-08-20 2014-04-21 엘지전자 주식회사 Terminal having function for managing information related to position and program recording medium
US8504120B2 (en) * 2007-08-31 2013-08-06 Palm, Inc. Techniques for controlling a radio processor in a mobile computing device
US20090070708A1 (en) * 2007-09-12 2009-03-12 Palm, Inc. Display of Information of Interest
US20090119062A1 (en) * 2007-11-01 2009-05-07 Timetracking Buddy Llc Time Tracking Methods and Systems
US8401776B2 (en) * 2007-11-29 2013-03-19 Saab Sensis Corporation Automatic determination of aircraft holding locations and holding durations from aircraft surveillance data
US8145415B2 (en) * 2007-11-29 2012-03-27 Saab Sensis Corporation Automatic determination of aircraft holding locations and holding durations from aircraft surveillance data
US8117225B1 (en) 2008-01-18 2012-02-14 Boadin Technology, LLC Drill-down system, method, and computer program product for focusing a search
US8117242B1 (en) 2008-01-18 2012-02-14 Boadin Technology, LLC System, method, and computer program product for performing a search in conjunction with use of an online application
US8949345B2 (en) * 2008-02-13 2015-02-03 International Business Machines Corporation Method, system and computer program for managing collaborative working sessions
US8423288B2 (en) * 2009-11-30 2013-04-16 Apple Inc. Dynamic alerts for calendar events
KR101054287B1 (en) * 2008-07-03 2011-08-08 삼성전자주식회사 Method for providing location information based service in mobile terminal and mobile terminal implementing same
KR101482120B1 (en) * 2008-08-01 2015-01-21 엘지전자 주식회사 Controlling a Mobile Terminal Capable of Schedule Managment
US20110137692A1 (en) * 2008-08-06 2011-06-09 Shaun Beheruz Sethna System and method for boarding passengers based on valuation data
US8108777B2 (en) 2008-08-11 2012-01-31 Microsoft Corporation Sections of a presentation having user-definable properties
US8131458B1 (en) 2008-08-22 2012-03-06 Boadin Technology, LLC System, method, and computer program product for instant messaging utilizing a vehicular assembly
US8078397B1 (en) 2008-08-22 2011-12-13 Boadin Technology, LLC System, method, and computer program product for social networking utilizing a vehicular assembly
US8073590B1 (en) 2008-08-22 2011-12-06 Boadin Technology, LLC System, method, and computer program product for utilizing a communication channel of a mobile device by a vehicular assembly
US8190692B1 (en) 2008-08-22 2012-05-29 Boadin Technology, LLC Location-based messaging system, method, and computer program product
US8265862B1 (en) 2008-08-22 2012-09-11 Boadin Technology, LLC System, method, and computer program product for communicating location-related information
US8000694B2 (en) * 2008-09-18 2011-08-16 Apple Inc. Communications device having a commute time function and methods of use thereof
US20110066423A1 (en) * 2009-09-17 2011-03-17 Avaya Inc. Speech-Recognition System for Location-Aware Applications
US8527287B1 (en) * 2008-10-08 2013-09-03 Intuit Inc. Method and system for attending a meeting
US20100094678A1 (en) * 2008-10-10 2010-04-15 Embarq Holdings Company, Llc System and method for providing delay notifications
US8457887B2 (en) * 2008-10-13 2013-06-04 Centurylink Intellectual Property Llc System and method for providing travel-related information associated with a calendar appointment
CN102187177A (en) * 2008-10-22 2011-09-14 通腾科技股份有限公司 Navigation system and method for providing departure times
US8185426B1 (en) * 2008-11-03 2012-05-22 Intuit Inc. Method and system for providing real time appointment rescheduling
US20100158202A1 (en) * 2008-12-23 2010-06-24 International Business Machines Corporation Location Based Emergency Services Dispatching
US20100179854A1 (en) * 2009-01-15 2010-07-15 Shafer Steven L Scheduling System and Method
US20100179753A1 (en) * 2009-01-15 2010-07-15 Microsoft Corporation Estimating Time Of Arrival
US8073725B2 (en) * 2009-01-26 2011-12-06 John Loring Appointment scheduling system
US20100191454A1 (en) * 2009-01-29 2010-07-29 Sony Corporation Location based personal organizer
JP2010191486A (en) * 2009-02-13 2010-09-02 Sony Corp Information processing apparatus, information processing method, and program
US20100211425A1 (en) * 2009-02-18 2010-08-19 Gunasekaran Govindarajan Arranging on a communications network meetings between persons where the instant estimated time of arrival at a meeting of each prospective attendee is calculated and displayed to the subject attendee, and to all prospective attendees
US9704138B2 (en) * 2009-02-24 2017-07-11 At&T Intellectual Property I, L.P. Calendar overlay features
US8457888B2 (en) * 2009-03-08 2013-06-04 Mitac International Corp. Method for reminding users about future appointments while taking into account traveling time to the appointment location
US8255256B2 (en) * 2009-03-18 2012-08-28 International Business Machines Corporation Management of user events scheduled during a user absence period
US8886721B2 (en) * 2009-04-14 2014-11-11 Avaya Inc. Short impromptu communications in presence-based systems
US20100274865A1 (en) * 2009-04-23 2010-10-28 Verizon Patent And Licensing Inc. Travel time dependent notification system
US8537003B2 (en) * 2009-05-20 2013-09-17 Microsoft Corporation Geographic reminders
US10127524B2 (en) 2009-05-26 2018-11-13 Microsoft Technology Licensing, Llc Shared collaboration canvas
EP2256462A1 (en) * 2009-05-29 2010-12-01 Alcatel Lucent A context-aware route selection reminder
US8583784B2 (en) * 2009-06-05 2013-11-12 Palm, Inc. Dynamic communication integration with calendar
US20110015959A1 (en) * 2009-07-16 2011-01-20 Edward Darreff Appointment alert system and method
US20110022426A1 (en) 2009-07-22 2011-01-27 Eijdenberg Adam Graphical user interface based airline travel planning
US9384491B1 (en) 2009-08-19 2016-07-05 Allstate Insurance Company Roadside assistance
US9659301B1 (en) 2009-08-19 2017-05-23 Allstate Insurance Company Roadside assistance
US9070243B1 (en) 2009-08-19 2015-06-30 Allstate Insurance Company Assistance on the go
US10453011B1 (en) 2009-08-19 2019-10-22 Allstate Insurance Company Roadside assistance
US9412130B2 (en) 2009-08-19 2016-08-09 Allstate Insurance Company Assistance on the go
US8707206B1 (en) * 2009-08-24 2014-04-22 West Corporation Method and system of providing enhanced appointment notification service to mobile devices
US10319376B2 (en) 2009-09-17 2019-06-11 Avaya Inc. Geo-spatial event processing
US8762049B2 (en) * 2009-10-13 2014-06-24 Telenav, Inc. Navigation system with event of interest routing mechanism and method of operation thereof
US8478528B2 (en) * 2009-11-05 2013-07-02 Mitac International Corp. Methods of wirelessly adding navigational content to a personal navigation device
US20110130950A1 (en) * 2009-12-02 2011-06-02 Yonatan Wexler Travel directions with travel-time estimates
EP2336723B1 (en) * 2009-12-15 2016-11-09 Vodafone Holding GmbH Assisting a user in arriving at a destination in time
US20110153380A1 (en) * 2009-12-22 2011-06-23 Verizon Patent And Licensing Inc. Method and system of automated appointment management
US10826751B2 (en) * 2009-12-28 2020-11-03 Telefonaktiebolaget Lm Ericsson (Publ) Management of functional interconnections between application modules on resource nodes in a social web
US20110160998A1 (en) * 2009-12-29 2011-06-30 Nokia Corporation Method and apparatus for conditional event planning
EP2355018A1 (en) * 2010-02-08 2011-08-10 Research In Motion Limited Providing calendar notifications based on changes in traffic patterns
EP2369530A1 (en) * 2010-02-26 2011-09-28 Research In Motion Limited Enhanced banner advertisements
US8798445B2 (en) * 2010-02-26 2014-08-05 Blackberry Limited Enhanced banner advertisements
EP2367146A1 (en) * 2010-03-17 2011-09-21 Research In Motion Limited System and method for controlling event reminders
US20110231216A1 (en) * 2010-03-17 2011-09-22 Research In Motion Limited System and method for controlling event reminders
US20110246304A1 (en) * 2010-03-31 2011-10-06 Terry Hicks Method and system for providing targeted advertisements based on positional tracking of mobile devices and financial data
US20110252097A1 (en) * 2010-04-12 2011-10-13 David Ryan Walker Predicting meeting attendance
US8457883B2 (en) * 2010-04-20 2013-06-04 Telenav, Inc. Navigation system with calendar mechanism and method of operation thereof
WO2011140290A1 (en) * 2010-05-07 2011-11-10 Manish Mehta Wait time notification system
US20120136572A1 (en) * 2010-06-17 2012-05-31 Norton Kenneth S Distance and Location-Aware Reminders in a Calendar System
US10163074B2 (en) * 2010-07-07 2018-12-25 Ford Global Technologies, Llc Vehicle-based methods and systems for managing personal information and events
US8626553B2 (en) * 2010-07-30 2014-01-07 General Motors Llc Method for updating an electronic calendar in a vehicle
EP2617021A1 (en) * 2010-09-13 2013-07-24 Tomtom International BV Improvements in or relating to portable processing devices
US9118612B2 (en) * 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9383888B2 (en) 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US20120203457A1 (en) * 2011-02-04 2012-08-09 The Casey Group Systems and methods for visualizing events together with points of interest on a map and routes there between
CN102654911A (en) * 2011-03-04 2012-09-05 北京网秦天下科技有限公司 Method and system for schedule management
US20130304534A1 (en) * 2011-05-05 2013-11-14 Manish K. Mehta Wait Time Notification System
US20120310445A1 (en) * 2011-06-02 2012-12-06 Ford Global Technologies, Llc Methods and Apparatus for Wireless Device Application Having Vehicle Interaction
US8521407B2 (en) * 2011-06-10 2013-08-27 GM Global Technology Operations LLC System and method for ensuring a person reaches a destination on time
US10984387B2 (en) 2011-06-28 2021-04-20 Microsoft Technology Licensing, Llc Automatic task extraction and calendar entry
US8548459B1 (en) * 2011-09-27 2013-10-01 Emc Corporation Replacing field hardware involving utilization of a smart phone
US9544158B2 (en) 2011-10-05 2017-01-10 Microsoft Technology Licensing, Llc Workspace collaboration via a wall-type computing device
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US9996241B2 (en) 2011-10-11 2018-06-12 Microsoft Technology Licensing, Llc Interactive visualization of multiple software functionality content items
US10198485B2 (en) 2011-10-13 2019-02-05 Microsoft Technology Licensing, Llc Authoring of data visualizations and maps
US9633114B1 (en) * 2011-12-08 2017-04-25 Google Inc. Inbox for task management
CA2761369A1 (en) * 2011-12-08 2013-06-08 Trapeze Software Inc. Method and system for scheduling demand-response transit service
US9514447B2 (en) * 2011-12-27 2016-12-06 Dassault Systemes Americas Corp. Multi-horizon time wheel
US8849689B1 (en) * 2012-01-23 2014-09-30 Intuit Inc. Method and system for providing dynamic appointment scheduling and tracking
EP2620906A1 (en) 2012-01-24 2013-07-31 Amadeus Automatic live publisher event system and method of same
US20130218971A1 (en) * 2012-02-09 2013-08-22 Samsung Electronics, Co., Ltd. Cloud platform notification
US8718614B2 (en) 2012-02-21 2014-05-06 Cellco Partnership Concierge
KR20130100549A (en) * 2012-03-02 2013-09-11 삼성전자주식회사 Apparatus and method for providing navigation service in electronic device
US9215590B2 (en) 2012-04-20 2015-12-15 Bank Of America Corporation Authentication using vehicle data pairing
US20150178687A1 (en) * 2012-04-26 2015-06-25 Google Inc. System and method for improving resource utilization
US9842317B2 (en) 2012-05-28 2017-12-12 Brandon Jordan Methods, systems, and apparatus for scheduling appointments
KR101952702B1 (en) * 2012-06-01 2019-02-28 삼성전자주식회사 User terminal device providing service based on personal information and methods thereof
US20130329527A1 (en) * 2012-06-08 2013-12-12 Microsoft Corporation Location aware reminders
KR101685226B1 (en) * 2012-06-12 2016-12-20 라인 가부시키가이샤 Messenger interworking service system and method using social graph based on relationships of messenger platform
CN105683716B (en) * 2012-06-22 2018-07-17 谷歌有限责任公司 Context traffic or current warning
EP3196817B1 (en) 2012-06-22 2020-02-19 Google LLC Presenting information for a current location or time
US8849688B2 (en) * 2012-07-02 2014-09-30 International Business Machines Corporation System for assignment routing, delegation and reassignment
JP5891306B2 (en) * 2012-08-07 2016-03-22 株式会社日立製作所 Autonomous traveling device use support tool, operation management center, operation system, and autonomous traveling device
US20140067455A1 (en) * 2012-08-30 2014-03-06 Palo Alto Research Center Incorporated Method and apparatus for automatically managing user activities using contextual information
US20140115069A1 (en) 2012-10-22 2014-04-24 International Business Machines Corporation Generating a user unavailability alert in a collaborative environment
US20140129278A1 (en) * 2012-11-02 2014-05-08 International Business Machines Corporation Methods and Apparatus for Schedule Management
US10074078B2 (en) * 2012-11-12 2018-09-11 At&T Intellectual Property I, L.P. System and method of managing meeting invitations
US9031762B1 (en) 2012-11-13 2015-05-12 Sprint Communications Company L.P. System and method for dynamically adapting to events during operations of a vehicle
US20140136265A1 (en) * 2012-11-15 2014-05-15 II Edward Phillip Kinsey Methods and systems for the sale of consumer services
US20140181741A1 (en) * 2012-12-24 2014-06-26 Microsoft Corporation Discreetly displaying contextually relevant information
US9449407B2 (en) * 2013-01-08 2016-09-20 Google Inc. Displaying dynamic content on a map based on user's location and scheduled task
US8744769B1 (en) * 2013-01-24 2014-06-03 Sprint Communications Company L.P. System and methods for head unit providing analysis and guidance during long road trips
US9068851B2 (en) * 2013-01-24 2015-06-30 Sap Se Location and distance based reminders
US20140229449A1 (en) * 2013-02-11 2014-08-14 Abu Shaher Sanaullah Realtime identification of context mismatch
US20140229099A1 (en) * 2013-02-12 2014-08-14 Broadcom Corporation Location aware appointment management application
USD745531S1 (en) * 2013-02-23 2015-12-15 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
US9069604B2 (en) * 2013-03-04 2015-06-30 Yagi Corp. Activity interruption management
US11493347B2 (en) * 2013-03-12 2022-11-08 Verizon Patent And Licensing Inc. Using historical location data to improve estimates of location
US20140278680A1 (en) * 2013-03-14 2014-09-18 Yakov Z. Mermelstein Method for alerting people to events
US9588988B2 (en) 2013-03-15 2017-03-07 Google Inc. Visual indicators for temporal context on maps
US9317813B2 (en) 2013-03-15 2016-04-19 Apple Inc. Mobile device with predictive routing engine
US20140343841A1 (en) * 2013-05-14 2014-11-20 Google Inc. Providing predicted travel information
WO2015035185A1 (en) 2013-09-06 2015-03-12 Apple Inc. Providing transit information
US9934669B2 (en) 2013-07-17 2018-04-03 Vivint, Inc. Geo-location services
WO2015013760A1 (en) * 2013-07-29 2015-02-05 Skedgo Pty Ltd Free time activity scheduler
US9607318B1 (en) 2013-09-19 2017-03-28 Intuit Inc. Method and system for providing relevant sale event notifications using financial transaction data and location data
US20150113420A1 (en) * 2013-10-23 2015-04-23 Sugarcrm Inc. Overloaded schedule detection and notification
US20150170107A1 (en) * 2013-12-18 2015-06-18 Sugarcrm Inc. Throttled task scheduling based upon observed task velocity
US9552560B1 (en) * 2013-12-31 2017-01-24 Google Inc. Facilitating communication between event attendees based on event starting time
US20150193740A1 (en) * 2014-01-05 2015-07-09 Goldmark Technologies Ltd. System and method for displaying a mail message with a meeting invitation
US20150213414A1 (en) * 2014-01-30 2015-07-30 Andrew Zuckerman Wait time notification system and methods thereof
US10664772B1 (en) 2014-03-07 2020-05-26 Steelcase Inc. Method and system for facilitating collaboration sessions
US20150254599A1 (en) * 2014-03-07 2015-09-10 Remote Personal Web Solutions, Inc. Time and location monitoring systems and related methods
US9716861B1 (en) 2014-03-07 2017-07-25 Steelcase Inc. Method and system for facilitating collaboration sessions
US8942727B1 (en) 2014-04-11 2015-01-27 ACR Development, Inc. User Location Tracking
US9413707B2 (en) 2014-04-11 2016-08-09 ACR Development, Inc. Automated user task management
US9348493B2 (en) * 2014-05-13 2016-05-24 Jack Ke Zhang Automated subscriber-based customization of electronic channels for content presentation
US20150345958A1 (en) * 2014-05-27 2015-12-03 Atieva, Inc. Method of Controlling an Auxiliary Vehicle System
US20150345962A1 (en) * 2014-05-27 2015-12-03 Atieva, Inc. Automated Vehicle Route Scheduling and Optimization System
US9843895B2 (en) 2014-05-30 2017-12-12 Apple Inc. Location-based services for calendar events
US20150346983A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Travel time estimation and alerting
US9766079B1 (en) 2014-10-03 2017-09-19 Steelcase Inc. Method and system for locating resources and communicating within an enterprise
US9380682B2 (en) 2014-06-05 2016-06-28 Steelcase Inc. Environment optimization for space based on presence and activities
US9955318B1 (en) 2014-06-05 2018-04-24 Steelcase Inc. Space guidance and management system and method
US10433646B1 (en) 2014-06-06 2019-10-08 Steelcaase Inc. Microclimate control systems and methods
US11744376B2 (en) 2014-06-06 2023-09-05 Steelcase Inc. Microclimate control systems and methods
EP3158513A1 (en) * 2014-06-19 2017-04-26 Iveco S.p.A. System for managing a vehicular mission of a goods delivery vehicle
US9506773B1 (en) * 2014-06-24 2016-11-29 Google Inc. Automatic navigation assistance based on calendar data
KR20160001178A (en) * 2014-06-26 2016-01-06 엘지전자 주식회사 Glass type terminal and control method thereof
US9754492B2 (en) * 2014-07-08 2017-09-05 The Toronto-Dominion Bank Systems and methods for providing sensor-based location proximity detection and notification
US9503516B2 (en) 2014-08-06 2016-11-22 Google Technology Holdings LLC Context-based contact notification
US9389094B2 (en) * 2014-09-05 2016-07-12 Paypal, Inc. Methods and systems for determining routing
US9792556B2 (en) * 2014-09-26 2017-10-17 Sony Corporation Mapping gathered location information to short form place names using correlations and confidence measures that pertain to lengths of overlaps of location data and calendar data sets
US10572103B2 (en) 2014-09-30 2020-02-25 Apple Inc. Timeline view of recently opened documents
US9852388B1 (en) 2014-10-03 2017-12-26 Steelcase, Inc. Method and system for locating resources and communicating within an enterprise
US20160104122A1 (en) * 2014-10-10 2016-04-14 Bank Of America Corporation Remote video conferencing system
WO2016077677A1 (en) * 2014-11-14 2016-05-19 Sanguine Bioscience, Inc. Business fleet scheduling and transport logistics
US9405810B2 (en) 2014-11-24 2016-08-02 Asana, Inc. Server side system and method for search backed calendar user interface
US10036647B2 (en) * 2014-12-01 2018-07-31 The Boeing Company Systems and methods for the determination of a user's 4D trajectory
US20160189110A1 (en) * 2014-12-30 2016-06-30 Jens Bombolowsky Location Information for Meeting Enhancement
US20160292602A1 (en) * 2015-03-30 2016-10-06 International Business Machines Corporation Calendar management with flexible duration meetings
US10796248B2 (en) 2015-04-29 2020-10-06 Ford Global Technologies, Llc Ride-sharing joint rental groups
US20160320198A1 (en) * 2015-04-29 2016-11-03 Ford Global Technologies, Llc Ride-sharing routing using contextual constraints
US20160335572A1 (en) * 2015-05-15 2016-11-17 Microsoft Technology Licensing, Llc Management of commitments and requests extracted from communications and content
US9602975B2 (en) 2015-05-22 2017-03-21 Microsoft Technology Licensing, Llc Intelligent surfacing of reminders
US10733371B1 (en) 2015-06-02 2020-08-04 Steelcase Inc. Template based content preparation system for use with a plurality of space types
US10114544B2 (en) * 2015-06-06 2018-10-30 Apple Inc. Systems and methods for generating and providing intelligent time to leave reminders
US20160357804A1 (en) * 2015-06-07 2016-12-08 Apple Inc. Determining location of a calendar event
US10387846B2 (en) 2015-07-10 2019-08-20 Bank Of America Corporation System for affecting appointment calendaring on a mobile device based on dependencies
US10387845B2 (en) 2015-07-10 2019-08-20 Bank Of America Corporation System for facilitating appointment calendaring based on perceived customer requirements
DE102015011566B4 (en) * 2015-09-02 2019-08-08 Audi Ag Task-oriented motor vehicle navigation
US10650317B2 (en) * 2015-09-21 2020-05-12 Google Llc Detecting and correcting potential errors in user behavior
US11188878B2 (en) * 2015-09-22 2021-11-30 International Business Machines Corporation Meeting room reservation system
CN105241463A (en) * 2015-09-29 2016-01-13 小米科技有限责任公司 Business processing method and device based on navigation information and electronic equipment
US11182871B2 (en) * 2015-10-24 2021-11-23 Anagog Ltd. System and apparatus for ridesharing
US11282041B2 (en) 2015-11-04 2022-03-22 Yips, Llc System and method for scheduling patient appointments
US9668103B1 (en) 2015-12-10 2017-05-30 At&T Mobility Ii Llc Method and apparatus for management of location information
US20170178081A1 (en) * 2015-12-18 2017-06-22 Hipmunk, Inc. Automatic selection of calendar-based, multiple event options for presentation
US20170178258A1 (en) * 2015-12-18 2017-06-22 Hipmunk, Inc. Automatic selection of calendar-based, multiple trip options for presentation
US10382568B2 (en) * 2015-12-18 2019-08-13 Hipmunk, Inc. Display of calendar-based single user, single event travel options
US9921726B1 (en) 2016-06-03 2018-03-20 Steelcase Inc. Smart workstation method and system
US10643185B2 (en) 2016-06-10 2020-05-05 Apple Inc. Suggested locations for calendar events
US11526852B2 (en) * 2016-06-14 2022-12-13 Verizon Patent And Licensing Inc. Enhanced space management via micro-location tracking
US20180018612A1 (en) * 2016-07-13 2018-01-18 International Business Machines Corporation Socially influenced collaboration tools
KR102635945B1 (en) * 2016-07-19 2024-02-14 삼성전자 주식회사 Method for managing a schedule and electronic apparatus therefor
US10650621B1 (en) 2016-09-13 2020-05-12 Iocurrents, Inc. Interfacing with a vehicular controller area network
US10036643B2 (en) 2016-09-16 2018-07-31 International Business Machines Corporation Augmented operation of navigation apparatus
US11068854B2 (en) * 2016-11-11 2021-07-20 Fujifilm Business Innovation Corp. Systems and methods for automatic awareness and management of corporate visitor scheduling and coordination
US20180137471A1 (en) * 2016-11-15 2018-05-17 International Business Machines Corporation Physical location aware calendar system
US10024671B2 (en) * 2016-11-16 2018-07-17 Allstate Insurance Company Multi-stop route selection system
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
US10288444B2 (en) * 2017-01-10 2019-05-14 Microsoft Technology Licensing, Llc Generating instructions for shared travel experiences
US10685300B2 (en) * 2017-03-07 2020-06-16 Facebook, Inc. Location aware waiting queue
US10760915B2 (en) * 2017-03-28 2020-09-01 International Business Machines Corporation Synchronizing nodes at a meeting point
US10977236B2 (en) * 2017-04-03 2021-04-13 Salesforce.Com, Inc. Dynamic recommendation methods and systems for database changes
US10346773B2 (en) * 2017-05-12 2019-07-09 International Business Machines Corporation Coordinating and providing navigation for a group of people traveling together in a transport hub
US10909505B2 (en) * 2017-06-15 2021-02-02 Rovi Guides, Inc. Systems and methods for delaying the start time of an event based on event attendee arrival times
US20180365652A1 (en) * 2017-06-15 2018-12-20 Microsoft Technology Licensing, Llc Providing anomaly based notification on calendar
US11288635B2 (en) * 2017-06-28 2022-03-29 Microsoft Technology Licensing, Llc Adjusting calendars of interest on a per-user basis
US10977434B2 (en) 2017-07-11 2021-04-13 Asana, Inc. Database model which provides management of custom fields and methods and apparatus therfor
US10679191B2 (en) * 2017-07-12 2020-06-09 Mastercard International Incorporated Personalized multi-user location-based event scheduling, management, and coordination systems and methods
CN111213165A (en) * 2017-08-18 2020-05-29 开利公司 Method of notifying conference participants and conference moderator of estimated travel time and timeliness of participants
JP6951046B2 (en) * 2017-11-16 2021-10-20 トヨタ自動車株式会社 Information processing device
US20190156293A1 (en) * 2017-11-17 2019-05-23 Qualcomm Incorporated User location and activity based smart reminders
US11741406B2 (en) * 2018-01-31 2023-08-29 Microsoft Technology Licensing, Llc Location-based task suggestions
US10623359B1 (en) 2018-02-28 2020-04-14 Asana, Inc. Systems and methods for generating tasks based on chat sessions between users of a collaboration environment
JP7059721B2 (en) * 2018-03-16 2022-04-26 トヨタ自動車株式会社 Information provision method and information provision device
US11055647B2 (en) * 2018-03-22 2021-07-06 Microsoft Technology Licensing, Llc Resource conflict detection and communication
US11748817B2 (en) 2018-03-27 2023-09-05 Allstate Insurance Company Systems and methods for generating an assessment of safety parameters using sensors and sensor data
US11348170B2 (en) 2018-03-27 2022-05-31 Allstate Insurance Company Systems and methods for identifying and transferring digital assets
US11138021B1 (en) 2018-04-02 2021-10-05 Asana, Inc. Systems and methods to facilitate task-specific workspaces for a collaboration work management platform
US10613735B1 (en) 2018-04-04 2020-04-07 Asana, Inc. Systems and methods for preloading an amount of content based on user scrolling
US20190318322A1 (en) * 2018-04-12 2019-10-17 Rithm Al, Inc. System and method for determining an order of future events
CN111149124A (en) * 2018-04-17 2020-05-12 华为技术有限公司 Service recommendation method and related device
US10785046B1 (en) 2018-06-08 2020-09-22 Asana, Inc. Systems and methods for providing a collaboration work management platform that facilitates differentiation between users in an overarching group and one or more subsets of individual users
US11954650B2 (en) 2018-06-27 2024-04-09 MFTB Holdco, Inc. Managing in-person property access using geofences
US10885596B1 (en) 2018-06-27 2021-01-05 Showingtime.Com Inc. System and method for managing showings of real estate listings based on multiple factors
US11580503B1 (en) * 2020-10-23 2023-02-14 MFTB Holdco, Inc. System and method for managing and automatically rescheduling showings of real estate listings based on multiple factors
US10616151B1 (en) 2018-10-17 2020-04-07 Asana, Inc. Systems and methods for generating and presenting graphical user interfaces
US11188881B2 (en) * 2018-10-22 2021-11-30 Timetrade Systems, Inc. Dynamic user interface
EP3788321A1 (en) 2018-11-07 2021-03-10 Google LLC Providing navigation instructions to one device in view of another device
US10956845B1 (en) 2018-12-06 2021-03-23 Asana, Inc. Systems and methods for generating prioritization models and predicting workflow prioritizations
US11568366B1 (en) 2018-12-18 2023-01-31 Asana, Inc. Systems and methods for generating status requests for units of work
US11113667B1 (en) 2018-12-18 2021-09-07 Asana, Inc. Systems and methods for providing a dashboard for a collaboration work management platform
KR102068422B1 (en) * 2018-12-26 2020-02-11 이청종 Schedule Management Service System and Method
US10713740B1 (en) 2018-12-29 2020-07-14 Showingtime.Com, Inc. Electronic device for providing access to properties
US10684870B1 (en) 2019-01-08 2020-06-16 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11782737B2 (en) 2019-01-08 2023-10-10 Asana, Inc. Systems and methods for determining and presenting a graphical user interface including template metrics
US11204683B1 (en) 2019-01-09 2021-12-21 Asana, Inc. Systems and methods for generating and tracking hardcoded communications in a collaboration management platform
JP7293833B2 (en) * 2019-04-16 2023-06-20 富士フイルムビジネスイノベーション株式会社 Reservation management system and program
US20220147947A1 (en) 2019-04-17 2022-05-12 Mikko Kalervo Vaananen Mobile secretary meeting scheduler
CA3140316C (en) 2019-07-24 2024-02-27 Scott R. Fisher Electronic lockbox with schedule controlled access credentials
JP7480479B2 (en) * 2019-08-06 2024-05-10 富士フイルムビジネスイノベーション株式会社 Information processing system, information processing device, and program
JP7415381B2 (en) * 2019-09-04 2024-01-17 富士フイルムビジネスイノベーション株式会社 Information processing systems and programs
US11574373B1 (en) 2020-04-20 2023-02-07 MFTB Holdco, Inc. Multi-party virtual showing system with configurable independent communication channels and data
US11676344B2 (en) 2019-11-12 2023-06-13 MFTB Holdco, Inc. Presenting building information using building models
US11341445B1 (en) 2019-11-14 2022-05-24 Asana, Inc. Systems and methods to measure and visualize threshold of user workload
US11783253B1 (en) 2020-02-11 2023-10-10 Asana, Inc. Systems and methods to effectuate sets of automated actions outside and/or within a collaboration environment based on trigger events occurring outside and/or within the collaboration environment
US11599855B1 (en) 2020-02-14 2023-03-07 Asana, Inc. Systems and methods to attribute automated actions within a collaboration environment
US11763259B1 (en) 2020-02-20 2023-09-19 Asana, Inc. Systems and methods to generate units of work in a collaboration environment
US12118178B1 (en) 2020-04-08 2024-10-15 Steelcase Inc. Wayfinding services method and apparatus
US11379798B2 (en) * 2020-05-28 2022-07-05 Microsoft Technology Licensing, Llc Identification and surfacing of contextual data related to electronic calendar events
US11455601B1 (en) 2020-06-29 2022-09-27 Asana, Inc. Systems and methods to measure and visualize workload for completing individual units of work
US11900323B1 (en) 2020-06-29 2024-02-13 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on video dictation
US11449836B1 (en) 2020-07-21 2022-09-20 Asana, Inc. Systems and methods to facilitate user engagement with units of work assigned within a collaboration environment
US11984739B1 (en) 2020-07-31 2024-05-14 Steelcase Inc. Remote power systems, apparatus and methods
US11468985B2 (en) 2020-08-04 2022-10-11 Showingtime.Com, Inc. System and method for managing property showing appointments based on health parameters
US11568339B2 (en) 2020-08-18 2023-01-31 Asana, Inc. Systems and methods to characterize units of work based on business objectives
US11769115B1 (en) 2020-11-23 2023-09-26 Asana, Inc. Systems and methods to provide measures of user workload when generating units of work based on chat sessions between users of a collaboration environment
US11405435B1 (en) 2020-12-02 2022-08-02 Asana, Inc. Systems and methods to present views of records in chat sessions between users of a collaboration environment
LU102277B1 (en) 2020-12-11 2022-06-13 Microsoft Technology Licensing Llc Server initiated communication session join after endpoint status check failure
US20220271963A1 (en) * 2021-02-25 2022-08-25 Avaya Management L.P. System and method for customized reminders
US11694162B1 (en) 2021-04-01 2023-07-04 Asana, Inc. Systems and methods to recommend templates for project-level graphical user interfaces within a collaboration environment
US11676107B1 (en) 2021-04-14 2023-06-13 Asana, Inc. Systems and methods to facilitate interaction with a collaboration environment based on assignment of project-level roles
US11553045B1 (en) 2021-04-29 2023-01-10 Asana, Inc. Systems and methods to automatically update status of projects within a collaboration environment
US11803814B1 (en) 2021-05-07 2023-10-31 Asana, Inc. Systems and methods to facilitate nesting of portfolios within a collaboration environment
US11792028B1 (en) 2021-05-13 2023-10-17 Asana, Inc. Systems and methods to link meetings with units of work of a collaboration environment
US11809222B1 (en) 2021-05-24 2023-11-07 Asana, Inc. Systems and methods to generate units of work within a collaboration environment based on selection of text
US12093859B1 (en) 2021-06-02 2024-09-17 Asana, Inc. Systems and methods to measure and visualize workload for individual users
US11756000B2 (en) 2021-09-08 2023-09-12 Asana, Inc. Systems and methods to effectuate sets of automated actions within a collaboration environment including embedded third-party content based on trigger events
US11635884B1 (en) 2021-10-11 2023-04-25 Asana, Inc. Systems and methods to provide personalized graphical user interfaces within a collaboration environment
US12093896B1 (en) 2022-01-10 2024-09-17 Asana, Inc. Systems and methods to prioritize resources of projects within a collaboration environment
US11836681B1 (en) 2022-02-17 2023-12-05 Asana, Inc. Systems and methods to generate records within a collaboration environment
US12118514B1 (en) 2022-02-17 2024-10-15 Asana, Inc. Systems and methods to generate records within a collaboration environment based on a machine learning model trained from a text corpus
US11997425B1 (en) 2022-02-17 2024-05-28 Asana, Inc. Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment
US11777815B1 (en) * 2022-03-02 2023-10-03 Servicenow, Inc. Techniques for dynamically configuring service availability
US12051045B1 (en) 2022-04-28 2024-07-30 Asana, Inc. Systems and methods to characterize work unit records of a collaboration environment based on stages within a workflow
US20240037511A1 (en) * 2022-07-29 2024-02-01 Zoom Video Communications, Inc. In-Person Meeting Scheduling Using A Machine Learning Model To Predict Participant Preferences
US11863601B1 (en) 2022-11-18 2024-01-02 Asana, Inc. Systems and methods to execute branching automation schemes in a collaboration environment

Citations (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4301506A (en) 1980-07-07 1981-11-17 Turco Daniel J Auto routing computer for eliminating the need for maps or travel instructions
US4393448A (en) 1980-02-15 1983-07-12 Epsco Incorporated Navigational plotting system
US4413322A (en) 1980-12-17 1983-11-01 Foster Airdata Systems Inc. Automatic waypoint area navigation system
US4528552A (en) 1981-06-15 1985-07-09 Toyota Jidosha Kogyo Kabushiki Kaisha Travel locus display device
US4546439A (en) 1982-03-10 1985-10-08 Natividad Gene Esparza Method and apparatus for determining route from a present location to a desired destination in a city
US4570227A (en) 1981-08-17 1986-02-11 Agency Of Industrial Science & Technology Portable map display apparatus
US4646089A (en) 1983-01-17 1987-02-24 Nippondenso Co., Ltd. Travel guidance system for vehicles
US4689747A (en) 1984-06-21 1987-08-25 Nippondenso Co., Ltd. Vehicle navigational apparatus for displaying a road map
US4796189A (en) 1985-03-20 1989-01-03 Nissan Motor Company, Limited Navigation system for automotive vehicle with automatic navigation start and navigation end point search and automatic route selection
US4827419A (en) 1986-09-22 1989-05-02 Lasertrak Corporation Portable navigational planning device
US4866626A (en) 1987-09-18 1989-09-12 Egli Werner H Navigation by a video-camera sensed ground array
US4876651A (en) 1988-05-11 1989-10-24 Honeywell Inc. Digital map system
US4890104A (en) 1983-03-25 1989-12-26 Nippondenso Co., Ltd. Electronic map display system for use on vehicle
US4914605A (en) 1984-10-22 1990-04-03 Etak, Inc. Apparatus and method for displaying a map
US4926336A (en) 1987-12-28 1990-05-15 Aisin Aw Co., Ltd. Route searching system of navigation apparatus
US4937753A (en) 1987-12-28 1990-06-26 Aisin Aw Co., Ltd. Route end node series preparing system of navigation apparatus
US4954958A (en) 1988-08-19 1990-09-04 Hacowie Corporation Directional information system
US4962458A (en) 1987-08-28 1990-10-09 U.S. Philips Corporation Route planner device
US4984168A (en) 1987-06-06 1991-01-08 Robert Bosch Gmbh Method and apparatus for determining a route between a starting point and a destination
US5031104A (en) 1988-12-05 1991-07-09 Sumitomo Electric Industries, Ltd. Adaptive in-vehicle route guidance system
US5041983A (en) 1989-03-31 1991-08-20 Aisin Seiki K. K. Method and apparatus for searching for route
US5067081A (en) 1989-08-30 1991-11-19 Person Carl E Portable electronic navigation aid
US5115399A (en) 1987-12-28 1992-05-19 Kabushiki Kaisha Shinsangyokaihatsu Position input system for vehicular navigation apparatus
US5121326A (en) 1987-12-28 1992-06-09 Aisin Aw Co., Ltd. Display system in navigation apparatus
US5168452A (en) 1987-12-28 1992-12-01 Aisin Aw Co., Ltd. Route exploration method of navigation apparatus
US5170353A (en) 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
US5172321A (en) 1990-12-10 1992-12-15 Motorola, Inc. Vehicle route planning system
US5189430A (en) 1989-10-24 1993-02-23 Mitsubishi Denki Kabushiki Kaisha Navigation system for movable body
US5191532A (en) 1987-12-05 1993-03-02 Aisin Aw Co., Ltd. Navigation apparatus
US5191406A (en) 1990-04-20 1993-03-02 Nikon Corporation Method and apparatus for rapid scanning of color images
US5231584A (en) 1987-12-28 1993-07-27 Aisin Aw Co., Ltd. Navigation apparatus with non-volatile memory for return to initial departure point
US5270937A (en) 1991-04-26 1993-12-14 Motorola, Inc. Vehicle map position determining apparatus
US5272638A (en) 1991-05-31 1993-12-21 Texas Instruments Incorporated Systems and methods for planning the scheduling travel routes
US5274387A (en) 1990-06-06 1993-12-28 Mazda Motor Corporation Navigation apparatus for vehicles
US5293163A (en) 1990-06-06 1994-03-08 Mazda Motor Corporation Navigation apparatus for vehicles
US5353034A (en) 1991-11-08 1994-10-04 Sanden Corporation Position information inputting apparatus for a vehicle travel guide system
US5442557A (en) 1991-07-26 1995-08-15 Pioneer Electronic Corporation Navigation device
US5486822A (en) 1990-11-09 1996-01-23 Sumitomo Electric Industries, Ltd. Optimum route determination
US5557524A (en) 1991-10-18 1996-09-17 Maki; Stanley C. GPS/GLONASS travel recorder
US5608635A (en) 1992-04-14 1997-03-04 Zexel Corporation Navigation system for a vehicle with route recalculation between multiple locations
US5732385A (en) 1994-04-15 1998-03-24 Nissan Motor Co., Ltd. Vehicle navigation system displaying bird-eye view of different visual points and different contraction scale ratios depending upon vehicle travel conditions
US5790974A (en) 1996-04-29 1998-08-04 Sun Microsystems, Inc. Portable calendaring device having perceptual agent managing calendar entries
US6052563A (en) 1997-12-10 2000-04-18 Motorola Communication device controlled by appointment information stored therein, and method therefor
US6144920A (en) 1997-08-29 2000-11-07 Denso Corporation Map displaying apparatus
US6282489B1 (en) 1993-05-28 2001-08-28 Mapquest.Com, Inc. Methods and apparatus for displaying a travel route and generating a list of places of interest located near the travel route
US6292666B1 (en) 1999-05-06 2001-09-18 Ericsson Inc. System and method for displaying country on mobile stations within satellite systems
US20020019835A1 (en) 2000-06-09 2002-02-14 Reinhold Baur Metod of planning appointments and electronic organiser therefor
US20020052674A1 (en) 2000-08-23 2002-05-02 Ting-Mao Chang Continuous local information delivery system and method
US20020062236A1 (en) 2000-11-22 2002-05-23 Kimitaka Murashita Reservation server, user terminal, reservation system, and reservation method
US6401034B1 (en) 1999-09-02 2002-06-04 Navigation Technologies Corp. Method and system for finding intermediate destinations with a navigation system
US20020188603A1 (en) 2001-06-06 2002-12-12 Baird Bruce R. Methods and systems for user activated automated searching
US20030001779A1 (en) 1992-12-04 2003-01-02 Yosef Mintz Method and system for mapping and tracking information from a plurality of remote stations
US20030004776A1 (en) 2001-06-27 2003-01-02 Ronald Perrella Location and time sensitive wireless calendaring
US20030036848A1 (en) 2001-08-16 2003-02-20 Sheha Michael A. Point of interest spatial rating search method and system
US6526349B2 (en) 2001-04-23 2003-02-25 Motorola, Inc. Method of compiling navigation route content
US6529159B1 (en) 1997-08-28 2003-03-04 At Road, Inc. Method for distributing location-relevant information using a network
US6529136B2 (en) 2001-02-28 2003-03-04 International Business Machines Corporation Group notification system and method for implementing and indicating the proximity of individuals or groups to other individuals or groups
US6609064B1 (en) 1999-08-31 2003-08-19 Qwest Communications Int'l, Inc. System and method for grouping GPS data into moving and stationary segments
US20030163253A1 (en) 2002-02-27 2003-08-28 Samsung Electronics Co., Ltd. Single or multiple route map matching apparatus for navigation service and method thereof
US20030191578A1 (en) 2000-03-14 2003-10-09 Cynthia Paulauskas Method and system for providing reminders about points of interests while traveling
US20030217073A1 (en) 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
WO2003107129A2 (en) 2002-06-13 2003-12-24 Gp Ware Method and apparatus for a calendar tracking and monitoring service
US6678613B2 (en) 2001-09-21 2004-01-13 International Business Machines Corporation Method and apparatus for notifying a user of an appointment
US6741188B1 (en) 1999-10-22 2004-05-25 John M. Miller System for dynamically pushing information to a user utilizing global positioning system
US20040158392A1 (en) 2003-02-08 2004-08-12 Samsung Electronics Co., Ltd. Navigation apparatus and method for calculating optimum travel route using the same
US6801139B2 (en) 2002-05-02 2004-10-05 General Motors Corporation Method and system for delivering a time-efficient mobile vehicle route that encompasses multiple limited-duration events
US20040260465A1 (en) 2003-06-13 2004-12-23 Tu Ihung S. Display method and apparatus for navigation system for searching POI and arranging listing order of POI
US6842696B2 (en) 2002-07-01 2005-01-11 Intel Corporation Method and device for location detection for a scheduling program
US20050015316A1 (en) 2003-07-02 2005-01-20 Vincenzo Salluzzo Methods for calendaring, tracking, and expense reporting, and devices and systems employing same
US20050027705A1 (en) 2003-05-20 2005-02-03 Pasha Sadri Mapping method and system
US20050055353A1 (en) 2003-01-30 2005-03-10 Marx Peter Samuel Acquiring, managing, distributing, and presenting contextual data relating to a known postion for location-based services to and between users
US20050075119A1 (en) 2002-04-10 2005-04-07 Sheha Michael A. Method and system for dynamic estimation and predictive route generation
US20050096946A1 (en) 2003-10-30 2005-05-05 International Business Machines Corporation System and method for dynamically resolving travel arrangement problems based on changes in travel conditions
US20050096841A1 (en) 2003-11-03 2005-05-05 Bugra Gedik System and method for evaluating moving queries over moving objects
US6895329B1 (en) 2000-10-30 2005-05-17 Board Of Trustees Of The University Of Illinois Method and system for querying in a moving object database
US20050119927A1 (en) 2003-12-02 2005-06-02 International Business Machines Corporation Accounting for traveling time within scheduling software
US6920384B2 (en) 2001-12-25 2005-07-19 Aisin Aw Co. Ltd. Driving force control apparatus for vehicle
US20050165631A1 (en) 2004-01-28 2005-07-28 Microsoft Corporation Time management representations and automation for allocating time to projects and meetings within an online calendaring system
US6944539B2 (en) 2001-10-25 2005-09-13 Aisin Aw Co., Ltd. Information display system for use with a navigation system
US20050221808A1 (en) 2002-02-01 2005-10-06 Petter Karlsson Method of automatically altering the behaviour of a wireless information device
US20050227712A1 (en) 2004-04-13 2005-10-13 Texas Instruments Incorporated Handset meeting assistant
US20050228860A1 (en) 2004-04-12 2005-10-13 Kimmo Hamynen Methods and apparatus for geographically based Web services
US6958692B1 (en) 1999-07-13 2005-10-25 Nokia Corporation Personal organizer equipment
US20050278114A1 (en) 2004-06-15 2005-12-15 Ahmad Ahmad M Method and system for selecting destinations
US6993430B1 (en) 1993-05-28 2006-01-31 America Online, Inc. Automated travel planning system
US20060047644A1 (en) 2004-08-31 2006-03-02 Bocking Andrew D Method of searching for personal information management (PIM) information and handheld electronic device employing the same
US20060058952A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7062374B1 (en) 2002-09-18 2006-06-13 Garmin Ltd. Methods and systems to interface navigation operations
US7085649B2 (en) 2000-06-09 2006-08-01 Nokia Mobile Phones, Ltd. Electronic organizer
US20060218029A1 (en) 2005-03-25 2006-09-28 Microsoft Corporation Smart reminders
US7188026B2 (en) 2003-05-12 2007-03-06 Dash Navigation, Inc. Hierarchical floating car data network
US20070106458A1 (en) 2003-08-18 2007-05-10 Ryotaro Iwami Navigation device
US20070112780A1 (en) 2005-11-15 2007-05-17 Stone Gregory L Method and system to process navigation information
US7313767B2 (en) 2002-10-31 2007-12-25 Sun Microsystems, Inc. System and method for presenting time related data on a small screen device
US20080054072A1 (en) 2005-11-17 2008-03-06 Lalitesh Katragadda Vehicle information systems and methods
US20080059890A1 (en) 2006-08-31 2008-03-06 Ronald Scotte Zinn Conflict checking and notification in an electronic device
US7373244B2 (en) 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
US20080167938A1 (en) 2006-12-29 2008-07-10 Aol Llc Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US7552009B2 (en) 2005-07-14 2009-06-23 Honda Motor Co., Ltd. System and method for synchronizing data for use in a navigation system
US7743056B2 (en) 2006-03-31 2010-06-22 Aol Inc. Identifying a result responsive to a current location of a client device
US7869941B2 (en) 2006-12-29 2011-01-11 Aol Inc. Meeting notification and modification service
US20110070872A1 (en) * 2009-09-22 2011-03-24 Telenav, Inc. Location based system with contextual locator and method of operation thereof
US7941753B2 (en) 2006-03-31 2011-05-10 Aol Inc. Communicating appointment and/or mapping information among a calendar application and a navigation application
US20110257881A1 (en) * 2010-04-20 2011-10-20 Telenav, Inc. Navigation system with calendar mechanism and method of operation thereof

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2209583B (en) * 1987-09-07 1992-05-06 G I Marketing C C Plumbing arrangement for venting waste pipes connected to lavatory pans

Patent Citations (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4393448A (en) 1980-02-15 1983-07-12 Epsco Incorporated Navigational plotting system
US4301506A (en) 1980-07-07 1981-11-17 Turco Daniel J Auto routing computer for eliminating the need for maps or travel instructions
US4413322A (en) 1980-12-17 1983-11-01 Foster Airdata Systems Inc. Automatic waypoint area navigation system
US4528552A (en) 1981-06-15 1985-07-09 Toyota Jidosha Kogyo Kabushiki Kaisha Travel locus display device
US4570227A (en) 1981-08-17 1986-02-11 Agency Of Industrial Science & Technology Portable map display apparatus
US4546439A (en) 1982-03-10 1985-10-08 Natividad Gene Esparza Method and apparatus for determining route from a present location to a desired destination in a city
US4646089A (en) 1983-01-17 1987-02-24 Nippondenso Co., Ltd. Travel guidance system for vehicles
US4890104A (en) 1983-03-25 1989-12-26 Nippondenso Co., Ltd. Electronic map display system for use on vehicle
US4689747A (en) 1984-06-21 1987-08-25 Nippondenso Co., Ltd. Vehicle navigational apparatus for displaying a road map
US4914605A (en) 1984-10-22 1990-04-03 Etak, Inc. Apparatus and method for displaying a map
US4796189A (en) 1985-03-20 1989-01-03 Nissan Motor Company, Limited Navigation system for automotive vehicle with automatic navigation start and navigation end point search and automatic route selection
US4827419A (en) 1986-09-22 1989-05-02 Lasertrak Corporation Portable navigational planning device
US4984168A (en) 1987-06-06 1991-01-08 Robert Bosch Gmbh Method and apparatus for determining a route between a starting point and a destination
US4962458A (en) 1987-08-28 1990-10-09 U.S. Philips Corporation Route planner device
US4866626A (en) 1987-09-18 1989-09-12 Egli Werner H Navigation by a video-camera sensed ground array
US5191532A (en) 1987-12-05 1993-03-02 Aisin Aw Co., Ltd. Navigation apparatus
US4926336A (en) 1987-12-28 1990-05-15 Aisin Aw Co., Ltd. Route searching system of navigation apparatus
US4937753A (en) 1987-12-28 1990-06-26 Aisin Aw Co., Ltd. Route end node series preparing system of navigation apparatus
US5115399A (en) 1987-12-28 1992-05-19 Kabushiki Kaisha Shinsangyokaihatsu Position input system for vehicular navigation apparatus
US5121326A (en) 1987-12-28 1992-06-09 Aisin Aw Co., Ltd. Display system in navigation apparatus
US5168452A (en) 1987-12-28 1992-12-01 Aisin Aw Co., Ltd. Route exploration method of navigation apparatus
US5231584A (en) 1987-12-28 1993-07-27 Aisin Aw Co., Ltd. Navigation apparatus with non-volatile memory for return to initial departure point
US4876651A (en) 1988-05-11 1989-10-24 Honeywell Inc. Digital map system
US4954958A (en) 1988-08-19 1990-09-04 Hacowie Corporation Directional information system
US5170353A (en) 1988-11-17 1992-12-08 U.S. Philips Corporation Bucket-oriented route planning method, and navigation system comprising a route planner for carrying out such a method
US5031104A (en) 1988-12-05 1991-07-09 Sumitomo Electric Industries, Ltd. Adaptive in-vehicle route guidance system
US5041983A (en) 1989-03-31 1991-08-20 Aisin Seiki K. K. Method and apparatus for searching for route
US5067081A (en) 1989-08-30 1991-11-19 Person Carl E Portable electronic navigation aid
US5189430A (en) 1989-10-24 1993-02-23 Mitsubishi Denki Kabushiki Kaisha Navigation system for movable body
US5191406A (en) 1990-04-20 1993-03-02 Nikon Corporation Method and apparatus for rapid scanning of color images
US5274387A (en) 1990-06-06 1993-12-28 Mazda Motor Corporation Navigation apparatus for vehicles
US5293163A (en) 1990-06-06 1994-03-08 Mazda Motor Corporation Navigation apparatus for vehicles
US5486822A (en) 1990-11-09 1996-01-23 Sumitomo Electric Industries, Ltd. Optimum route determination
US5172321A (en) 1990-12-10 1992-12-15 Motorola, Inc. Vehicle route planning system
US5270937A (en) 1991-04-26 1993-12-14 Motorola, Inc. Vehicle map position determining apparatus
US5272638A (en) 1991-05-31 1993-12-21 Texas Instruments Incorporated Systems and methods for planning the scheduling travel routes
US5442557A (en) 1991-07-26 1995-08-15 Pioneer Electronic Corporation Navigation device
US5557524A (en) 1991-10-18 1996-09-17 Maki; Stanley C. GPS/GLONASS travel recorder
US5353034A (en) 1991-11-08 1994-10-04 Sanden Corporation Position information inputting apparatus for a vehicle travel guide system
US5608635A (en) 1992-04-14 1997-03-04 Zexel Corporation Navigation system for a vehicle with route recalculation between multiple locations
US20030001779A1 (en) 1992-12-04 2003-01-02 Yosef Mintz Method and system for mapping and tracking information from a plurality of remote stations
US6993430B1 (en) 1993-05-28 2006-01-31 America Online, Inc. Automated travel planning system
US6282489B1 (en) 1993-05-28 2001-08-28 Mapquest.Com, Inc. Methods and apparatus for displaying a travel route and generating a list of places of interest located near the travel route
US6498982B2 (en) 1993-05-28 2002-12-24 Mapquest. Com, Inc. Methods and apparatus for displaying a travel route and/or generating a list of places of interest located near the travel route
US5732385A (en) 1994-04-15 1998-03-24 Nissan Motor Co., Ltd. Vehicle navigation system displaying bird-eye view of different visual points and different contraction scale ratios depending upon vehicle travel conditions
US5790974A (en) 1996-04-29 1998-08-04 Sun Microsystems, Inc. Portable calendaring device having perceptual agent managing calendar entries
US6529159B1 (en) 1997-08-28 2003-03-04 At Road, Inc. Method for distributing location-relevant information using a network
US6144920A (en) 1997-08-29 2000-11-07 Denso Corporation Map displaying apparatus
US6052563A (en) 1997-12-10 2000-04-18 Motorola Communication device controlled by appointment information stored therein, and method therefor
US6292666B1 (en) 1999-05-06 2001-09-18 Ericsson Inc. System and method for displaying country on mobile stations within satellite systems
US6958692B1 (en) 1999-07-13 2005-10-25 Nokia Corporation Personal organizer equipment
US6609064B1 (en) 1999-08-31 2003-08-19 Qwest Communications Int'l, Inc. System and method for grouping GPS data into moving and stationary segments
US6401034B1 (en) 1999-09-02 2002-06-04 Navigation Technologies Corp. Method and system for finding intermediate destinations with a navigation system
US6741188B1 (en) 1999-10-22 2004-05-25 John M. Miller System for dynamically pushing information to a user utilizing global positioning system
US20030191578A1 (en) 2000-03-14 2003-10-09 Cynthia Paulauskas Method and system for providing reminders about points of interests while traveling
US20020019835A1 (en) 2000-06-09 2002-02-14 Reinhold Baur Metod of planning appointments and electronic organiser therefor
US7085649B2 (en) 2000-06-09 2006-08-01 Nokia Mobile Phones, Ltd. Electronic organizer
US20020052674A1 (en) 2000-08-23 2002-05-02 Ting-Mao Chang Continuous local information delivery system and method
US6895329B1 (en) 2000-10-30 2005-05-17 Board Of Trustees Of The University Of Illinois Method and system for querying in a moving object database
US20020062236A1 (en) 2000-11-22 2002-05-23 Kimitaka Murashita Reservation server, user terminal, reservation system, and reservation method
US6529136B2 (en) 2001-02-28 2003-03-04 International Business Machines Corporation Group notification system and method for implementing and indicating the proximity of individuals or groups to other individuals or groups
US6526349B2 (en) 2001-04-23 2003-02-25 Motorola, Inc. Method of compiling navigation route content
US20020188603A1 (en) 2001-06-06 2002-12-12 Baird Bruce R. Methods and systems for user activated automated searching
US7139722B2 (en) 2001-06-27 2006-11-21 Bellsouth Intellectual Property Corporation Location and time sensitive wireless calendaring
US20030004776A1 (en) 2001-06-27 2003-01-02 Ronald Perrella Location and time sensitive wireless calendaring
US20030036848A1 (en) 2001-08-16 2003-02-20 Sheha Michael A. Point of interest spatial rating search method and system
US6678613B2 (en) 2001-09-21 2004-01-13 International Business Machines Corporation Method and apparatus for notifying a user of an appointment
US6944539B2 (en) 2001-10-25 2005-09-13 Aisin Aw Co., Ltd. Information display system for use with a navigation system
US6920384B2 (en) 2001-12-25 2005-07-19 Aisin Aw Co. Ltd. Driving force control apparatus for vehicle
US20050221808A1 (en) 2002-02-01 2005-10-06 Petter Karlsson Method of automatically altering the behaviour of a wireless information device
US20030163253A1 (en) 2002-02-27 2003-08-28 Samsung Electronics Co., Ltd. Single or multiple route map matching apparatus for navigation service and method thereof
US20050075119A1 (en) 2002-04-10 2005-04-07 Sheha Michael A. Method and system for dynamic estimation and predictive route generation
US6801139B2 (en) 2002-05-02 2004-10-05 General Motors Corporation Method and system for delivering a time-efficient mobile vehicle route that encompasses multiple limited-duration events
US20030217073A1 (en) 2002-05-14 2003-11-20 Walther Dan E. Increasing the level of automation when scheduling and managing meetings
WO2003107129A2 (en) 2002-06-13 2003-12-24 Gp Ware Method and apparatus for a calendar tracking and monitoring service
US6842696B2 (en) 2002-07-01 2005-01-11 Intel Corporation Method and device for location detection for a scheduling program
US7062374B1 (en) 2002-09-18 2006-06-13 Garmin Ltd. Methods and systems to interface navigation operations
US7313767B2 (en) 2002-10-31 2007-12-25 Sun Microsystems, Inc. System and method for presenting time related data on a small screen device
US20050055353A1 (en) 2003-01-30 2005-03-10 Marx Peter Samuel Acquiring, managing, distributing, and presenting contextual data relating to a known postion for location-based services to and between users
US20040158392A1 (en) 2003-02-08 2004-08-12 Samsung Electronics Co., Ltd. Navigation apparatus and method for calculating optimum travel route using the same
US7188026B2 (en) 2003-05-12 2007-03-06 Dash Navigation, Inc. Hierarchical floating car data network
US20050027705A1 (en) 2003-05-20 2005-02-03 Pasha Sadri Mapping method and system
US20040260465A1 (en) 2003-06-13 2004-12-23 Tu Ihung S. Display method and apparatus for navigation system for searching POI and arranging listing order of POI
US20050015316A1 (en) 2003-07-02 2005-01-20 Vincenzo Salluzzo Methods for calendaring, tracking, and expense reporting, and devices and systems employing same
US20070106458A1 (en) 2003-08-18 2007-05-10 Ryotaro Iwami Navigation device
US20050096946A1 (en) 2003-10-30 2005-05-05 International Business Machines Corporation System and method for dynamically resolving travel arrangement problems based on changes in travel conditions
US20050096841A1 (en) 2003-11-03 2005-05-05 Bugra Gedik System and method for evaluating moving queries over moving objects
US20050119927A1 (en) 2003-12-02 2005-06-02 International Business Machines Corporation Accounting for traveling time within scheduling software
US20050165631A1 (en) 2004-01-28 2005-07-28 Microsoft Corporation Time management representations and automation for allocating time to projects and meetings within an online calendaring system
US20050228860A1 (en) 2004-04-12 2005-10-13 Kimmo Hamynen Methods and apparatus for geographically based Web services
US20050227712A1 (en) 2004-04-13 2005-10-13 Texas Instruments Incorporated Handset meeting assistant
US7373244B2 (en) 2004-04-20 2008-05-13 Keith Kreft Information mapping approaches
US20050278114A1 (en) 2004-06-15 2005-12-15 Ahmad Ahmad M Method and system for selecting destinations
US20060047644A1 (en) 2004-08-31 2006-03-02 Bocking Andrew D Method of searching for personal information management (PIM) information and handheld electronic device employing the same
US20060058952A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US20060218029A1 (en) 2005-03-25 2006-09-28 Microsoft Corporation Smart reminders
US7925525B2 (en) 2005-03-25 2011-04-12 Microsoft Corporation Smart reminders
US7552009B2 (en) 2005-07-14 2009-06-23 Honda Motor Co., Ltd. System and method for synchronizing data for use in a navigation system
US20070112780A1 (en) 2005-11-15 2007-05-17 Stone Gregory L Method and system to process navigation information
US20080054072A1 (en) 2005-11-17 2008-03-06 Lalitesh Katragadda Vehicle information systems and methods
US7941753B2 (en) 2006-03-31 2011-05-10 Aol Inc. Communicating appointment and/or mapping information among a calendar application and a navigation application
US7743056B2 (en) 2006-03-31 2010-06-22 Aol Inc. Identifying a result responsive to a current location of a client device
US20100241351A1 (en) 2006-03-31 2010-09-23 Aol Inc. Identifying a result responsive to a current location of a client device
US9234762B2 (en) 2006-03-31 2016-01-12 Facebook, Inc. Identifying results responsive to a future location of a client device
US20130173161A1 (en) 2006-03-31 2013-07-04 Adrienne C. Meisels Identifying a result responsive to a current location of a client device
US20080059890A1 (en) 2006-08-31 2008-03-06 Ronald Scotte Zinn Conflict checking and notification in an electronic device
US20080167938A1 (en) 2006-12-29 2008-07-10 Aol Llc Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US8489329B2 (en) 2006-12-29 2013-07-16 Facebook, Inc. Meeting notification and modification service
US8073614B2 (en) 2006-12-29 2011-12-06 Aol Inc. Meeting notification and modification service
US8364400B2 (en) 2006-12-29 2013-01-29 Facebook, Inc. Meeting notification and modification service
US20130066546A1 (en) 2006-12-29 2013-03-14 Adrienne C. Meisels Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US20130066545A1 (en) 2006-12-29 2013-03-14 Adrienne C. Meisels Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US9243911B2 (en) 2006-12-29 2016-01-26 Facebook, Inc. Meeting notification and modification service
US7869941B2 (en) 2006-12-29 2011-01-11 Aol Inc. Meeting notification and modification service
US8554476B2 (en) 2006-12-29 2013-10-08 Facebook, Inc. Meeting notification and modification service
US8554477B2 (en) 2006-12-29 2013-10-08 Facebook, Inc. Meeting notification and modification service
US8560232B2 (en) 2006-12-29 2013-10-15 Facebook, Inc. Meeting notification and modification service
US8712810B2 (en) 2006-12-29 2014-04-29 Facebook, Inc. Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US20110070872A1 (en) * 2009-09-22 2011-03-24 Telenav, Inc. Location based system with contextual locator and method of operation thereof
US20110257881A1 (en) * 2010-04-20 2011-10-20 Telenav, Inc. Navigation system with calendar mechanism and method of operation thereof

Non-Patent Citations (83)

* Cited by examiner, † Cited by third party
Title
"MapQuest Help: What is Turn-by-Turn Navigation?," reprinted from http://help.mapquest.com/jive/entryjspa?extemalID=298&categoryIDS=35 on Jul. 26, 2007, 1 page.
"Mobile Web Hop Online Anywhere on your Phone," reprinted from http://mobile.yahoo.com/mobileweb;ylt=AvZP2FpcYsq1R9iZxOpUIUnntAcJ on Jul. 26, 2007, 3 pages.
"Yahoo! Go 2.0 Improved! The Internet to Go," reprinted from http://mobile.yahoo.com/go; ylt=AqcFZ 48Qo6sCBg9mC0e6YktQcJ, on Jul. 26, 2007, 6 pages.
"Yahoo! Mobile. The Internet Now Fits Your Phone," reprinted from heep://mobile.yahoo.com/; ylt=AujFWTXXwBsSTR8HkP52L1bztAcJ on Jul. 26, 2007, 2 pages.
Canadian Office Action in App. No. 2674031 dated Sep. 23, 2014 (4 pgs).
European Office Action in App. No. 07866078.4-1955 dated Oct. 2, 2013.
Guzolek, J., and Koch, E., "Real-time Route Planning in Road Networks," 1989 IEEE, pp. 165-169.
International Search Report and Written Opinion for International Application No. PCT/US07/65714, dated Jun. 20, 2008. Application No. PCT/US07/65714, dated Jun. 20, 2008.
International Search Report with Written Opinion for International Application No. PCT/US07/89039, dated Apr. 23, 2008, 16 pages. Application No. PCT/US07/89039, dated Apr. 23, 2008, 16 pages.
Pruitt, Scarlet, "MapQuest Goes Mobile," PC World, reprinted from http://www.pcworld.com/article/id,119161-page,1/article.html on Jul. 26, 2007, 3 pages.
Sherman, C., "Google Launches Local for Mobile," SearchEngineWatch, reprinted from http://searchenginewatch.com/showPage.html?page=3561956 on Aug. 23, 2012, 4 pages.
Sherman, Chris, "Search Engine Watch: Google Launches Local for Mobile," reprinted on Sep. 11, 2006 from http://searchenginewatch.com/showPage.html?page=sewprint&id=3561956.
Singh, Bhagat, and Naps, Thomas L., Introduction to Data Structures, "The Shortest Path Algorithm," West Publishing Company, 1985, pp. 215-233.
Snyder, John P., "Map Projections-A Working Manual"; U.S. Geological Survey Professional Paper; 1987; U.S. Department of Intenor, 383 pages.
Snyder, John P., "Map Projections—A Working Manual"; U.S. Geological Survey Professional Paper; 1987; U.S. Department of Intenor, 383 pages.
U.S. Appl. No. 10/273,889, dated Apr. 16, 2004, Office Action.
U.S. Appl. No. 10/273,889, dated Aug. 10, 2005, Notice of Allowance.
U.S. Appl. No. 10/273,889, dated Jan. 24, 2005, Office Action.
U.S. Appl. No. 10/273,889, dated Sep. 10, 2003, Office Action.
U.S. Appl. No. 11/328,455, dated Dec. 19, 2006, Office Action.
U.S. Appl. No. 11/328,455, dated Jun. 26, 2007, Office Action.
U.S. Appl. No. 11/618,069, dated Dec. 31, 2008, Office Action.
U.S. Appl. No. 11/618,069, dated Jan. 5, 2010, Office Action.
U.S. Appl. No. 11/618,069, dated Jan. 5, 2011, Notice of Allowance.
U.S. Appl. No. 11/618,069, dated Jul. 22, 2009, Office Action.
U.S. Appl. No. 11/618,069, dated Jul. 9, 2010, Office Action.
U.S. Appl. No. 11/618,348, dated Apr. 14, 2009, Office Action.
U.S. Appl. No. 11/618,348, dated Feb. 8, 2010, Notice of Allowance.
U.S. Appl. No. 11/618,348, dated Jun. 3, 2008, Office Action.
U.S. Appl. No. 11/618,348, dated Nov. 13, 2008, Office Action.
U.S. Appl. No. 11/618,348, dated Sep. 23, 2009, Office Action.
U.S. Appl. No. 11/966,562, dated Apr. 9, 2010, Office Action.
U.S. Appl. No. 11/966,562, dated Sep. 7, 2010, Notice of Allowance.
U.S. Appl. No. 11/966,639, dated Aug. 17, 2011, Office Action.
U.S. Appl. No. 11/966,639, dated Feb. 1, 2012, Office Action.
U.S. Appl. No. 11/966,639, dated Jan. 22, 2014, Notice of Allowance.
U.S. Appl. No. 11/966,639, dated Mar. 16, 2011, Office Action.
U.S. Appl. No. 11/966,639, dated Oct. 7, 2010, Office Action.
U.S. Appl. No. 12/791,165, dated Aug. 31, 2011, Office Action.
U.S. Appl. No. 12/791,165, dated Dec. 11, 2015, Office Action.
U.S. Appl. No. 12/791,165, dated Dec. 12, 2014, Office Action.
U.S. Appl. No. 12/791,165, dated Feb. 2, 2012, Office Action.
U.S. Appl. No. 12/791,165, dated Feb. 22, 2013, Office Action.
U.S. Appl. No. 12/791,165, dated Jun. 18, 2012, Office Action.
U.S. Appl. No. 12/791,165, dated Jun. 2, 2016, Office Action.
U.S. Appl. No. 12/791,165, dated Jun. 3, 2013, Office Action.
U.S. Appl. No. 12/791,165, dated Jun. 6, 2014, Office Action.
U.S. Appl. No. 12/791,165, dated May 4, 2017, Notice of Allowance.
U.S. Appl. No. 12/791,165, dated Oct. 24, 2013, Office Action.
U.S. Appl. No. 12/791,165, dated Sep. 16, 2016, Office Action.
U.S. Appl. No. 12/962,357, dated Jan. 25, 2011, Office Action.
U.S. Appl. No. 12/962,357, dated Jul. 26, 2011, Notice of Allowance.
U.S. Appl. No. 13/296,130, dated Feb. 6, 2012, Office Action.
U.S. Appl. No. 13/296,130, dated May 24, 2012, Notice of Allowance.
U.S. Appl. No. 13/296,130, dated Sep. 25, 2012, Notice of Allowance.
U.S. Appl. No. 13/620,513, dated Apr. 10, 2013, Office Action.
U.S. Appl. No. 13/620,513, dated Apr. 28, 2014, Office Action.
U.S. Appl. No. 13/620,513, dated Aug. 13, 2014, Office Action.
U.S. Appl. No. 13/620,513, dated Jul. 25, 2013, Office Action.
U.S. Appl. No. 13/620,513, dated Jul. 7, 2015, Notice of Allowance.
U.S. Appl. No. 13/620,513, dated Nov. 29, 2013, Office Action.
U.S. Appl. No. 13/620,513, dated Sep. 3, 2015, Notice of Allowance.
U.S. Appl. No. 13/620,516, dated Apr. 10, 2013, Office Action.
U.S. Appl. No. 13/620,520, dated Jan. 28, 2013, Office Action.
U.S. Appl. No. 13/620,520, dated Jul. 19, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,520, dated Jun. 24, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,523, dated Jan. 29, 2013, Office Action.
U.S. Appl. No. 13/620,523, dated Jun. 20, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,525, dated Jan. 29, 2013, Office Action.
U.S. Appl. No. 13/620,525, dated Jul. 22, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,525, dated Jun. 24, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,529, dated Jan. 29, 2013, Office Action.
U.S. Appl. No. 13/620,529, dated Jun. 14, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,529, dated May 24, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,533, dated Dec. 20, 2012, Office Action.
U.S. Appl. No. 13/620,536, dated Aug. 23, 2013, Office Action.
U.S. Appl. No. 13/620,536, dated Dec. 20, 2012, Office Action.
U.S. Appl. No. 14/054,349, dated Apr. 2, 2015, Office Action.
U.S. Appl. No. 14/054,349, dated Nov. 6, 2014, Office Action.
U.S. Appl. No. 14/054,349, dated Sep. 18, 2015, Notice of Allowance.
U.S. Appl. No. 14/927,177, dated Aug. 11, 2016, Office Action.
U.S. Appl. No. 14/927,177, dated Feb. 3, 2017, Notice of Allowance.
U.S. Appl. No. 14/927,177, filed Oct. 29, 2015, Meisels et al.

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445704B2 (en) * 2014-07-31 2019-10-15 Ent. Services Development Corporation Lp Object identification and sensing
US20160364696A1 (en) * 2015-06-09 2016-12-15 International Business Machines Corporation Meeting scheduler for automated face-to-face meeting generation

Also Published As

Publication number Publication date
US7869941B2 (en) 2011-01-11
US20120059580A1 (en) 2012-03-08
US20130073198A1 (en) 2013-03-21
US20110077860A1 (en) 2011-03-31
US8560232B2 (en) 2013-10-15
US8554477B2 (en) 2013-10-08
US20160142882A1 (en) 2016-05-19
US8364400B2 (en) 2013-01-29
US20140114571A1 (en) 2014-04-24
US8489329B2 (en) 2013-07-16
US20080167937A1 (en) 2008-07-10
US9243911B2 (en) 2016-01-26
US20130073200A1 (en) 2013-03-21
US8073614B2 (en) 2011-12-06
US20130073199A1 (en) 2013-03-21
US20130073201A1 (en) 2013-03-21
US8554476B2 (en) 2013-10-08

Similar Documents

Publication Publication Date Title
US9867014B2 (en) Meeting notification and modification service
US8712810B2 (en) Reserving a time block in a calendar application to account for a travel time between geographic locations of appointments
US9146115B2 (en) Location enhanced meetings and collaboration
US20180107981A1 (en) Calendaring location-based events and associated travel
US7941753B2 (en) Communicating appointment and/or mapping information among a calendar application and a navigation application
US8355936B2 (en) Managing a travel itinerary
US9200911B2 (en) Computer-implemented system and method for social routing
US20120271676A1 (en) System and method for an intelligent personal timeline assistant
US20190303806A1 (en) Boarding management system, boarding management method, and system
US20100332282A1 (en) Orchestrating the arrival of attendees to a scheduled event
WO2008083273A9 (en) Accounting for travel time between geographic locations of appointments
JP2014029580A (en) Taxi allocation application system and allocation program
US20190114732A1 (en) Vehicle ride share assist system
JP2019175393A (en) Carpool support system, carpool support method, program and movable body
JP2004185362A (en) Automatic taxi dispatch system using mobile terminal
JP7243087B2 (en) Information processing device, information processing method and program
US20210053583A1 (en) Consideration of Driving Time Periods for Automated Driving in a Digital Appointment Calendar
JP2024111987A (en) Information processing device and information processing method
Klein et al. Temporal/Spatial Calendar Events and Triggers
EP2256462A1 (en) A context-aware route selection reminder

Legal Events

Date Code Title Description
AS Assignment

Owner name: AOL LLC, VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:COUGHLIN, STEPHEN J.;MEISELS, ADRIENNE C.;GREENBERG, STEVEN E.;SIGNING DATES FROM 20071221 TO 20071231;REEL/FRAME:037577/0716

Owner name: FACEBOOK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AOL INC.;REEL/FRAME:037591/0646

Effective date: 20120614

Owner name: AOL INC., VIRGINIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:AOL LLC;REEL/FRAME:037591/0736

Effective date: 20091204

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: META PLATFORMS, INC., CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:FACEBOOK, INC.;REEL/FRAME:058961/0436

Effective date: 20211028