Automatically book transportation based on the context of a user of a computing device

Automatically booking transport services through a computing system solves the problem of users having to remember to interact promptly, ensuring on-time arrival of on-demand transport and reducing the risk of delays.

CN114692912BActive Publication Date: 2025-09-05GOOGLE LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210212467.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2015-11-23
Filing Date
2016-08-25
Publication Date
2025-09-05
Estimated Expiration
2036-08-25

AI Technical Summary

Technical Problem

Users need to remember to interact with the on-demand transportation service promptly to ensure the vehicle arrives at the pickup location on time, and delays may prevent reaching the final destination on time.

Method used

The computing system infers travel needs based on user information, selects appropriate transportation services, and automatically requests and reserves vehicles within the predicted time to ensure that the vehicles arrive at the pick-up location on time.

Benefits of technology

Automating the booking process reduces the user's memory burden, improves the reliability of arriving at the destination on time, and reduces the risk of delays.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114692912B_ABST
    Figure CN114692912B_ABST
Patent Text Reader

Abstract

The present disclosure relates to automatically booking transportation based on the context of a user of a computing device. A system is described that infers that a user will need to complete a trip and selects a transportation service that the user can use to complete the trip. The system predicts a time to request a vehicle associated with the transportation service for completing the trip such that the request has a sufficiently high likelihood that the vehicle will arrive at a future location by a final departure time; the final departure time is the last time the user is predicted to begin traveling. In response to determining that the current time is within a threshold amount of time of the predicted time, the system sends a reservation request for a vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Description of the case

[0002] This application is a divisional application of Chinese invention patent application No. 201680062885.5, filed on August 25, 2016. Technical Field

[0003] The present disclosure relates to automatically booking transportation based on the context of a user of a computing device. Background Art

[0004] A user of a computing device can interact with an on-demand transportation service (e.g., an online taxi service) to arrange immediate transportation between locations. For example, the computing device can generate an alert when the user is about to depart for the airport. In response to the alert, the user can interact with an application executing on the computing device to book a car for travel from the current location to the airport. After a short wait, the car arrives at the pickup location, and the application can cause the computing device to output a notification informing the user that the car is waiting at the pickup location.

[0005] While on-demand transportation services offer some conveniences (e.g., price, schedule flexibility, etc.), users still need to remember to interact with the on-demand transportation service in a timely manner to ensure that the vehicle associated with the service will arrive at the pickup location and depart from there on time. Depending on traffic and other unforeseen circumstances, the vehicle often experiences delays before actually arriving at the pickup location. If the user (e.g., when he or she orders the transportation service) needs to depart immediately, this additional delay can prevent the user from arriving at the final destination on time. Summary of the Invention

[0006] In one example, the present disclosure is directed to a method that includes inferring, by a computing system based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to a future destination by a future time; selecting, by the computing system, a transportation service available to the user for completing the trip; and determining, by the computing device, a predicted time for requesting a vehicle associated with the transportation service for completing the trip. The request for the vehicle sent at the predicted time has a threshold likelihood that the vehicle will arrive at the future location by a final departure time; and the final departure time is the last time the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time. The method further includes, in response to determining that the current time is within the threshold amount of time of the predicted time for requesting the vehicle, sending, by the computing system, a reservation request for the vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service; and, in response to the computing system receiving a confirmation from the reservation system indicating that the reservation request can be fulfilled, sending, by the computing system, information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0007] In another example, the present disclosure is directed to a computing system comprising at least one processor; and at least one module operable by the at least one processor to infer, based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to a future destination by a future time; select a transportation service available to the user to complete the trip; and determine a predicted time to request a vehicle associated with the transportation service for completing the trip. The request for the vehicle sent at the predicted time has a threshold likelihood that the vehicle will arrive at the future location by a final departure time, the final departure time being the last time the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time. The at least one module operable by the at least one processor to, in response to determining that the current time is within the threshold amount of time of the predicted time to request the vehicle, send a reservation request for a vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service, and, in response to receiving confirmation from the reservation system indicating that the reservation request can be fulfilled, send information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0008] In another example, the present disclosure is directed to a computer-readable storage medium comprising instructions that, when executed, cause at least one processor of a computing system to infer, based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to a future destination by a future time; select a transportation service available to the user to complete the trip; and determine a predicted time to request a vehicle associated with the transportation service for completing the trip. The request for the vehicle sent at the predicted time has a threshold likelihood that the vehicle will arrive at the future location by a final departure time, where the final departure time is the last time the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time. The instructions, when executed, further cause the at least one processor of the computing system to, in response to determining that the current time is within the threshold amount of time of the predicted time to request the vehicle, send a reservation request for the vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service, and, in response to receiving a confirmation from the reservation system indicating that the reservation request can be fulfilled, send information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0009] The details of one or more examples are set forth in the accompanying drawings and the description below.Other features, objects, and advantages of the disclosure will be apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0010] Figure 1 is a conceptual diagram illustrating an example system for predicting a time to request a vehicle associated with a transportation service in accordance with one or more aspects of the present disclosure.

[0011] Figure 2 is a block diagram illustrating an example computing system configured to predict a time to request a vehicle associated with a transportation service, in accordance with one or more aspects of the present disclosure.

[0012] Figure 3 and 4 is a flow diagram illustrating example operations performed by an example computing system configured to predict a time to request a vehicle associated with a transportation service, in accordance with one or more aspects of the present disclosure.

[0013] Figure 5 is a flow chart illustrating example operations performed by an example computing device configured to receive information notifying a user that a vehicle associated with a transportation service is scheduled to arrive at a future location by a final departure time in accordance with one or more aspects of the present disclosure;

[0014] Figure 6A and 6Bis a conceptual diagram illustrating an example graphical user interface presented by an example computing device configured to receive information notifying a user that a vehicle associated with a transportation service is scheduled to arrive at a future location by a final departure time in accordance with one or more aspects of the present disclosure. DETAILED DESCRIPTION

[0015] In general, the techniques of the present disclosure can enable a computing system to infer (e.g., based on calendar information, communication information, and other information of a user of a computing device) when a user is likely to require an "on-demand transportation service" (or, for brevity, simply a "transportation service") to travel between locations. Examples of on-demand transportation services include any transportation service, whether commercially owned, privately owned, publicly owned, government owned, military owned, or owned and / or organized by any physical entity, that responds to individual requests to transport one or more passengers from one geographic location to another using a vehicle (e.g., an automobile, rail car, subway car, tram, streetcar, bus, taxi, coach, monorail, airplane, ferry, boat, ship, water taxi, unmanned vehicle, or any other type of transportation vehicle). As used herein, the terms "on-demand transportation service" and "transportation service" refer to those types of transportation services that will pick up a user from their current location at a specific time selected by the user and take the user to a specific location selected by the user. In other words, unlike other types of transportation services that typically require users to pre-arrange or reserve a seat and go to a designated stop, station, or other location associated with the transportation service to meet a vehicle for the transportation service at a pre-arranged departure time, on-demand transportation services provide a vehicle to a user at a specific location, often instantly, or at a specific time selected by the user. For example, the vehicle may be a driverless car (e.g., driven by a computer or machine) that picks up the user at the location and time selected by the user and takes him or her to the destination.

[0016] In some examples, the computing system can predict the best time to contact a transportation service and request a vehicle associated with the transportation service for traveling between locations, thereby increasing the chance that the vehicle will arrive at the pickup location on time and be ready to take the user to the final destination. At the predicted time, the computing system can automatically communicate with the reservation system associated with the transportation service and book the transportation service on the user's behalf. In some examples, the system can determine whether the user still wants to travel to the final destination based on the computing device's movement and / or location information, and book or avoid booking the transportation service accordingly. In some examples, the computing system can adjust the predicted time as information about the user and / or the surrounding context changes. In any case, the computing system can send information to the computing device to alert the user when and where the vehicle arranged on the user's behalf will arrive.

