When people travel to new places, they oftentimes rely on a travel agency to assist them with scheduling their itinerary. Typically, a travel agency will provide a few set itineraries for a particular location from which travelers may select. Because such itineraries are set, the travelers have little flexibility to choose the destinations or attractions they will visit and when they visit them. For example, many travel agencies offer itineraries that start and end on the same days of the week throughout the year and that include the same destinations and attractions.
Due to the lack of flexibility provided by many travel agencies, some travelers will try to schedule their own itinerary. This can result in many problems. For example, because travelers are oftentimes unfamiliar with the area they plan to visit, they will rely on information about the area that they can find online or from printed sources. Such information can be helpful for obtaining a general understanding of what attractions are available in the area. However, from such information alone, it can be difficult to arrange an itinerary for visiting selected attractions. Without local knowledge of the attractions, including knowledge of the travel time between attractions, the availability of transportation between the attractions, the hours when the attraction can be visited, the amount of time one should plan to spend at the attraction, etc., a traveler may put together an itinerary that ends up being undesirable or possibly even unfeasible.
The present invention extends to methods, systems, and computer program products for interactively scheduling an itinerary. The present invention can assist a user in identifying which destinations or attractions can be visited during a vacation based on a specified location where the user intends to be during the vacation. The present invention can compile a database of information about each possible destination or attraction as well as about available transportation between such destinations and attractions. This information can identify many different criteria that can be used to determine whether it would be desirable or feasible for the user to visit the destination or attraction based on an intended location of the user. The information can be compiled based on input from locals or other experts that are familiar with the destinations or attractions.
A user may initiate the process of interactively scheduling an itinerary by inputting a starting location such as an airport of arrival. Then, based on this starting location and the compiled information about destinations and attractions, the present invention can present the user with recommendations of the destinations and attractions that would be desirable and/or feasible as the next stop in the itinerary. The present invention can also present various transportation options for traveling to the recommended destinations and attractions. The desirability or feasibility of a particular destination or attraction can be based on many different criteria including, for example, the travel time to the destination or attraction, the time of day when the user will be at the starting location, the availability of transportation to the destination or attraction from the starting location, the hours of operation of the destination or attraction, etc.
Once the user selects a destination or attraction as the next stop in the itinerary, the process can be repeated with the selected destination or attraction acting as the new starting location. After the user has selected each stop of the itinerary, the present invention can identify each destination, attraction, and means of transportation for which a reservation or purchase may be required and automatically request the reservation or make the purchase. In this way, the user can have great flexibility when scheduling an itinerary while also receiving guidance to ensure that the itinerary is desirable and feasible.
In some embodiments, rather than scheduling destinations in a sequential manner, the user can specify one or more destinations that he or she would like to visit including possibly when he or she would like to visit them. Alternatively, the present invention can assist the user in identifying a particular time when such destinations can or should be visited. Then, the remaining destinations can be added to the itinerary taking into account both a starting location, date, and time as well as a subsequent location, date, and time. Accordingly, the interactive scheduling of an itinerary can be performed in both a sequential and a non-sequential manner.
In one embodiment, the present invention is implemented as a method, performed by a server computing system in communication with a user computing device, for interactively scheduling an itinerary. For each of a plurality of destinations, the server computing system can store information which identifies a starting point with which the destination is related and one or more criteria for visiting the destination from the starting point. Input can be received from the user computing device which defines a user's starting point and a starting date and starting time when the user will be at the starting point. The stored information for each of the plurality of destinations can be accessed to identify one or more destinations that are related to the user's starting point. For each of the one or more destinations that are related to the user's starting point, the starting date and starting time can be compared to the one or more criteria for visiting the destination to identify whether the destination can be a next destination after the user's starting point based on the starting date and starting time. For each destination that can be the next destination after the user's starting point based on the starting date and starting time, a recommendation to visit the destination can be displayed. User input can be received that selects a recommendation to visit a first destination. The first destination can then be added to an itinerary for the user such that the itinerary defines that the first destination is the next destination after the starting point.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter.
In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Embodiments of the present invention may comprise or utilize special purpose or general-purpose computers including computer hardware, such as, for example, one or more processors and system memory, as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computer system.
Computer-readable media is categorized into two disjoint categories: computer storage media and transmission media. Computer storage media (devices) include RAM, ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM), Flash memory, phase-change memory (“PCM”), other types of memory, other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other similarly storage medium which can be used to store desired program code means in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer. Transmission media include signals and carrier waves.
Computer-executable instructions comprise, for example, instructions and data which, when executed by a processor, cause a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language or P-Code, or even source code.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like.
The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. In a distributed system environment, program modules may be located in both local and remote memory storage devices. An example of a distributed system environment is a cloud of networked servers or server resources. Accordingly, the present invention can be hosted in a cloud environment.
In this specification, a destination or attraction (which will hereinafter be referred to simply as a destination) can be any location to which a user may desire or need to visit. For example, a destination can include a location that provides overnight accommodations (e.g., a hotel, a hostel, a campground, a rental home, etc.), a tourist attraction (e.g., a historic site, a national park, an entertainment venue, etc.), an event (e.g., a convention, a sporting event, a concert, etc.), a travel hub (e.g., an airport, a bus terminal, a port, etc.) or virtually any other location that people may desire to visit. A mode of transportation can be any means for travelling from one destination to another regardless of the type of vehicle (or lack thereof) used to travel including, for example, taxis, buses, trains, airplanes, boats, bicycles, foot, etc.).
User computing device 102 represents any type of computing device or system that a user can employ to communicate with server system 101 for the purpose of scheduling an itinerary. For example, user computing device 102 can represent a desktop or laptop computer, a mobile phone, a tablet, a television, or other device used to communicate over a network such as the internet.
Provider systems 103a-103n can represent any of the computing systems or devices employed by a destination, transportation provider, or their agents to receive reservation requests. A reservation request should be construed broadly to encompass any type of request to visit an attraction or to use a mode of transportation. For example, one provider system can represent a server system employed by a hotel chain to create and maintain reservations, another provider system can represent a server system employed by a national park to receive requests for tickets, and another provider system can represent a server system employed by a bus service for selling bus fares.
As an initial overview of embodiments of the present invention, server system 101 can provide a website or other interface through which a user, via user computing device 102, may interact to receive guidance and recommendations for scheduling an itinerary. In some embodiments, once a user has completed scheduling an itinerary, server system 101 can automatically send reservation requests to the appropriate provider systems. A primary benefit of the present invention is that a user can interactively schedule a desirable and feasible itinerary without needing significant or even any prior knowledge of the destinations to be visited while still retaining the flexibility provided by independently scheduling the itinerary.
The hierarchy depicted in data structure 300 includes an attractions node 302 and a hotels node 303. For ease of illustration, the attractions node 302 and the hotels node 303 have been separated even though for purposes of this specification each type of attraction or hotel will be commonly referred to as a destination. As stated above, other types of destinations may also be included in data structure 300. The hierarchy also includes a transportation node 304. Each of nodes 302, 303 includes a number of destinations that may be considered as candidates to recommend as a next destination when the starting location is Salt Lake International Airport (or, more generally, Salt Lake City). For example, attractions node 302 includes the destinations Timpanogos Cave 302a and Yellowstone National Park 302b, while hotels node includes the destination Sundance Resort 303a. Similarly, transportation node 304 includes a number of modes of transportation that are available from Salt Lake International Airport including Ute Cab 304a and Bundu Bus 304b.
For each destination and mode of transportation, server system 101 can store information that identifies various criteria that can be used to determine whether the destination or mode of transportation will be recommended to a particular user based at least in part on a starting location of the user. For ease of explanation, this information will be described as being part of the corresponding data structure 300, 310, or 320. For example, the Timpanogos Cave destination 302a includes information defining its season (May 10-September 28), its weekday tour hours (7:00 am-3:30 pm), its weekend tour hours (7:00 am-4:00 pm), its travel time from Salt Lake International Airport (0.7 hours), and a recommended minimum time to spend at the destination (2 hours). Many other types of information can also be stored for a destination. The type of information that may be stored may depend on the type of destination. In the case of the Timpanogos Cave destination 302a, a larger amount of information may be provided since the cave cannot be visited at certain times of the year and at certain times of the day, and because there is a minimum amount of time required to visit the cave. In contrast, the Sundance Resort destination 303a only includes information defining its distance from Salt Lake International Airport (1 hour) since the destination is listed as a hotel that would be available 24 hours a day each day of the year. Similarly, the Yellowstone National Park destination 302b only includes information defining its distance from Salt Lake International Airport (5 hours). In this case, because Yellowstone National Park is a general area that can be visited at any time with few constraints, no additional information may be provided.
Although
Each mode of transportation defines information that can be used to determine whether the mode of transportation would be available based on the user input of the starting point 200a, date 200b, and time 200c. As with destinations, many different types of information can be stored for a mode of transportation with the type of information varying based on the particular mode of transportation. In the case of the Ute Cab mode of transportation 304a, the hours of operation (24/7) and the maximum one-way travel time (1 hour) is provided. In the case of the Bundu Bus mode of transportation 304b, an indication that overnight travel is available and the destinations to which the bus travels are provided.
It is again noted that the hierarchical structure depicted in
To summarize, server system 101 can store information about many different destinations/modes of transportations including information which defines whether a destination/mode of transportation is relevant to a particular starting location. With this information and user input which identifies the user's starting location, date, and time, server system 101 can provide recommendations for the user's next destination as well as recommendations for the modes of transportation available to reach the next destination.
In some embodiments, the information stored by server system 101 about a destination or mode of transportation can be received from the destination or transportation provider. For example, an agent or employee of Timpanogos Cave (i.e., the National Park Service) may provide the information (e.g., via provider systems 103a-103n) included in destination 302a. Alternatively, a local or other person that is familiar with the destination or mode of transportation may provide the information. Further, in some cases, user reviews or feedback could be used to update or increase the amount of information stored for a particular destination that the user visited. In this way, it is more likely that the information maintained and used by server system 101 will be highly accurate and suitable for use in assisting the user in scheduling a desirable and feasible itinerary.
Based on the user's starting date of October 23, there may be some destinations that are not suitable as the next destination. For example, if a destination is not open or accessible on October 23, it may be identified as unsuitable. Similarly, based on the user's starting time of 6:00 pm, there may be many destinations that are not suitable as the next destination. For example, it may not be possible to travel to the destination within a reasonable time on the starting date (e.g., before the destination closes or before some reasonable time such as 10:00 pm). With reference to
Returning to
In some embodiments, the itinerary scheduling interface can be configured to allow the user to drag and drop recommendations onto the interface at particular time slots. Also, once a recommendation is dropped onto the interface, the user may be able to lengthen the width of the recommendation (i.e. the recommendation icon) to identify how long the user plans to stay at the destination. For example, referring to
In embodiments where the user can drag and drop recommendations onto the interface or otherwise customize the placement of a recommendation within the itinerary, server system 101 may be configured to cause the icon for the recommendation to change appearance when placed over or extended/retracted to a time slot when the destination would not be suitable. For example, the icon for destination 204b could be grayed out when placed in a time slot between 9:00 pm and 9:00 am to indicate that Temple Square is not a suitable destination between these hours since it is not open. Similarly, the minimum width of the icon could be limited to correspond with the minimum amount of time that is necessary/recommended to visit the destination (e.g., 2 hours for Timpanogos Cave). Further, the placement of an icon for a destination can be limited based on the amount of time that is required to travel to the destination. For example, if it requires 5 hours to travel to the destination, the icon for the destination can be prevented from being placed closer than 5 hours to the previous location (or otherwise updated to indicate that insufficient travel time has been allotted).
Once the user has specified a next destination, server system 101 can then repeat the above-described process but with the next destination being treated as the starting point. In other words, since the next destination in
Accordingly, in
Each of the recommendations in
As shown in
Since Yellowstone is a general destination that spans a large area (which can be specified in the information stored by server system 101 about the Yellowstone destination), server system 101 can further prompt the user to identify any additional destinations or modes of transportation while at Yellowstone. For example, as shown in
Because the user has specified that he will be staying in the Gray Wolf Inn & Suites while visiting Yellowstone and because Yellowstone covers a large area, the recommendations included in
As shown in
In
Because the user will be in Park City on the morning of October 26, many different destinations can be recommended both in and around Park City including those that require travel throughout the day. However, server system 101 may choose to not recommend or deemphasize any recommendations that require substantial travel since the user has just selected to travel a long distance the day before. Also, if the user had already specified his departure location, date, and time (which for this example is assumed to be Salt Lake City in the evening of October 26), server system 101 can account for this departure location, date, and time when making recommendations.
Because the user will be departing from Salt Lake International Airport in the evening, server system 101 has identified recommendations for destinations that are close to the Marriott Park City. For example, each of recommendations 202l, 202m, and 202n are for destinations that are close to Park City and Salt Lake International Airport and can be visited within a day.
Server system 101 can be configured to account for subsequent destinations when making recommendations even when the subsequent destination is not the final destination. For example, a user may desire to not schedule the itinerary in sequential order from the first destination to the last destination. Instead, the user may decide to initially select one or more destinations at particular times of the itinerary and plan around these destinations. Using the example above, the user may decide to schedule the trip to Yellowstone before scheduling any other destinations. In such cases, server system 101 can recommend destinations prior to the trip to Yellowstone that are feasible to visit within the window between arriving at Salt Lake International Airport and traveling to Yellowstone. For example, in such a case, server system 101 would not recommend travelling to Arches National Park from Salt Lake International Airport because it would not be feasible to do so before visiting Yellowstone.
In instances where the user selects a destination in a non-sequential manner, server system 101 can still assist the user in identifying an appropriate date and/or time to visit the destination using information stored about the destination and possibly one or more other previously scheduled or specified destinations (e.g., a starting and/or ending destination for the itinerary).
The above description has provided many different examples of the type of information that can be stored about a destination or a mode of transportation. Additionally, many other types of information can be provided. In short, any information that can be useful for determining whether a particular destination can be visited at a particular time and from a particular starting location can be used. Server system 101 can be configured to consider each of these different types of information when determining whether to recommend a destination or mode of transportation and when identifying whether a selected destination or mode of transportation is feasible within the time slot specified by the user (e.g., when the user makes adjustments to one or more destinations or modes of transportation within the itinerary).
Once the user has completed the process of scheduling an itinerary (e.g., when the user selects confirm in
In some embodiments, after an itinerary has been created, server system 101 can store the itinerary so that the full itinerary or portions of the itinerary can be presented to subsequent users. In this way, subsequent users can select an itinerary or portions of an itinerary without needing to go through the iterative process described above. In some embodiments, server system 101 can prompt the user, after the user has completed his travel, to confirm whether the itinerary was feasible and/or desirable. Any indication that the itinerary was not feasible or desirable or that any portion of the itinerary was not feasible or desirable can be used to update the information stored by server system 101 regarding the pertinent destination(s) and/or mode(s) of transportation to increase the effectiveness of the itinerary scheduling process. Server system 101 can also prompt the user to review a destination or mode of transportation. Reviews provided by users can be used to determine whether to recommend a destination or mode of transportation (e.g., by not recommending a poorly reviewed destination even if it is suitable as a next destination), or can be displayed with a recommendation to encourage the users to select destinations and modes of transportations with good reviews.
Although the itinerary scheduling process was described as relying primarily on the starting point, date, and time of the user to identify suitable recommendations, in some embodiments, the user may be prompted to identify one or more interests or required destinations/modes of transportation. In such cases, the selection of recommendations can be based on such interests or required destinations/modes of transportation. For example, if the user expresses an interest in outdoor destinations, server system 101 may filter out suitable destinations that are not outdoors. Similarly, if the user specifies a particular destination that must be included in the itinerary, server system 101 can filter out any destinations or modes of transportation that are not feasible with the particular destination.
In some embodiments, server system 101 may maintain a count of the number of users that selected a particular destination or mode of transportation when the particular destination or mode of transportation was recommended. Such a count can assist future users in identifying destinations or modes of transportation that are most popular which can assist users who are unfamiliar with an area in identifying the must-see destinations or preferred modes of transportation.
Method 500 includes an act 501 of storing, for each of a plurality of destinations, information which identifies a starting point with which the destination is related and one or more criteria for visiting the destination from the starting point. For example, server system 101 can store data structure 300, 310, or 320.
Method 500 includes an act 502 of receiving, from the user computing device, input which defines a user's starting point and a starting date and starting time when the user will be at the starting point. For example, server system 101 can receive starting point 200a, date 200b, and time 200c from user computing device 102. Also, server system 101 can receive user input that selects a destination for inclusion in an itinerary (e.g., the selected Grand America destination 204a or the selected Yellowstone destination 204c) and the destination as well as when the user plans to be at the destination can serve as the starting point, date, and time.
Method 500 includes an act 503 of accessing the stored information for each of the plurality of destinations to identify one or more destinations that are related to the user's starting point. For example, server system 101 can access data structure 300, 310, or 320 to identify destinations that are related to the user's starting point.
Method 500 includes an act 504 of, for each of the one or more destinations that are related to the user's starting point, comparing the starting date and starting time to the one or more criteria for visiting the destination to identify whether the destination can be a next destination after the user's starting point based on the starting date and starting time. For example, starting date 200b and starting time 200c can be compared to destinations 302a, 302b, 303a, etc. to determine if any of the destinations can be a next destination after starting point 200a. A similar comparison can be performed when another destination such as destinations 204a-204f are treated as the starting point.
Method 500 includes an act 505 of, for each destination that can be the next destination after the user's starting point based on the starting date and starting time, displaying a recommendation to visit the destination. For example, appropriate ones of recommendations 202a-202n can be displayed.
Method 500 includes an act 506 of receiving user input that selects a recommendation to visit a first destination. For example, server system 101 can receive user input from user computing device 102 that selects one of representations 202a-202n.
Method 500 includes an act 507 of adding the first destination to an itinerary for the user such that the itinerary defines that the first destination is the next destination after the starting point. For example, one of selected destination 204a-204f can be added to the itinerary as the next destination.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description.
This application claims priority to U.S. Provisional Patent Application No. 62/078,305 filed Nov. 11, 2014.
Number | Date | Country | |
---|---|---|---|
62078305 | Nov 2014 | US |