add_stop
ChatGPTAdds one menu item to one day through the same placing code as place_picks, keeping the items already on that date. Give a menu id from get_menu, or a name that clearly matches one menu item; start is an optional time hint (tours keep their real departures). Returns the updated day. Writes; when the name matches no item or several, or the item cannot fit, nothing is added and the error says why. Use for a single addition; use place_picks to set whole days, edit_day to remove, move or swap placed items.
build_trip
ChatGPTLets our AI choose from the same menu under the same rules and place the days, for every stop of the trip. Runs in the background and returns the build status; read progress and the days with get_trip. Writes: fills the days not already placed (fresh true redoes every day) and uses the traveller's AI allowance. Ratings are honoured: love is always included, like when it fits, skip never. Ask once for blocked time before building and pass it. Use when the traveller does not want to pick; use place_picks when they chose items, edit_day or add_stop to change single items afterwards.
compare_stays
ChatGPTPuts 2 to 4 hotels side by side for the same dates. Returns per hotel the cheapest total and per night, guest score, stars, distance, free cancellation, cheapest room and board, room size, stated policies, amenities and what guests mention, plus best flags (lowest_total, best_score, closest, free_cancellation). Rows no hotel states are left out; Not stated means that hotel did not say. Reads only; each column has its own book_link. Use when the traveller asks to compare hotels or which is cheaper, closer or quieter, and answer from the rows naming the hotel. Use get_stay_details for one hotel, search_stays to find hotel_ids.
compare_tours
ChatGPTPuts 2 to 4 tours side by side. Returns per tour the price per adult and child, rating and reviews, duration, whether it runs on date and its start times, cancellation, pickup, meeting point, group size, languages, ages, accessibility, inclusions, plus best flags (lowest_price, best_score, free_cancellation, runs_on_date). Rows no operator states are left out; Not stated means that operator did not say. Reads only; each column has its own book_link. Use when the traveller asks to compare tours or which suits them, and answer from the rows naming the tour. Use get_tour_details for one tour, search_tours to find product_codes.
edit_day
ChatGPTChanges one day of a trip using the item ids get_trip returns: remove items (remove_ids), move an item to another date or start time (move), or swap an item for another menu id (swap). Returns the updated days. Writes; a move or swap that does not fit is refused and the day is left exactly as it was. Bookings, stays, transport and blocked time are never changed; they are named back and left alone. Use for items already on the days; use add_stop to add one new item, place_picks to set whole days, build_trip to let our AI fill days.
get_city_guide
ChatGPTReads Adonde's own guide to one city. Returns the tagline, highlights, where to stay (neighbourhoods), a few tours picked for it, the best time to go and the app link. If we have no guide it says so; then offer start_trip and never describe the city as our guide. Reads only. Use when the traveller asks what to do or see in a city, or about one stop of a route; use get_place_details for one place on a trip, suggest_route to choose several cities, search_tours for the full tour list.
get_help
ChatGPTShows what Adonde can do and runs a guided demo. Returns, with no topic, a card listing the demos to pick from; with a topic, the exact example call to run next. Reads only. Use when the user says 'adonde help', 'adonde demo' or asks what Adonde can do or how to use it. For a real trip, go straight to open_trip_form or start_trip.
get_place_details
ChatGPTReads one sight, restaurant or free item from a trip's menu or day plan, from the records the Adonde app shows. Returns photos, the description with its source, category or cuisine, area, address and map point, opening hours (flagged when unchecked), rating and reviews, price level, entry fee, phone, website, menu link and why it is listed. A field the records lack is absent; never fill one in. Reads only. Use for a menu id or a day item's cand; use get_tour_details for a bookable tour (an id like viator:CODE), get_city_guide for a whole city.
get_stay_details
ChatGPTReads one hotel in full for given dates. Returns photos, description, amenities (amenities_all has the full list), address and map point, guest score, the rooms and rates (board, refundable, per night and total, room size) each with its own book_link, a cancellation summary, the hotel's stated policies (check-in and check-out times, pets, parking, children, accessibility, payment) and review_highlights. Reads only; nothing is booked. A topic the hotel does not state is absent: say we do not know, never guess. Use for one hotel from search_stays (its hotel_id, same dates and adults) or a question about it; use compare_stays for 2 to 4 hotels, search_stays to find hotels.
get_tour_details
ChatGPTReads one tour in full. Returns photos, overview, what is and is not included, meeting point, pickup, duration, group size, languages, cancellation policy, accessibility and fitness notes, age bands, price per adult and child, rating and star breakdown (no review text) and the book_link; with date, whether it runs that day and its start times. Reads only; nothing is booked. Answer specific questions from its fields, naming the tour; if they do not say, say we do not know. Use for one tour from search_tours or the menu; use compare_tours for 2 to 4, search_tours to find tours, get_place_details for a sight or restaurant.
get_trip
ChatGPTThe trip as it stands: days and stops in order, any bookings and documents on file, build progress, and links. Also returns next: the first stop's dates, the budget per night if known, recommended stay areas and an assistant_hint for leading the traveller through stays, tours and the flight.
list_trips
ChatGPTLists the trips in the signed-in Adonde account, newest first (up to 50). Returns trips[], each with id (the trip_id), name, place, start and end (YYYY-MM-DD) and open links, plus a new_trip link; an account with no trips says so. Reads only; takes no arguments. Use it to find a trip_id, then get_trip to read that trip's days or update_trip to rename or delete it; use open_trip_form or start_trip to plan a new trip.
open_trip_form
ChatGPTShows a short trip details form (places, dates or month, length, party, budget, pace, flights, interests, notes), prefilled with what the traveller already said. Returns the form card; its Start button posts one line ending in a code, which start_trip takes as intent_ref. Creates nothing. Use when the traveller wants to plan a trip but details are missing, even before they name a destination; use start_trip directly when place, dates and party are known, suggest_route when they ask where to go. After the form is submitted, do not ask those questions again.
place_picks
ChatGPTPlaces chosen menu items on specific days. Every id is checked against this trip's menu (unknown ids are refused by name), tours against the operator's published schedule, and our packer sets the times. Returns the placed days and anything dropped, with the reason. Writes: replaces earlier picks on the dates sent; optional ratings (love / like / skip ids) are saved on the trip and skipped ids are never placed. Use after get_menu once the traveller has chosen; use build_trip to let our AI choose, add_stop to add one item and keep the rest of the day, edit_day to remove, move or swap placed items.
search_flights
ChatGPTSearches flights between two airports, round trip or one way. Returns the top 6 by value (price plus a penalty for long trips and extra stops; limit up to 20) with total_available and a summary; each flight has the total price for all adults, outbound and return (duration_minutes, stops, layovers, departs, arrives, carriers, tight_connection under 60 minutes) and a book_link to the Adonde flight search. Reads only; nothing is booked. travel_time_total is out plus back: never present it as one flight's duration; quote each direction. Use after stays and tours for a built trip (get_trip's next has the dates); ask for the origin airport if unknown.
search_places
ChatGPTLooks up cities, regions and countries by name as someone types, e.g. Lisb or Ireland. Returns up to 6 candidates, each with name, country, kind (city, region or country), coordinates and a label such as Lisbon, Portugal. Reads only; creates nothing. The trip form's destination box calls it; call it yourself only to check a spelling before start_trip. Use get_city_guide to learn about a city, suggest_route to choose cities in a country.
search_stays
ChatGPTReturns bookable hotels with photos, guest scores, policies, member rates and a Book link, with or without dates. For questions about hotels, stays, where to sleep, resorts or neighbourhoods to stay in. Returns the top 10 by default (limit up to 50, offset to page), nearest distance band first, then guest score, each with hotel_id, whole-stay price and book_link, plus total_available, has_more and next. Reads only; nothing is booked. With no dates it uses a labelled sample window and returns needs: ["dates"]: show the hotels, then ask for dates. Filters apply after ranking and the result names those applied. Use get_stay_details for one hotel in depth, compare_stays for 2 to 4 side by side.
search_tours
ChatGPTSearches bookable tours and experiences in a city, best first. Returns the top 8 by default (limit up to 50, offset to page), each with product_code, rating, price, duration, book_link and details_link on getadonde.com, plus next with the steps left. With date, tours not running that day are left out and start times shown; without one, runs_on_date is null, so never say a tour runs on a day you did not search. Reads only; nothing is booked. Use get_tour_details for one tour in depth, compare_tours for 2 to 4 side by side, get_menu for tours already on a trip's menu.
share_trip
ChatGPTShares a built trip with other people. mode together emails each address an invitation to build the trip with the traveller (they join after signing in or up). mode show makes a read-only link anyone can open for 7 days, emailed to any addresses given and always returned so it can be copied. Returns a message and, for show, the link. Sends email, which cannot be unsent: share only with the traveller's yes and the addresses they gave; at most 10 emails a call, 20 per trip a day. revoke true switches off public links and invitations not yet accepted. Use to send a trip to others; use update_trip to rename or delete it, list_trips to find its trip_id.
stage_intent
ChatGPTCalled by Adonde's cards when a button is pressed, not by the assistant. Holds that button's exact arguments for 30 minutes under a short code and returns it as ref; the matching tool loads them when called with that intent_ref. Changes no trip and sends nothing.
start_trip
ChatGPTCreates a real Adonde trip in the traveller's account and starts its menu of real tours, sights and food. One destination, or a multi-city route in one call: pass legs (2 to 8 dated stops, as suggest_route's next.start_trip_args gives them). Returns trip_id, the stops (legs, each with its leg_id) and a status. Writes a new trip; nothing is booked. A place we cannot find is refused with a spelling check before anything is created. Use when the place, dates and party are known; use open_trip_form to collect missing details, suggest_route when the cities are not chosen yet. Next, call get_menu one stop at a time.
suggest_route
ChatGPTSuggests where to go and in what order for a country, region or big city. Returns 3 to 7 ordered stops with nights, a one-line why, best months and highlights, getting_there for each hop (distance and train, drive or fly advice), the best time to go, and next.start_trip_args. days counts calendar days, first and last included (7 days is 6 nights). Reads only; creates nothing. Use when the traveller asks where to go, which cities, how to split the days or when to go; then offer start_trip with the route as legs. Use get_city_guide for one city, open_trip_form when the places are settled but details are missing.
update_trip
ChatGPTRenames, deletes or restores one of the traveller's own trips; one change per call. name renames it here and in the Adonde app. delete true moves it to the bin: it leaves list_trips and the app and its public link stops working, but nothing is erased, and restore true brings it back with its days and stops within 30 days. Returns what changed and how to undo it. Writes to the trip; another person's trip is refused. Ask before deleting. Use to tidy the traveller's trips; use list_trips to find a trip_id, share_trip to send a trip to others.