[0017] Throughout this disclosure, examples are described in which a computing device and / or computing system analyzes information associated with the computing device and the user of the computing device (e.g., context, location, speed, search queries, etc.) only if the computing device receives permission from the user of the computing device to analyze the information. For example, in the scenarios discussed below where a computing device may collect or utilize personal information about a user, before the computing device or computing system can collect or utilize information associated with the user, the user may be provided with an opportunity to provide input to control whether a program or feature of the computing device and / or computing system can collect and utilize user information (e.g., information about the user's current location, current speed, etc.), or to control whether and / or how the device and / or system can receive content that may be relevant to the user. Furthermore, certain data may be processed in one or more ways before it is stored or used, such that personally identifiable information cannot be determined for the user. For example, the user's identity may be processed such that personally identifiable information cannot be determined about the user, or the user's geographic location may be generalized (such as to a city, ZIP code, or state level) to prevent the user's specific location from being determined, if location information is available. Thus, a user can exercise control over how computing devices and computing systems collect and use information about the user.

[0018] Figure 1 is a conceptual diagram illustrating a system 100 as an example system for predicting the time to request a vehicle associated with a transportation service in accordance with one or more aspects of the present disclosure. System 100 includes an information server system ("ISS") 160 in communication with a transportation server system ("TSS") 180 and a computing device 110 via a network 130. ISS 160 can predict when a user of computing device 110 is likely to need to request a vehicle for the transportation service and request a vehicle through TSS 180 at a time that ISS 160 predicts is more likely to be available at the time and location the user needs. After requesting a vehicle, ISS 160 can output information to computing device 110 to alert the user that a vehicle has been scheduled, is en route, and / or has arrived at a location to take the user to their final destination.

[0019] Network 130 represents any public or private communication network, such as cellular, WiFi, and / or other types of networks for transmitting data between computing devices. Network 130 may include one or more network hubs, network switches, network routers, etc., which are operatively coupled to each other to provide information exchange between ISS 160, TSS 180, and computing devices 110. Computing devices 110, TSS 180, and ISS 160 may transmit and receive data across network 130 using any suitable communication technology.

[0020] ISS 160, TSS 180, and computing device 110 may each be operatively coupled to network 130 using corresponding network links. The links coupling computing device 110, TSS 180, and ISS 160 to network 130 may be Ethernet, ATM, or other types of network connections, and such connections may be wireless and / or wired.

[0021] Computing device 110 represents an individual mobile or non-mobile device. Examples of computing device 110 include mobile phones, tablet computers, laptop computers, desktop computers, servers, mainframes, set-top boxes, televisions, wearable devices (e.g., computerized watches, computerized glasses, computerized gloves, etc.), home automation devices or systems (e.g., smart thermostats or home assistants), personal digital assistants (PDAs), portable gaming systems, media players, e-book readers, mobile television platforms, car navigation and entertainment systems, or any other type of mobile, non-mobile, wearable, and non-wearable computing device configured to receive information via a network such as network 130.

[0022] The computing device 110 includes a user interface device (UID) 112 and a user interface (UI) module 120. In addition, the computing device 110 includes a notification module 122. The modules 120-122 can perform the described operations using software, hardware, firmware, or a mixture of hardware, software, and firmware that resides on and / or executes on the respective computing device 110. The computing device 110 can utilize multiple processors or multiple devices to execute the modules 120-122. The computing device 110 can execute the modules 120-122 as virtual machines executing on the underlying hardware. The modules 120-122 can be executed as one or more services of an operating system or computing platform. The modules 120-122 can be executed as one or more executable programs at the application layer of the computing platform.

[0023] The UID 112 of the computing device 110 can function as an input device and / or output device for the computing device 110. The UID 112 can be implemented using various technologies. For example, the UID 112 can function as an input device for a presence-sensitive input screen, such as a resistive touch screen, a surface acoustic wave touch screen, a capacitive touch screen, a projected capacitive touch screen, a pressure-sensitive screen, a sound pulse recognition touch screen, or another presence-sensitive display technology. Additionally, the UID 112 can include microphone technology, infrared sensor technology, or other input device technology for use in receiving user input.

[0024] The UID 112 may function as an output (e.g., display) device using any one or more display devices, such as a liquid crystal display (LCD), a dot matrix display, a light emitting diode (LED) display, an organic light emitting diode (OLED) display, electronic ink, or similar monochrome or color display capable of outputting visual information to a user of the computing device 110. Additionally, the UID 112 may include speaker technology, haptic feedback technology, or other output device technology for use in outputting information to the user.

[0025] Each UID 112 may include a corresponding presence-sensitive display that can receive tactile input from a user of the computing device 110. The UID 112 may receive an indication of the tactile input by detecting one or more gestures from the user (e.g., the user touching or pointing to one or more locations of the UID 112 with a finger or stylus). The UID 112 may, for example, present output to the user on a corresponding presence-sensitive display. The UID 112 may present the output as a graphical user interface (e.g., user interface 114) associated with the functionality provided by the computing device 110. For example, the UID 112 may present various user interfaces (e.g., user interface 114) related to the search functionality provided by the query module 122 or other features of a computing platform, operating system, application, and / or service (e.g., an electronic messaging application, an Internet browser application, a mobile or desktop operating system, etc.) executed on or accessible from the computing device 110.

[0026] UI module 120 can manage user interactions with UID 112 and other components of computing device 110. UI module 120 can cause UID 112 to output a user interface, such as user interface 114 (or other example user interfaces), for display when a user of computing device 110 views the output and / or provides input at UID 112. UI module 120 and UID 112 can receive one or more indications of input from the user as the user interacts with the user interface, at different times, and when the user and computing device 110 are in different locations. UI module 120 and UID 112 can interpret input detected at UID 112 and can relay information about the input detected at UID 112 to one or more associated platforms, operating systems, applications, and / or services executing at computing device 110, e.g., to cause computing device 110 to perform functions.

[0027] UI module 120 may receive information and instructions from one or more associated platforms, operating systems, applications, and / or services executing at computing device 110 and / or one or more remote computing systems such as ISS 160 and / or TSS 180. In addition, UI module 120 may act as an intermediary between one or more associated platforms, operating systems, applications, and / or services executing at computing device 110 and various output devices (e.g., speakers, LED indicators, audio or electrostatic tactile output devices, etc.) of computing device 110 to generate output (e.g., graphics, flashing lights, sounds, tactile responses, etc.) utilizing computing device 110.

[0028] exist Figure 1 In the example of FIG10 , user interface 114 is a graphical user interface associated with a prediction service generated by ISS 160 and accessed by computing device 110. As described in detail below, user interface 114 includes graphical information (e.g., text, images, etc.) that represents information that ISS 160 predicts a user of computing device 110 may need to be alerted to regarding a vehicle that ISS 160 has requested on the user's behalf. User interface 114 may include various other types of graphical indications, such as a visual depiction of the predicted information that a user of computing device 110 may need to be alerted to regarding a vehicle that ISS 160 has requested on the user's behalf. UI 120 may cause UID 112 to generate user interface 114 based on data received by UI module 120 from ISS 160 via network 130. UI module 120 may receive as input from ISS 160 graphical information (eg, textual data, image data, etc.) for presenting user interface 114 , along with instructions from ISS 160 for presenting graphical information within user interface 114 at UID 112 .

[0029] Notification module 122 performs functions related to notification management for computing device 110. Notification module 122 can receive information (e.g., notification data) from applications and services executed on computing device 110, as well as notification-related data from ISS 160, and in response can output notifications of the information to UI module 120 for presentation on UID 122. Notification module 120 can receive notification data from a prediction service provided by ISS 160 and accessed by computing device 110. The prediction service can send notification data to notification module 122, including information for alerting the user of computing device 110 regarding a vehicle associated with a transportation service integrated with TSS 180 that ISS 160 has requested on behalf of the user. Notification module 120 can format the vehicle information received from ISS 160 and output an indication of the formatted vehicle information (e.g., as text and / or a graphical image) to UI module 120 for presentation on UID 122 (e.g., as user interface 114).

[0030] As used throughout this disclosure, the term "notification data" is used to describe various types of information that may indicate the occurrence of events associated with various platforms, applications, and services executing within an execution environment at one or more computing devices, such as computing device 110. For example, notification data may include, but is not limited to, information specifying events such as: receipt of a communication message (e.g., email, instant message, SMS, etc.) by a messaging account associated with the computing device, receipt of information by a social networking account associated with computing device 110, calendar events (meetings, appointments, etc.) associated with a calendar account of computing device 110, information generated and / or received by a third-party application executing at computing device 110, transmission and / or receipt of inter-component communications between two or more components of a platform, application, and / or service executing at computing device 110, and the like. In addition to including information regarding specific events such as the various events described above, notification data may include various attributes or parameters embedded within the notification data that specify various characteristics of the notification data. For example, notification data may include data portions (e.g., digits, metadata, fields, etc.) that specify the origin of the notification data (e.g., the platform, application, and / or service that generated the notification data), a priority level, a time to output an alert associated with the notification data, or other characteristics.

[0031] ISS 160 and TSS 180 represent any suitable remote computing systems capable of sending and receiving information to and from a network, such as network 130, such as one or more desktop computers, laptop computers, mainframe computers, servers, cloud computing systems, etc. ISS 160 hosts (or at least provides access to) a prediction system that predicts when a user of computing device 110 is likely to need a vehicle associated with a transportation service, and TSS hosts (or at least provides access to) a reservation system associated with a transportation service from which ISS 160 can reserve a vehicle on behalf of the user.

[0032] Computing device 110 may communicate with ISS 160 via network 130 to access the forecasting system provided by ISS 160 and, in doing so, indirectly access the reservation system provided by TSS 180. In some examples, computing device 110 may communicate with TSS 180 via network 130 to directly access the reservation system provided by TSS 180. In some examples, ISS 160 and / or TSS 180 represent cloud computing systems that provide access to forecasting and reservation systems as services accessible via the cloud.

[0033] exist Figure 1 In the example of FIG1 , TSS 180 includes a reservation module 182 that performs operations related to a reservation service that TSS 180 enables to be accessed by ISS 160, computing device 110, and other computing devices connected to network 130 for requesting and reserving vehicles associated with a transportation service. Module 182 may perform the described operations using software, hardware, firmware, or a combination of hardware, software, and firmware that resides on and / or executes at TSS 180. TSS 180 may utilize multiple processors or multiple devices to execute module 182 as a virtual machine executing on underlying hardware and / or as one or more services of an operating system or computing platform. In some examples, module 180 may be executed as one or more executable programs at the application layer of a computing platform running on TSS 180.

[0034] Module 182 may perform operations for scheduling and providing status updates, as well as handling other information associated with the transportation service. For example, TSS 180 may receive a request for a vehicle associated with an on-demand transportation service via network 130. The request may specify a pickup location and a pickup time at which the vehicle is to pick up a user of computing device 110 to transport the user to a final destination. In response to the request, TSS 180 may, for example, input the request into a workstation or interact with some other scheduling system associated with the transportation service to notify a driver associated with the transportation service at the requested pickup time and location to schedule a vehicle. TSS 180 may respond to the request by sending a confirmation via network 130 in response to determining that the vehicle is available at the pickup location at the requested time, indicating that the reservation request can be fulfilled.

[0035] exist Figure 1 In the example of FIG1 , ISS 160 includes a context module 162 and a prediction module 164. Modules 162 and 164 collectively provide a prediction service that can be accessed by computing device 110 and other computing devices connected to network 130 to predict when a user of computing device 110 is likely to need a vehicle associated with a transportation service. Modules 162 and 164 can perform the described operations using software, hardware, firmware, or a combination of hardware, software, and firmware resident and / or executed on ISS 160. ISS 160 can utilize multiple processors or multiple devices to execute modules 162 and 164 as virtual machines executing on underlying hardware and / or as one or more services of an operating system or computing platform. In some examples, modules 162 and 164 can be executed as one or more executable programs at the application layer of a computing platform on ISS 160.

[0036] Context module 162 of ISS 160 may process and analyze context information associated with computing device 110 to define a context for computing device 110. The context for computing device 110 may specify one or more characteristics associated with a user of computing device 110 and his or her physical and / or virtual environment at various locations and times. For example, context module 162 may determine, as the context for computing device 110, a physical location associated with computing device 110 at a particular time based on context information associated with computing device 110 from that particular time. As the context information changes (e.g., based on sensor information indicating movement over time), context module 162 may update the determined physical location within the context of computing device 110.

[0037] The types of information that define the context of a computing device for a particular location and / or time are too numerous to list. As some examples, the context of a computing device may specify: location, movement trajectory, direction, speed, name of facility, name of connection, type of venue, building, weather conditions, and traffic conditions at various locations and times. The context of a computing device may further include calendar information defining meetings or events associated with various locations and times, web page addresses viewed at various locations and times, text input (e.g., search or browsing history) made in data fields of web pages viewed at various locations and times, and other application usage data associated with various locations and times. The context of a computing device may further include information about audio and / or video streams accessed by the computing device at various locations and times, television or cable / satellite broadcasts accessed by the computing device at various locations and times, and information related to other services accessed by the computing device at various locations and times.

[0038] As used throughout this disclosure, the term "contextual information" is used to describe information that can be used by a computing system and / or computing device, such as ISS 160 and computing device 110, to define one or more physical and / or virtual environmental characteristics associated with the computing device and / or the user of the computing device, in addition to one or more observable physical or virtual actions taken by a user of the computing device at a particular time. In other words, contextual information represents any data that can be used by a computing device and / or computing system to determine a "user context," which indicates the environment that forms the virtual and / or physical experience experienced by the user at a particular location at a particular time. Examples of contextual information include past, current, and future physical locations, extent of movement, magnitude of change associated with movement, weather conditions, traffic conditions, travel patterns, movement patterns, application usage, calendar information, purchase history, internet browsing history, and the like. In some examples, context information may include sensor information obtained from one or more sensors (e.g., gyroscopes, accelerometers, proximity sensors) of a computing device, such as computing device 110, radio transmission information obtained from one or more communication units and / or radios (e.g., Global Positioning System (GPS), cellular, Wi-Fi), information obtained from one or more input devices (e.g., camera, microphone, keyboard, touchpad, mouse) of the computing device, and network / device identifier information (e.g., network name, device Internet Protocol address). In some examples, context information may include communication information, such as information derived from email messages, text messages, voicemail messages or voice conversations, calendar entries, task lists, information related to social media networks, and any other information related to a user or computing device that can support the determination of user context.

[0039] Context module 162 may maintain a history of past and future contexts associated with a user of computing device 110. Context module 162 may register and record previous contexts of computing device 110 at various locations and times in the past, and may project or infer future contexts of the computing device at various future locations and times from the previously recorded contexts. Context module 162 may associate future dates and times with recurring contexts from previous dates and times, thereby building a history of future contexts associated with the user of computing device 110.

[0040] For example, information included in the past context history of computing device 110 may indicate a user's location during a typical work week as the user traveling along a typical route between work and home. Based on the past context history, context module 162 may generate information including information indicating the user's expected location during the coming week, which mirrors the actual location recorded in the past context history. Furthermore, context module 162 may include additional information in the context history, such as how far the user typically walks from different locations and drives between different locations. In other words, this information may be used to infer that a preferred walking distance is preferred over a user's preferred driving distance.

[0041] Context module 162 can supplement the future context history associated with the user of computing device 110 with information stored on an electronic calendar or mined from other communications associated with computing device 110. For example, an electronic calendar may include a location associated with an event or appointment occurring at a future time or date when the user is typically at home. Rather than including the home location as a future context history or a potentially expected location during the future time or date of the event, context module 162 can infer that the user will be attending the event and include the event location as an expected location during the future time or date of the event.

[0042] Context module 162 can share past and future context history with prediction module 164, and prediction module 164 can use the past and future location history to better predict, infer, or confirm when the user of the computing device may need to request an on-demand transportation service to travel to a future destination. Context module 162 can respond to a request from prediction module 164 of ISS 160 for a current context associated with computing device 110 and / or a future context associated with computing device 110 by outputting data specifying the current or future context of computing device 110 to prediction module 164.

[0043] Based on the past, current, and future contexts determined by context module 162, prediction module 164 of ISS 160 can learn and predict past, current, and future actions that a user of a computing device, such as computing device 110, may perform for each different scenario. For example, prediction module 164 can determine when the user of computing device 110 is likely to require a vehicle associated with a transportation service based on the future context of computing device 110. Prediction module 164 can determine that if the distance between two locations in the future context is greater than a typical distance for a user to walk and less than a typical distance for a user to fly or take a train, the user may require on-demand transportation services to travel between the two locations. Prediction module 164 can output information regarding the predictions to computing device 110 (e.g., for eventual presentation to the user). For example, prediction module 164 can send data to computing device 110 that causes computing device 110 to alert the user when a vehicle associated with the transportation service has been reserved on behalf of the user.

[0044] Prediction module 164 is described in greater detail with respect to the accompanying figures. In summary, prediction module 164 can use machine learning and / or other artificial intelligence techniques to learn and model actions typically taken by users of computing device 110 and other computing devices in response to different contexts. By learning and modeling actions in response to different contexts, prediction module 164 can generate one or more rules for predicting actions taken by users of computing device 110 in response to different contexts. For example, prediction module 164 can predict what the user is currently doing in the current context based on the current context received from context module 162, and can predict what the user will do in the future context based on the future context received from context module 162.

[0045] As one example, prediction module 164 may infer that a user is "driving to work" or "commuting home" when computing device 110 moves along a particular travel route on a particular day. As another example, prediction module 164 may determine that a user is watching a particular broadcast when computing device 110 is in the user's living room on a Sunday afternoon in the fall or winter. As yet another example, prediction module 164 may predict that a user is sleeping when computing device 110 is stationary for extended periods of time during the late evening or early morning hours of the day. As another example, prediction module 164 may predict that a user is moving through a security gate when the computing device is in line at an airport. And as yet another example, prediction module 164 may predict that a user is heading to their next scheduled meeting when computing device 110 moves down a flight of stairs at a work location at a particular time of day.

[0046] By learning and modeling the actions a user might take in future situations, prediction module 164 can determine useful information that might assist the user of computing device 110 in successfully performing the future action. Prediction module 164 can automatically output notification data or other information to notification module 122 of computing device 110 to alert the user of the predicted information. For example, the information sent by prediction module 164 to notification module 122 can cause computing device 110 to output graphical user interface 114 on UID 112.

[0047] According to the techniques of this disclosure, ISS 160 can infer, based on information associated with a user of computing device 110, that the user will need to complete a trip by traveling from a future location to a future destination by a future time. For example, context module 162 can determine from email messages, an electronic calendar, and / or other information obtained about the user of computing device 110 that the future context of computing device 110 causes the user to be at a particular restaurant at 6 PM on a given weekday. Context module 162 can further determine, based on the context history of computing device 110, that the user of computing device 110 typically travels from home to work until 5:30 PM on that particular weekday. Prediction module 164 can receive the two future contexts determined by context module 162 and determine that the user will likely need to make a trip and travel from home to reach the restaurant by 6 PM.

[0048] ISS 160 may select a transportation service that the user can use to complete the trip. For example, prediction module 164 may determine that the location of the restaurant is outside the typical distance that the user would walk from his or her home and within the typical distance that the user would likely use an on-demand transportation service (e.g., a bus, taxi, etc.). Accordingly, prediction module 164 may determine that the user will want to use a transportation service to complete the trip to the restaurant location.

[0049] ISS 160 determines a predicted time to request a vehicle associated with the transportation service for completing the trip. Specifically, prediction module 164 may determine the final departure time as the last time the user is predicted to need to start traveling from the future location (e.g., home) to complete the trip and arrive at the future location (e.g., the restaurant) by a future time (e.g., 6 PM). Using the final departure time as a guide, prediction module 164 may predict a time to request a vehicle associated with the on-demand transportation service, such that the request is sent at a predicted time that has a threshold likelihood (e.g., defined as a score, probability, or percentage) that the vehicle will arrive at the future location before the final departure time (e.g., 90 percent, 50 percent, a score greater than zero, a positive score, etc.). In other words, ISS 160 may predict the optimal time to contact TSS 180 to increase the chance that a vehicle associated with the transportation service will be available and waiting for the user at the time and place the user needs it.

[0050] For example, the prediction module 164 can determine a time window for booking a transportation service that will ensure that a vehicle is waiting when the user wants or needs to start traveling. The prediction module 164 can input the home and restaurant locations into a rule-based model or navigation rules to determine an estimated travel time (e.g., twenty minutes) between the home and restaurant locations. To determine the predicted time, the prediction module 164 can subtract the estimated travel time from the future time that the prediction module 164 determines the user needs to be at the future location, and further subtract the typical wait time experienced by the requested vehicle associated with the transportation service at that particular time. For example, the prediction module 164 may determine that the estimated travel time is only twenty minutes, but because vehicles associated with the transportation service typically take five to ten minutes to arrive at a pickup location near the user's home between 5 PM and 6 PM on weekdays, the request should be sent to the TSS 180 at 5:30 PM instead of 5:40 PM, allowing the requested vehicle ample time to arrive at the pickup location on time.

[0051] In some examples, the prediction module 164 may update the predicted time. For example, the prediction module 164 may further adjust the predicted request time based on other considerations, such as the time the user will take the vehicle, avoiding price increases, avoiding busy times when there are fewer vehicles, avoiding or adjusting for changes in traffic, avoiding or adjusting for recurring traffic jams, and the like.

[0052] As additional examples of how prediction module 164 may update the predicted time, context module 162 may provide additional information about the user's context, updated traffic information, updated weather information, and other information that can change the output of the rules used by prediction module 164 to determine the optimal time to request a vehicle. For example, if an accident occurs along the vehicle's intended route of travel after prediction module 164 has determined the predicted time, prediction module 164 may predict, based on the updated information from context module 162, that the user will need to leave earlier and therefore adjust the predicted time to allow for more travel time.

[0053] In response to determining that the current time is within a threshold amount of time of the predicted time to request a vehicle, ISS 160 may send a request for a reservation of a vehicle associated with the transportation service for completing the trip to reservation module 182. For example, before the predicted time, prediction module 164 may automatically (i.e., without user intervention) format a communication message for TSS 180 to include an indication (e.g., data) of a request for a vehicle to transport the user from his home to the restaurant and send the request to reservation module 182. In some examples, prediction module 164 may send the request at the predicted time, and in other examples, prediction module 164 may send the request within a threshold amount of time (e.g., one or more of seconds, minutes, hours, days, etc.) before or after the predicted time.

[0054] In response to receiving confirmation from reservation module 182 indicating that the reservation request can be fulfilled, ISS 160 can send information to computing device 110 notifying the user that a vehicle is scheduled to arrive at the future location before the final departure time. For example, prediction module 164 can receive data from TSS 180 indicating that a vehicle is scheduled and en route. This data may include an indication of an expected arrival time at the user's home location. Prediction module 164 can send notification information to computing device 110 to cause computing device 110 to alert the user about the scheduled vehicle. For example, this notification information can cause computing device 110 to present user interface 114 when the user should leave and take a vehicle. This user interface can include example text indicating, "We have arranged a car for you to take from your current location to the location of your next meeting—begin traveling to the front entrance to meet the car at the curb."

[0055] Thus, users of computing devices using the example prediction services provided by the example systems described herein no longer need to remember to book on-demand transportation services to reach their final destination. Furthermore, even if the user remembers to book on-demand transportation when they are about to depart, the user does not need to worry about or be affected by unforeseen circumstances that could cause the vehicle to arrive late at the pickup location or otherwise prevent the user from reaching their final destination on time. An example computing system in accordance with the teachings of this disclosure can automatically determine, without user intervention, whether a user will need to book on-demand transportation services and, if so, automatically reserve the service at a predicted time that increases the chances that the vehicle will arrive early enough for the user to arrive at their final destination on time. As a result, the user need not even worry about whether they need to book transportation; the system will automatically book transportation, allowing the user to be less stressed and spend less time making travel plans.

[0056] By automatically scheduling a user's on-demand trip at just the right time, the example system can enable a computing device to receive less input from the user regarding searching for information and booking on-demand transportation. Because there is less input from the user, the example system can enable the computing device to conserve energy and use less battery power compared to other systems that only provide the system with the ability to manually book on-demand transportation.

[0057] Figure 2 is a block diagram illustrating an ISS 260 as an example computing system configured to predict the time to request a vehicle associated with a transport in accordance with one or more aspects of the present disclosure. Figure 1 A more detailed example of ISS 160 is given below. Figure 1 The description is made in the context of the system 100. Figure 2 Only one particular example of an ISS 260 is illustrated, and many other examples of an ISS 260 may be used in other instances and may include a subset of components included in the example ISS 260 or may include components not included in the example ISS 260. Figure 2 Additional components shown in .

[0058] ISS 260 provides a channel for computing devices such as computing device 110 to access predictive services to automatically manage on-demand transportation vehicles to ensure that the transportation service's vehicles are ready and waiting at the reserved pickup location when the user needs to begin traveling to the final destination. Figure 2As shown in the example of FIG, ISS 260 includes one or more processors 270, one or more communication units 272, and one or more storage devices 274. The storage device 274 of ISS 260 includes a context module 262 and a prediction module 264. Within the prediction module 264, the storage device 274 includes a transport module 266. If nothing more, the modules 262 and 264 include at least one of the following components: Figure 1 Modules 162 and 164 have the same functions.

[0059] The storage device 274 of the ISS 260 further includes a user information data store 268A, a context history data store 268B, a rules data store 268C, and a transportation service data store 268D (collectively, "data store 268"). A communication channel 276 can interconnect each of the components 270, 272, and 274 to facilitate inter-component communication (physically, communicatively, and / or operationally). In some examples, the communication channel 276 can include a system bus, a network connection, an inter-process communication data structure, or other methods for communicating data.

[0060] The one or more communication units 272 of the ISS 260 may communicate with the user via a communication interface such as Figure 1 and / or receive network signals over one or more networks of the network 130. Figure 1 10. The ISS 260 may communicate with computing devices external to the computing device 110 of the ISS 260. For example, the ISS 260 may use the communication unit 272 to transmit and / or receive radio signals across the network 130 to exchange information with the computing device 110 and / or the TSS 180. Examples of the communication unit 272 include a network interface card (e.g., such as an Ethernet card), an optical transceiver, a radio frequency transceiver, a GPS receiver, or any other type of device capable of sending and / or receiving information. Other examples of the communication unit 272 may include a shortwave radio, a cellular data radio, a wireless Ethernet radio, and a universal serial bus (USB) controller.

[0061] Storage device 274 can store information for processing during operation of ISS 260 (e.g., ISS 260 can store data accessed by modules 262, 264, and 266 during execution at ISS 260). In some examples, storage device 274 is temporary storage, meaning that the primary purpose of storage device 274 is not long-term storage. Storage device 274 on ISS 260 can be configured as volatile memory for short-term storage of information and, therefore, does not retain stored contents when powered off. Examples of volatile memory include random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), and other forms of volatile memory known in the art.

[0062] In some examples, storage device 274 also includes one or more computer-readable storage media. Storage device 274 can be configured to store larger amounts of information than volatile memory. Storage device 274 can further be configured as non-volatile memory space for long-term storage of information and retain information after power-on / power-off cycles. Examples of non-volatile memory include magnetic hard disks, optical disks, floppy disks, flash memory, or in the form of electrically programmable memory (EPROM) or electrically erasable and programmable memory (EEPROM). Storage device 274 can store program instructions and / or data associated with modules 262, 264, and 266.

[0063] One or more processors 270 can implement functions and / or execute instructions within ISS 260. For example, processor 270 on ISS 260 can receive and execute instructions stored on storage device 274 that perform the functions of modules 262, 264, and 266. These instructions executed by processor 270 can cause ISS 260 to store information on storage device 274 during program execution. Given previous actions by other users of other computing devices with respect to the same context, processor 270 can execute the instructions of modules 262, 264, and 266 to predict whether the user of a computing device will be able to take future actions with respect to various contexts, and automatically provide information based on this prediction to the other computing devices. In other words, modules 262, 264, and 266 can be operated by processor 270 to perform various actions or functions of ISS 270 as described herein.

[0064] The information stored in data store 268 may be searchable and / or categorized. For example, one or more modules 262, 264, and 266 may provide input requesting information from one or more data stores 268 and, in response to the input, receive information stored in data store 268. Information server system 260 may provide access to information stored in data store 268 as a cloud-based data access service to devices connected to network 130, such as computing device 110. When data store 268 contains information associated with an individual user, or when the information is generalized across multiple users, any personally identifiable information linking the information back to the individual, such as name, address, telephone number, and / or email address, may be removed before storage in information server system 260. Information server system 260 may further encrypt the information stored in data store 268 to prevent access to any information stored therein. Furthermore, information server system 260 may only store information associated with computing device users if the users of those users have affirmatively consented to such information collection. The information server system 260 may further provide the user with an opportunity to revoke consent, and in such event, the information server system 260 may cease collecting or otherwise retaining information associated with that particular user.

[0065] Data storage 268A represents a device for storing data related to, for example, Figure 1 The user information data store 268A and the transportation service data store 268D may be managed primarily by the prediction module 264 and may be part of or separate from the contextual history data store 268B generally managed by the context module 262.

[0066] The user information data store 268A may include data related to, for example, Figure 1The user information data store 268A may include one or more searchable databases or data structures that organize different types of information associated with individual users of computing devices such as computing device 110. In some examples, the user information data store 268A includes information related to the user's search history, email messages, text-based messages, voice messages, social network information, photos, application data, application usage information, purchase history, and any and all other information associated with the user or the user's interactions with a computing device such as computing device 110. The user information stored in the data store 268A may be searchable. For example, the context module 262 may provide a specific date and / or time of day as input to the data store 268A and receive as output user information related to the input. For example, the context module 262 may provide a specific day as input and receive information related to a flight indicated in a reservation confirmation email for the user of the computing device 110. Alternatively, as another example, the context module 262 may receive an indication of a keyword query (e.g., a string of characters) and output reservations, purchases, etc. associated with the keyword.

[0067] Data store 268B represents any suitable storage medium for storing a searchable contextual history including contextual information (e.g., location, time of day, weather information, traffic information, navigation information, device status information, user information, etc.) organized by date and time. Data store 268B may include past contextual history and / or future contextual history. Information server system 260, and in particular context module 262, may collect contextual information associated with computing devices, such as computing device 110, and store the collected contextual information in data store 268B. Context module 262 may rely on the information stored in context history data store 268B to determine the context of a user or computing device, such as computing device 110.

[0068] Data store 268C may store rules (e.g., a machine learning system or artificial intelligence system associated with prediction module 264) for predicting actions that a user of a computing device may take in response to various scenarios, as well as other information used to increase the likelihood or improve the probability that the user will complete the predicted action. Data store 268C may receive a scenario as input and provide as output a predicted action that the user will take in that scenario. For example, inputting a user's future scenario for a particular day may cause data store 268C to output an indication that the user will require on-demand transportation services on that particular day.

[0069] The data store 268C may store other rules for determining the time, location, and other information that the ISS 260 needs to make a prediction for the user and provide information to the user, thereby increasing the likelihood that the user will be able to complete the predicted action. For example, in response to inputting an indication into the data store 268C that the user will need to take on-demand transportation on a particular day, the data store 268C may output an indication of a predicted time having a likelihood that satisfies a threshold (e.g., greater than fifty percent, etc.) that a vehicle associated with the transportation service will arrive at a future location defined in the future context before a final departure time defined in the future context.

[0070] The transportation service data store 268D can store information related to on-demand information services that users of computing devices can use to travel between locations. The information included in the data store 268D includes, but is not limited to, time-related information (e.g., typical response times for various geographic regions on different calendar days), transportation costs, different categories or levels of service and associated costs and response times associated with each, and other information. Other information stored in the data store 268D can include predicted trip durations between various locations, predicted travel routes between locations, market price fluctuations for on-demand transportation services, and other information related to on-demand transportation services. The prediction module 264 can rely on the information stored in the rules data store 268C and the information stored in the transportation service data store 268D to provide predicted on-demand transportation services to users of computing devices such as computing device 110.

[0071] Transportation module 266 can access information stored in transportation service data store 268D in response to a request for transportation service-related information from prediction module 264. For example, when evaluating the time to request a vehicle associated with an on-demand transportation service, prediction module 264 can query transportation module 266 for an estimated travel duration between two geographic locations associated with the on-demand transportation service for completing the trip between the two locations. In response to the request, transportation module 266 can provide prediction module 264 with information stored in data store 268D in response to the request (e.g., distance, travel time, etc.).

[0072] After sending a reservation request to the on-demand transportation service, before a vehicle associated with the on-demand transportation service is predicted to arrive at the future location, prediction module 264 can query transportation module 266 for an estimated booking delay associated with the on-demand transportation service. In response to the request, transportation module 266 can provide prediction module 264 with an amount of time that typically passes before a vehicle associated with the on-demand transportation service arrives at the future location after the request for the vehicle is submitted to the transportation service's reservation system.

[0073] Prediction module 264 can query transportation module 266 for time periods typically associated with price increases associated with transportation services. In response to the request, transportation module 266 can provide prediction module 264 with various times and dates to avoid booking on-demand transportation services, thereby avoiding price increases.

[0074] In operation, ISS 260 may infer, based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to a future destination before a future time. For example, prediction module 264 may receive an indication of two future contexts associated with a user of computing device 110. The first of the two future contexts may indicate that the user is about to end a work meeting mentioned in the user's electronic calendar, and the second of the two future contexts may indicate that the user will begin a meeting at a location across town in one hour.

[0075] Prediction module 264 can query transportation module 266 for travel information between two locations. Transportation module 266 can query data store 268D for an estimated travel distance, estimated travel duration, and other information related to a trip using an on-demand transportation service between the two locations, and send this information to prediction module 264. Prediction module 264 can determine that the location of the final destination is greater than a minimum distance threshold (e.g., two blocks, half a mile, half a kilometer, etc.) from other future locations and less than a maximum distance threshold (e.g., 100 miles, 200 kilometers, etc.) from other future locations. In particular, the minimum distance threshold can be based at least in part on a first maximum distance that the user typically walks (e.g., a few blocks, approximately a mile, or several kilometers), and the maximum distance threshold can be based at least in part on a second maximum distance that the user typically drives (e.g., a few miles or kilometers). The maximum and minimum thresholds can be based on contextual history information, which includes a history of locations and additional information related to how far the user typically walks and drives between locations. As long as the distance between two locations falls between the maximum and minimum distance thresholds, prediction module 164 may determine that the user will want to ride the on-demand travel service between the two locations.

[0076] ISS 260 can select a transportation service that the user can use to complete the trip. For example, after determining that the user will want to take an on-demand travel service, prediction module 264 can query transportation module 266 for information about different on-demand transportation services that can transport the user between future locations and deliver the user to the final destination on time. Transportation service module 266 can query data store 268D for information about transportation services that can complete the trip. In some examples, transportation module 266 can rank various transportation services based on price, satisfaction level, and other characteristics indicated by information stored in data store 268D. Transportation service module 266 can send the various available transportation services and their associated rankings to prediction module 264. Prediction module 264 can select a transportation service based on the information provided by transportation service module 266. In some examples, prediction module 264 can select the lowest-cost service from one or more available services that the user can use to complete the trip. For example, prediction module 264 can access pricing information for two or more different on-demand transportation services, compare the pricing of the two or more services, and automatically select the service with the lowest price.

[0077] The ISS 260 may determine a predicted time to request a vehicle associated with a transportation service for completing a trip, wherein a request for a vehicle sent at the predicted time has a likelihood, satisfying a threshold, that the vehicle will arrive at the future location before a final departure time, where the final departure time is the last time the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination before the future time. For example, the prediction module 264 may determine from the first of the two future scenarios indicated above that a work meeting mentioned in the user's electronic calendar ends at a first time, and a second meeting mentioned in the work calendar begins at a second time, and that there is approximately one hour between the first time and the second time.

[0078] Based on information obtained from transportation module 266, prediction module 264 can determine that the estimated trip duration associated with the on-demand transportation service between the two meetings, when the user will need to travel, is approximately forty minutes. Furthermore, based on information obtained from transportation module 266, prediction module 264 can determine that the selected transportation service typically takes half an hour to arrive at the first location (e.g., the pickup location) to transport the user to the second location, when the user will need to travel. Thus, prediction module 264 can determine that a request for the on-demand transportation service can be sent to TSS 180 at least one hour and ten minutes before the user needs to arrive at the second location. Prediction module 264 can determine that the user is even more likely to arrive at the second location in time for the meeting by sending a request to the on-demand transportation service even earlier than one hour and ten minutes before the meeting (e.g., up to and including one and a half hours, such that the vehicle arrives at the pickup location at the end of the first meeting).

[0079] In some examples, prediction module 264 may determine the predicted time for requesting a vehicle by determining that the predicted time coincides with a period determined to be associated with a market price increase associated with the transportation service, and adjusting the predicted time to avoid that period. In other words, before sending the request to TSS 180, prediction module 264 may query transportation module 266 for an indication of whether the predicted time (e.g., one and a half hours before the second meeting) coincides with a price increase period for the on-demand transportation service. A price increase period may be a time of day when demand for on-demand transportation services exceeds availability, and therefore, the price of booking a service during the price increase period is significantly higher than booking a similar service at an earlier or later time. Transportation module 266 may maintain a price history of various available services over time, including predictions of when future time periods will coincide with price increase periods (e.g., during holiday periods when many people are returning home, during rush hour traffic, during average travel times, etc.). In response to transportation module 266 providing information indicating that the predicted time does coincide with a price increase, prediction module 264 may adjust the predicted time to avoid the price increase. For example, the prediction module 264 may request a vehicle earlier or later while still attempting to meet the requirement to transport the user to the second meeting on time.

[0080] In some examples, in response to determining that the predicted time overlaps with a period typically associated with a market price increase for transportation services, ISS 160 may select a particular type of on-demand transportation service to obtain the lowest price for the transportation service. For example, prediction module 264 may determine from user information data store 268A that the user of computing device 110 typically uses an economy class of service associated with the on-demand transportation service. When negotiating with transportation module 266 regarding whether the expected travel time overlaps with a price increase condition, prediction module 264 may further determine various on-demand services for the estimated travel time based on the service level. In response to determining that a higher or lower class of service is significantly less expensive (e.g., by a point or some other booking amount) than the service typically used by the user, or in response to determining that a different service level is more likely to arrive at the pickup location on time, prediction module 164 may specify the different service level when requesting a vehicle associated with the on-demand transportation service through TSS 180.

[0081] In any case, in response to determining that the current time is within a threshold amount of time of the predicted time to request a vehicle, the ISS 160 may send a reservation request for a vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service. For example, the prediction module 264 may send information to the TSS 180 one and a half hours before the second meeting. The information may include a request for a vehicle associated with the transportation service provided by the TSS 180. The TSS 180 may receive the request and immediately dispatch the vehicle to the pickup location.

[0082] In response to receiving confirmation from the reservation system indicating that the reservation request can be fulfilled, ISS 160 may send information to the computing device to notify the user that the vehicle is scheduled to arrive at the future location before the final departure time. For example, after sending the request to TSS 180, prediction module 264 may receive a confirmation message indicating that the vehicle is en route and the estimated time of arrival. ISS 160 may send information about the incoming vehicle to computing device 110, which in turn enables notification module 122 and UI module 120 to alert the user of computing device 110 of the vehicle's impending arrival.

[0083] Figure 3 and 4 is a flow diagram illustrating example operations 300 - 430 performed by an example computing system configured to predict a time to request a vehicle associated with a transportation service, in accordance with one or more aspects of the present disclosure. Figure 3 and 4 In the following Figure 1 For example, according to one or more aspects of the present disclosure, ISS 160 may perform operations 300-430.

[0084] like Figure 3 As shown, in operation, ISS 160 may infer that the user of computing device 110 will need to complete a trip by traveling from a future location to a future destination by a future time (300). For example, prediction module 164 may receive an email or electronic calendar associated with the user of computing device 110 from context module 162 indicating that the user will need to meet a meeting two hours after landing at the airport.

[0085] ISS 160 may determine whether the final destination is greater than a minimum threshold distance and less than a maximum threshold distance from the future location (310). For example, prediction module 164 may determine a typical distance that the user or other users typically walk between destinations and determine that the meeting location is greater than a typical distance that the user or other users typically travel on foot from an airport. Additionally, prediction module 164 may determine a typical distance that the user or other users typically avoid using on-demand transportation services (e.g., because traveling long distances using on-demand transportation services may be cost-prohibitive) and determine that the meeting location is less than a typical distance that the user or other users typically avoid using on-demand transportation services from an airport.

[0086] ISS 160 can select a transportation service that the user can use to complete the trip (320).For example, prediction module 164 can search a navigation database or search the Internet for information related to available on-demand transportation services departing from the airport and select an available transportation service.

[0087] ISS 160 may determine a predicted time to request a vehicle associated with the transportation service for completing the trip (330). For example, prediction module 164 may use a rule-based algorithm to determine a predicted time to request a vehicle associated with the transportation service for completing the trip that increases the likelihood that the vehicle will be at the airport when the user needs it to travel to a meeting. Prediction module 164 may determine that vehicles associated with the on-demand transportation service are typically only five minutes from the airport and therefore infer that the best time to request the vehicle is five minutes before the user is expected to depart the airport (e.g., after going through baggage claim and passing through the drop-off process). Prediction module 164 may determine from one or more rules that other users typically spend ten minutes leaving the airport at the location of the on-demand vehicle after their plane lands and therefore determine that the best time to request the vehicle is five minutes after the plane carrying the user lands.

[0088] ISS 160 may determine whether the current time is within a threshold amount of time of the predicted time (340). For example, prediction module 164 may queue a request for the on-demand transportation service but not send the request until just before or shortly after the predicted time. Prediction module 164 may periodically update the predicted time (e.g., based on changes in flight status of the aircraft carrying the user, changes in market pricing, etc.).

[0089] In response to determining that the current time is within a threshold amount of time of the predicted time, the ISS 160 may send a reservation request for a vehicle associated with the transportation service (350). For example, in response to determining that the predicted time is within (e.g., plus or minus) a threshold amount of time (e.g., one minute, etc.) of the predicted time, the prediction module 164 may send a request for a vehicle to the TSS 180, which may cause the reservation module 182 to dispatch a vehicle to the airport for the user.

[0090] ISS 160 may receive confirmation from the reservation system indicating that the reservation can be fulfilled (360).For example, after dispatching the vehicle, TSS 180 may reply to the request from prediction module 164 with information about the vehicle's estimated arrival time and pickup location.

[0091] In response to receiving the confirmation, ISS 160 may send information to computing device 110 to notify the user that the vehicle is scheduled to arrive at the future location (370). For example, prediction module 164 may provide the information formatted by notification module 122 and cause UI module 120 to output a notification alerting the user of computing device 110 of the incoming vehicle for display on UID 112 as part of the prediction service. In response to seeing, feeling, or hearing the notification, the user of computing device 110 may begin walking through the airport to catch the vehicle.

[0092] In some examples, before sending the reservation request, ISS 160 may send a request to the computing device confirming that the user intends to proceed with the trip. In some examples, the indication confirming that the user intends to proceed with the trip includes a confirmation received from the computing device in response to the request. For example, prediction module 164 may cause computing device 110 to alert the user by outputting an alert requesting permission from the user to reserve a vehicle associated with the transportation service. In response to receiving input from the user authorizing the vehicle reservation, computing device 110 may send information to ISS 160 confirming authorization to request the vehicle.

[0093] Figure 4 yes Figure 3 A more detailed example of operation 320 is provided. Figure 4As shown, ISS 160 may determine a predicted time to request a vehicle associated with an on-demand transportation service by performing operations 400 - 430 .

[0094] The ISS 160 may determine an estimated trip duration associated with the transportation service used to complete the trip 400. For example, the prediction module 164 may use a navigation service accessed via the Internet to determine an estimated duration that a vehicle of the type provided by the on-demand transportation service typically takes to complete a trip from the airport to the meeting location.

[0095] The ISS 160 may determine the final departure time as the last time the user is predicted to need to start traveling from the future location to complete the trip and arrive at the future destination by the future time based on the estimated trip duration (410). For example, the prediction module 164 may determine that it takes an average of approximately one hour for a vehicle associated with the on-demand transportation service to travel from the airport to the meeting location and therefore determine the estimated "final departure" time to be one hour before the meeting starts.

[0096] After the reservation request is sent, before the vehicle is predicted to arrive at the future location, ISS 160 may determine an estimated booking delay based on the final departure time (420). For example, prediction module 164 may determine from one or more rules of the machine learning system that when a request is sent one hour before the meeting, the on-demand transportation service using the vehicle typically responds to the request to the airport within five minutes of the request, based on previously observed travel patterns of other users.

[0097] ISS 160 may determine the predicted time to be earlier than the final departure time by at least the estimated booking delay 430. For example, to ensure that a vehicle appears at the airport on time to complete a one-hour trip to the meeting, prediction module 164 may request a vehicle associated with the on-demand transportation service at least one hour and five minutes before the meeting.

[0098] In some examples, prediction module 164 may determine an updated predicted time based on other information obtained by ISS 160 and changes in the context of computing device 110. For example, when the vehicle pickup location is an airport, reservation module 164 may update the predicted time before sending the request to the reservation system based on changes in ground transportation, in response to flight delays, in response to flights departing or arriving earlier than expected, changes in the estimated booking delay for the time it will take for the vehicle to arrive at the airport, etc. In other words, even if computing device 110 is offline and has not provided updated contextual information about the whereabouts of computing device 110 to context module 164, prediction module 164 may infer that the vehicle should be requested earlier or later, depending on the circumstances. In other words, the ISS 160 and prediction module 164 may update the predicted time in response to detecting a change to at least one of: the future time at which the user needs to be at the final destination, the final departure time at which the user is predicted to need to depart to begin traveling to the final destination, and / or the degree of likelihood that the vehicle will arrive at the future location before the final departure time (e.g., if the prediction module 164 determines that changes in traffic, weather, or other conditions may make it increasingly unlikely that the vehicle will arrive on time to transport the user to the final destination).

[0099] Figure 5 is a flow diagram illustrating example operations 500-530 performed by an example computing device configured to receive information notifying a user that a vehicle associated with a transportation service is scheduled to arrive at a future location by a final departure time in accordance with one or more aspects of the present disclosure. Figure 5 In the following Figure 1 For example, according to one or more aspects of the present disclosure, a computing device may perform operations 500-530.

[0100] In operation, computing device 110 may send user information to the computing system indicating that the user will need to complete a trip by traveling from a future location to a future destination by a future time (500). For example, computing device 110 may periodically or occasionally send information to ISS 160, which context module 162 uses to construct a past and future context history associated with the user of computing device 110. Prediction module 164 may parse the context history for information related to events in which the user may need to arrange on-demand transportation services (e.g., a trip originating at an airport, a train station, traveling a long distance from a home location and possibly without personal transportation, etc.).

[0101] The computing device 110 may send additional information to the computing system prior to the final departure time associated with the trip, the additional information indicating that the computing device 110 is within a threshold distance of the future location (510). For example, the movement data associated with the computing device 110 may indicate to the context module 162 that the user's context is within walking distance of the user's predicted future location from which the user may require an on-demand transportation service. If the user is within the threshold distance of the future location (e.g., within walking distance), the prediction module 164 may determine that the user is likely to be traveling to the next event (or the location from which the user will take the on-demand transportation service to travel to the next event) and, therefore, book a vehicle associated with the on-demand transportation service at the predicted time. Conversely, if the user is outside the threshold distance (e.g., the user is in a different state or is miles or kilometers away from where he or she is predicted to be), the prediction module 164 may avoid requesting a vehicle based on the assumption that the user may not want to make the trip after all.

[0102] The computing device 110 may receive information from the computing system for notifying the user that a vehicle associated with the transportation service has been automatically scheduled to arrive at a future location to transport the user to the future destination (520). For example, at the predicted time, the ISS 160 may reserve a vehicle through the TSS 180 to transport the user to the future destination, and in response to receiving confirmation of the request from the ISS 180, send information to the computing device 110 indicating that the vehicle has been reserved and is on the way.

[0103] Computing device 110 may output an alert based on the information to notify the user that it is time to walk to the future location to catch the bus (530). For example, notification module 122 may receive the information from ISS 160, format the information into a notification form, and cause UI module 120 to output the formatted information for display on UID 122 (e.g., as Figure 1 114).

[0104] In some examples, a computing system operating in accordance with the techniques of this disclosure may determine that a time in a user's calendar is a flight and automatically arrange a pick-up at the flight destination using an on-demand transportation service. In some examples, the computing system may adjust the pickup time based on traffic changes, flight delays or early departures, changes in the estimated arrival time of transportation (e.g., booking delays), and the like. In some examples, the computing system may provide offline support, allowing the user's computing device to be offline and without network access, and still arrange transportation for airports and / or other fixed-point locations. In some examples, the computing system may automatically filter events to determine when transportation is available or unavailable, or when transportation is needed or not needed. In some examples, the computing system may avoid booking an on-demand transportation service if the system determines that the user is already en route or near a future destination. For example, the system may receive periodic location updates and infer that the user will not need an on-demand transportation service if the user is near a future destination (e.g., within walking distance). In some examples, if the system learns from the transportation service that the driver of a previously scheduled vehicle has canceled the pickup or if the transportation system is otherwise unable to fulfill the request, the computing system can rebook a different on-demand transportation service. In some examples, the computing system can avoid price increases by changing service levels or service providers, if possible.

[0105] In one example, a calendar associated with a user may indicate that the user has scheduled a dinner reservation at a final destination at 6 PM. Normally, it would take 20 minutes to get to dinner from the user's current location using an on-demand transportation service, but a car accident occurs on the way there. Since the user would normally have only attempted to reserve a vehicle associated with the transportation service at 5:40 PM, the user would be late due to the car accident. In some examples, the computing system may automatically learn of the car accident and alert the user at 5:20 PM that the system has automatically reserved a vehicle for the user so that the user arrives on time (e.g., before 6 PM).

[0106] In another example, the computing system can automatically book an on-demand transportation service for a user of a computing device after the user's plane arrives at an airport to take the user to a final destination. Although the user's computing device is offline (e.g., the user does not have network access while on the plane), the example computing system learns that the plane is delayed or scheduled to arrive early and automatically updates the predicted time for booking the transportation service so that the service's vehicle arrives just in time to take the user to the final destination.

[0107] Figure 6A and 6Bis a conceptual diagram illustrating example graphical user interfaces presented by example computing devices 610A and 610B configured to receive information notifying a user that a vehicle associated with a transportation service is scheduled to arrive at a future location by a final departure time in accordance with one or more aspects of the present disclosure. Figure 6A and 6B In the following Figure 1 system 100 and Figure 5 For example, according to one or more aspects of the present disclosure, computing devices 610A and 610B are Figure 1 An example of a computing device 110 and may perform operations related to Figure 5 Similar operations to those described in .

[0108] exist Figure 6A In the example of FIG, computing device 610A is a mobile phone or tablet device that includes UID 612A for presenting user interface 614A. ISS 160 can automatically send a request for a vehicle associated with a transportation service to TSS 180 so that the user of computing device 610A can complete a trip by traveling from a future location to a future destination by a future time. However, ISS 160 can wait and only send the reservation request upon receiving an indication from computing device 610A confirming that the user wants to make the trip.

[0109] In some examples, the indication confirming that the user wants to take the trip includes location information indicating that computing device 610A is within a threshold distance of a future location. In other examples, the indication confirming that the user wants to take the trip includes a confirmation received from the computing device in response to the request. For example, before sending the reservation request, ISS 160 may send a request to computing device 160A confirming that the user wants to take the trip.

[0110] In response to receiving the request from ISS 160, computing device 610A may output user interface 614A requesting the user of computing device 610A to confirm that they would like a car to be sent to take them to their next appointment. In response to detecting selection of a graphical element labeled “you’re a life saver please send the car” in user interface 614A, computing device 610A may send an indication to ISS 160 that the user does wish to make the trip, and ISS 160 may therefore send a request for a car to TSS 180. In response to detecting selection of a graphical element labeled “thanks for looking out for me but I don’t need a car” in user interface 614A, computing device 610A may send an indication to ISS 160 that the user does not wish to make the trip, and ISS 160 may therefore refrain from sending a request for a car to TSS 180.

[0111] exist Figure 6B In the example shown in FIG, computing device 610B is a watch device including UID 612B for presenting user interface 614B. Figure 6A Computing device 610A may present user interface 614B after presenting user interface 614A and receiving confirmation that the user wants to proceed with the trip.

[0112] Computing device 610B may receive information from ISS 160 that notifies the user of computing device 610B that a vehicle associated with a transportation service has been automatically scheduled to arrive at the future location of computing device 610B to transport the user to the future destination. Figure 6B As shown, the information includes a message informing the user that he or she needs to go to the front entrance on main street to meet your car which has been automatically scheduled to arrive shortly to take you to your destination. The computing device 610B can output a user interface 614B as an alert based on the information to inform the user that it is time to go to the future location to catch the car.

[0113] Clause 1. A method comprising: inferring, by a computing system based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to arrive at a future destination by a future time; selecting, by the computing system, a transportation service that the user can use to complete the trip; determining, by the computing device, a predicted time to request a vehicle associated with the transportation service for completing the trip, wherein: a request for the vehicle sent at the predicted time has a likelihood, which satisfies a threshold, that the vehicle will arrive at the future location by a final departure time; and the final departure time is the last time at which the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time; in response to determining that a current time is within a threshold amount of time of the predicted time to request the vehicle, sending, by the computing system, a reservation request for the vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service; and in response to receiving, by the computing system, a confirmation from the reservation system indicating that the reservation request can be fulfilled, sending, by the computing system, information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0114] Clause 2. A method according to clause 1, wherein determining the predicted time for requesting a vehicle includes: determining, by the computing system, an estimated trip duration associated with a transportation service for completing the trip; determining, by the computing system, the final departure time as the last time that the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination before the future time based on the estimated trip duration; determining, by the computing system, an estimated booking delay based on the final departure time after sending the reservation request and before the vehicle is predicted to arrive at the future location; and determining, by the computing system, the predicted time to be at least the estimated booking delay earlier than the final departure time.

[0115] Clause 3. A method according to any one of clauses 1-2, wherein determining the predicted time for requesting a vehicle includes: in response to determining that the predicted time overlaps with a time period determined to be associated with a market price increase associated with the transportation service, adjusting the predicted time by the computing system to avoid the time period.

[0116] Clause 4. A method according to any of clauses 1-3, wherein the reservation request specifies a particular category of service requested to complete the trip, the method further comprising: in response to determining that the predicted time overlaps with a time period determined to be associated with a market price increase associated with the transportation service, selecting, by the computing system, the particular category to obtain the lowest price for the transportation service.

[0117] Clause 5. The method of any of clauses 1-4, wherein the information associated with the user comprises contextual information, the contextual information comprising at least one of: calendar information, communication information, sensor information, and location information.

[0118] Clause 6. The method of any of clauses 1-5, wherein the transportation service is selected in response to determining that the transportation service is the lowest-cost service among one or more available services that the user can use to complete the trip.

[0119] Clause 7. The method according to any one of clauses 1-6 further includes: updating the predicted time by the computing device in response to detecting a change to at least one of the following: the future time, the final departure time, or the likelihood that the vehicle will arrive at the future location before the final departure time.

[0120] Clause 8. The method of any of clauses 1-7, wherein the reservation request is further sent in response to receiving, by the computing system, an indication from the computing device confirming that the user desires to make a trip.

[0121] Clause 9. The method of clause 8, wherein the confirmation of the user's indication of an intention to take a trip comprises location information indicating that the computing device is within a threshold distance of the future location.

[0122] Clause 10. The method according to any one of clauses 8-9 further includes: before sending the reservation request, the computing system sends a request to the computing device to confirm that the user wants to make the trip, wherein the indication confirming that the user wants to make the trip includes a confirmation received from the computing device in response to the request.

[0123] Clause 11. A method according to any of clauses 1-10, wherein the transportation service is selected in response to determining that the final destination location is greater than a minimum distance threshold and less than a maximum distance threshold from the future location, wherein: the minimum distance threshold is determined at least in part based on a first maximum distance that a user typically walks to an event; and the maximum distance threshold is determined at least in part based on a second maximum distance that a user typically drives to an event.

[0124] Clause 12. A computer-readable storage medium comprising instructions that, when executed, cause at least one processor of a computing system to: infer, based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to arrive at a future destination by a future time; select a transportation service that the user can use to complete the trip; determine a predicted time to request a vehicle associated with the transportation service for completing the trip; wherein: the request for the vehicle sent at the predicted time has a threshold degree of likelihood that the vehicle will arrive at the future location by a final departure time, and the final departure time is the last time that the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time; in response to determining that the current time is within a threshold amount of time of the predicted time to request the vehicle, send a reservation request for the vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service; and in response to receiving a confirmation from the reservation system indicating that the reservation request can be satisfied, send information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0125] Clause 13. A computer-readable storage medium according to clause 12, wherein the instructions, when executed, further cause at least one processor to determine a predicted time for requesting a vehicle by at least: determining an estimated trip duration associated with a transportation service for completing the trip; determining the final departure time as the last time that the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination before the future time based on the estimated trip duration; determining an estimated booking delay based on the final departure time after sending the reservation request and before the vehicle is predicted to arrive at the future location; and determining the predicted time by the computing system to be at least the estimated booking delay earlier than the final departure time.

[0126] Clause 14. A computer-readable storage medium according to any one of clauses 12-13, wherein the instructions, when executed, further cause at least one processor to determine a predicted time for requesting a vehicle by at least: in response to determining that the predicted time overlaps with a time period determined to be associated with a market price increase associated with the transportation service, adjusting the predicted time to avoid the time period.

[0127] Clause 15. A computer-readable storage medium according to any one of clauses 12-14, wherein the reservation request specifies a particular category of service requested to complete the trip, and the instructions, when executed, further cause at least one processor to: in response to determining that the predicted time overlaps with a time period determined to be associated with a market price increase associated with the transportation service, select the particular category to obtain the lowest price for the transportation service.

[0128] Clause 16. The computer-readable storage medium of any of clauses 12-15, wherein the information associated with the user comprises contextual information, the contextual information comprising at least one of: calendar information, communication information, sensor information, and location information.

[0129] Clause 17. A computer-readable storage medium according to any of clauses 12-16, wherein the instructions, when executed, further cause at least one processor to select the transportation service in response to determining that the transportation service is the lowest cost service among one or more available services that the user can use to complete the trip.

[0130] Clause 18. A computer-readable storage medium according to any one of clauses 12-17, wherein the instructions, when executed, further cause at least one processor to update the predicted time in response to detecting a change to at least one of: the future time, the final departure time, or the degree of likelihood that the vehicle will arrive at the future location before the final departure time.

[0131] Clause 19. A computer-readable storage medium according to any one of clauses 12-18, wherein the instructions, when executed, further cause at least one processor to: send the reservation request in response to receiving a first indication from the computing device confirming that the user wants to make a trip; and avoid sending the reservation request in response to receiving a second indication from the computing device confirming that the user does not want to make a trip.

[0132] Clause 20. A computing system comprising: at least one processor; a prediction module operable by the at least one processor to: infer, based on information associated with a user of a computing device, that the user will need to complete a trip by traveling from a future location to arrive at a future destination by a future time; select a transportation service that the user can use to complete the trip; determine a predicted time to request a vehicle associated with the transportation service for completing the trip, wherein: the request for the vehicle sent at the predicted time has a threshold degree of likelihood that the vehicle will arrive at the future location by a final departure time, and the final departure time is the last time that the user is predicted to need to travel from the future location to complete the trip and arrive at the future destination by the future time; in response to determining that the current time is within the threshold amount of time of the predicted time to request the vehicle, send a reservation request for the vehicle associated with the transportation service for completing the trip to a reservation system associated with the transportation service; and in response to receiving a confirmation from the reservation system indicating that the reservation request can be satisfied, send information to the computing device notifying the user that the vehicle is scheduled to arrive at the future location by the final departure time.

[0133] Clause 21. A computing system comprising means for performing the method of any of clauses 1-11.

[0134] Clause 22. The computer-readable storage medium of clause 12, comprising further instructions that, when executed, cause at least one processor of the computing system to perform the method of any one of clauses 1-11.

[0135] Clause 23. The computing system of Clause 20, comprising means for performing the method of any one of Clauses 1-11.

[0136] In one or more examples, the features described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functionality may be stored on or transmitted through a computer-readable medium as one or more instructions or codes and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to tangible media such as data storage media, or communication media including any media that facilitates the transmission of a computer program from one place to another, such as according to a communication protocol. In general terms, computer-readable media may generally correspond to (1) tangible computer-readable storage media that is non-transitory, or (2) communication media such as signals or carrier waves. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to obtain instructions, codes, and / or data structures to implement the techniques described in this disclosure. A computer program product may include computer-readable media.

[0137] By way of example and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, flash memory, or any other medium that can be used to store the desired program in the form of instructions or data structures and that can be accessed by a computer. Moreover, any connection is appropriately referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwaves, then the coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwaves are included in the definition of medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but refer to non-temporary tangible storage media. Disks or discs as used herein include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), floppy disks, and Blu-ray discs, where disks typically store data magnetically, while discs store data optically using lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0138] Instructions can be performed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Therefore, the term "processor" as used herein can refer to any of the above structures or any other structure suitable for implementing the technology described herein. In addition, in some aspects, the functions described herein can be provided within dedicated hardware and / or software modules. Moreover, the technology can be implemented completely with one or more circuits or logic components.

[0139] The techniques of this disclosure can be implemented in various devices or apparatuses, including wireless handsets, integrated circuits (ICs), or collections of ICs (e.g., chipsets). Various components, modules, or units are described in this disclosure to emphasize functional aspects of devices configured to perform the disclosed techniques, and do not necessarily require implementation by different hardware units. Instead, as described above, the various units can be combined in a hardware unit or a collection of interoperating hardware units in combination with appropriate software and / or firmware, including one or more processors as described above.

[0140] Various examples have been described. These and other examples are within the scope of the following claims.

Claims

1. A method for automatically booking a transportation service, the method comprising: Determining a predicted time to request a vehicle associated with a transportation service for completing a trip for a user, the trip including traveling from a pickup location to arrive at a drop-off location by a future time, wherein: The request for the vehicle sent at the predicted time has a likelihood level that satisfies a likelihood threshold, wherein the likelihood level is the likelihood that the vehicle will arrive at the pickup location before a final departure time; and The final departure time is the latest time the user needs to start traveling from the pickup location to complete the trip and arrive at the drop-off location before the future time; In response to determining that a current time is within a threshold amount of time of the predicted time to request the vehicle associated with the transportation service: automatically sending a request to a first computing device of the user, the request causing the first computing device to render a first user interface for prompting the user to confirm that the user wants to proceed with the trip; In response to receiving a confirmation from the first computing device of the user indicating that the user wants to make the trip in response to sending the request: automatically sending a reservation request for the vehicle associated with the transportation service to a reservation system associated with the transportation service, the reservation request causing the reservation system to dispatch the vehicle to the pickup location before the final departure time; and In response to receiving a confirmation from the reservation system indicating that the reservation request can be fulfilled: Automatically sending information to a second computing device of the user, the information causing the second computing device to render a second user interface for notifying the user that the vehicle associated with the transportation service is scheduled to arrive at the pickup location before the final departure time, wherein the second computing device of the user is in addition to the first computing device of the user.

2. The method according to claim 1, wherein Receiving the confirmation indicating that the user wants to proceed with the trip includes: A first user input is received from the first computing device of the user for a first graphical element included in the request prompting the user to confirm that the user wants to make the trip.

3. The method according to claim 2, further comprising: In response to receiving, in response to sending the request, an alternative confirmation from the first computing device of the user indicating that the user does not want to make the trip: Refraining from sending the reservation request for the vehicle associated with the transportation service to the reservation system associated with the transportation service, the reservation request causing the reservation system to dispatch the vehicle to the pickup location before the final departure time.

4. The method according to claim 3, wherein: Receiving the alternative confirmation indicating that the user does not want to proceed with the trip includes: A second user input is received from the first computing device of the user for a second graphical element included in the request prompting the user to confirm that the user wants to make the trip.

5. The method according to claim 1, wherein The first user interface, rendered by the user's first computing device, notifies the user of the predicted time to request the vehicle associated with the transportation service.

6. The method according to claim 5, wherein: The second user interface rendered by the user's second computing device notifies the user to walk to the pickup location before the final departure time.

7. The method according to claim 6, wherein: The first computing device of the user is a mobile phone of the user, and wherein the second computing device of the user is a wearable computing device.

8. The method according to claim 1, wherein The vehicle associated with the transportation service is an unmanned car driven by a computer system.

9. The method according to claim 1, wherein Determining the predicted time to request the vehicle includes: determining an estimated trip duration associated with the transportation service for completing the trip; determining the final departure time based on the estimated trip duration; determining an estimated booking delay based on the final departure time, the estimated booking delay being an estimated period of time between a time when the reservation request is sent and a predicted time when the vehicle arrives at the future location; and The predicted time is determined based on the estimated trip duration and based on the estimated booking delay.

10. A method for automatically booking a transportation service, the method comprising: inferring, based on information associated with a user of the computing device, that the user will need to complete a trip by traveling from the pickup location to arrive at the drop-off location by a future time; Determining whether the user will request a transportation service that the user can use to complete the trip based on inferring that the user will need to complete the trip, wherein the transportation service is one of a plurality of on-demand transportation services having a plurality of associated vehicles, and wherein determining whether the user will request the transportation service comprises: Determining that the drop-off location is greater than a minimum distance threshold specific to the user from the pickup location and less than a maximum distance threshold also specific to the user from the pickup location, wherein: The minimum distance threshold is determined based at least in part on a first maximum distance the user has walked to the event, and the maximum distance threshold being determined based at least in part on a second maximum distance the user has driven to an event; In response to determining that the user will request the transportation service: determining a predicted time to request a vehicle associated with the transportation service for completing the trip of the user; In response to determining that a current time is within a threshold amount of time of the predicted time to request the vehicle associated with the transportation service: automatically sending a request to the computing device of the user, the request causing the computing device to render a user interface for prompting the user to confirm that the user wants to proceed with the trip; In response to receiving a confirmation from the computing device of the user indicating that the user wants to make the trip in response to sending the request: automatically sending a reservation request for the vehicle associated with the transportation service to a reservation system associated with the transportation service, the reservation request causing the reservation system to dispatch the vehicle to the pickup location; and In response to receiving a confirmation from the reservation system indicating that the reservation request can be fulfilled: Information is automatically sent to the computing device of the user, the information causing the computing device to render the user interface for notifying the user when the vehicle associated with the transportation service is scheduled to arrive at the pickup location.

11. The method according to claim 10, wherein: Determining whether the user will request the transportation service further comprises: Based on determining that the drop-off location is greater than the minimum distance threshold from the pickup location and less than the maximum distance threshold from the pickup location, it is inferred that the user will request the transportation service to complete the trip.

12. The method according to claim 11, wherein The minimum distance threshold and the maximum distance threshold specific to the user are based on contextual history information of the computing device of the user.

13. The method according to claim 12, wherein: The context history information of the computing device of the user includes one or more of the following: a location history of the computing device, a weather information history corresponding to the location history of the computing device, or a traffic information history corresponding to the location history of the computing device.

14. The method according to claim 10, wherein: An additional minimum distance threshold and an additional maximum distance threshold specific to an additional user of an additional computing device are different from the minimum distance threshold and the maximum distance threshold specific to the user of the computing device, wherein the additional user is other than the user, and wherein the additional computing device of the additional user is other than the computing device of the user.

15. The method according to claim 10, wherein Determining the predicted time to request the vehicle includes: determining an estimated trip duration associated with the transportation service for completing the trip; determining a final departure time based on the estimated trip duration, the final departure time being the latest time the user needs to start traveling from the pickup location to complete the trip and arrive at the drop-off location by the future time; determining an estimated booking delay based on the final departure time, the estimated booking delay being an estimated period of time between a time when the reservation request is sent and a predicted time when the vehicle arrives at the future location; and The predicted time is determined based on the estimated trip duration and based on the estimated booking delay.

16. The method according to claim 15, wherein The information causing the computing device to render the user interface for notifying the user when the vehicle associated with the transportation service is scheduled to arrive at the pickup location notifies the user that the vehicle associated with the transportation service is scheduled to arrive at the pickup location before the final departure time.

17. The method according to claim 10, wherein The vehicle associated with the transportation service is an unmanned car driven by a computer system.

18. A system for automatically booking transportation services, the system comprising: at least one processor; as well as At least one module operable by the at least one processor to perform operations comprising: Determining a predicted time to request a vehicle associated with a transportation service for completing a trip for a user, the trip including traveling from a pickup location to arrive at a drop-off location by a future time, wherein: The request for the vehicle sent at the predicted time has a likelihood level that satisfies a likelihood threshold, wherein the likelihood level is the likelihood that the vehicle will arrive at the pickup location before a final departure time; and The final departure time is the latest time the user needs to start traveling from the pickup location to complete the trip and arrive at the drop-off location before the future time; In response to determining that a current time is within a threshold amount of time of the predicted time to request the vehicle associated with the transportation service: automatically sending a request to a first computing device of the user, the request causing the first computing device to render a first user interface for prompting the user to confirm that the user wants to proceed with the trip; In response to receiving a confirmation from the first computing device of the user indicating that the user wants to make the trip in response to sending the request: automatically sending a reservation request for the vehicle associated with the transportation service to a reservation system associated with the transportation service, the reservation request causing the reservation system to dispatch the vehicle to the pickup location before the final departure time; and In response to receiving a confirmation from the reservation system indicating that the reservation request can be fulfilled: Automatically sending information to a second computing device of the user, the information causing the second computing device to render a second user interface for notifying the user that the vehicle associated with the transportation service is scheduled to arrive at the pickup location before the final departure time, wherein the second computing device of the user is in addition to the first computing device of the user.

19. The system according to claim 18, wherein: The vehicle associated with the transportation service is an unmanned car driven by a computer system.

Citation Information

Patent Citations

  • Presenting information for a current location or time

    CN104396284A

  • Predictive transit calculations

    US20150185016A1