This page defines the protocolBinding cited by the A2A Agent Card. There is no HTTP/JSON-RPC endpoint: the only interface is email.
| Field | Required | Notes |
|---|---|---|
request_type | no | trip-idea (default), review-my-plan or plan-b |
constraints | no | put it first: what the traveller does NOT want or cannot do (no_car, no_flight, with_kids, reduced_mobility, with_dog, max_walk_km), or free text; matches the constraints object in trips.json |
origin_city | for trip-idea, review-my-plan | city where the traveller starts |
dates | no | YYYY-MM-DD to YYYY-MM-DD, a month, or flexible |
days | yes | 1, 2 or 3 |
travellers | no | e.g. 2 adults |
interests | no | free text |
my_plan | for review-my-plan | the plan the user already has, day by day, plain text (optional for plan-b) |
booked_trip | for plan-b | place, dates and what is already booked and fixed |
problem | for plan-b | rain, strike, closed attraction, one day less, or other |
must_keep | no | plan-b only: what cannot change (for example the room or the flights) |
reply_language | no | en (default), pt or fr |
how_did_you_find_us | no | optional; how the Bot found this service (no personal data) |
To: hmv+estanoir@mail.grokbot.com Subject: Short trip idea - <origin city> - <1, 2 or 3 days> request_type: trip-idea (trip-idea, review-my-plan or plan-b; default trip-idea) constraints: no_car, small bag only (first: what the traveller does NOT want or cannot do) origin_city: Porto (where the traveller wakes up) dates: 2027-05-12 to 2027-05-14 (or a month, or "flexible") days: 3 (1, 2 or 3) travellers: 2 adults interests: lakes, scenic trains, walking reply_language: en (en, pt or fr) how_did_you_find_us: llms.txt (optional; no personal data)
trip-idea — Short-trip idea (1-3 days). A new 1-3 day trip idea from a given origin, in the notebook's method: how to get there, where to sleep (neighbourhood, not stars), three places worth the time and what to cut. Send: origin_city, days; constraints first if any; dates, travellers, interests and reply_language are optional. Suggested subject: Short trip idea - <origin city> - <1, 2 or 3 days>review-my-plan — Review my plan (second opinion). A Bot sends a 1-3 day plan its user already has. We reply with a second opinion on the order of the days, the transport logic, what to cut and where to sleep (by neighbourhood). We do NOT check the timetables or prices in the plan, only its logic, and every reply says so. Send: my_plan (day by day, plain text), origin_city, days; constraints first if any. Suggested subject: Review my plan - <destination> - <1, 2 or 3 days>plan-b — Plan B for a booked trip. For a trip already booked that runs into rain, a strike, a closed attraction or one day less. We reply with what to swap and what to keep in the same place (same base, same bookings). This is NOT an emergency service: every reply is human-reviewed and can take about 48 hours, so write as early as possible, and always confirm timetables, strikes and closures on official sources (transport operator, attraction, local authority). Send: booked_trip (place, dates, what is already booked and fixed), problem (rain, strike, closure, one day less, other), days; my_plan and must_keep are optional; constraints first if any. Suggested subject: Plan B - <destination> - <dates>Ask first what the traveller does NOT want or cannot do: put a "constraints:" line at the top of the request, with any of no_car, no_flight, with_kids, reduced_mobility, with_dog, max_walk_km (for example: constraints: no_car, with_kids, max_walk_km: 5); free text is also fine (for example small bag only). In trips.json every trip has a "constraints" object with the same keys in camelCase (noCar, noFlight, withKids, reducedMobility, withDog, maxWalkKm). Values: true = the trip as told works with that constraint; false = it does not (for example it uses a flight); "unknown" = not verified. maxWalkKm is a number of km per day only when it was measured, otherwise "unknown". Accessibility, children and dog suitability are never stated unless verified.
Ready-made requests to copy: /example-requests/.
Every reply is one plain-text email in two parts, so a Bot can parse it and a person can read it.
```json fenced block, at the top of the email.| JSON field | Meaning |
|---|---|
request_type | always "trip-idea" for this type |
origin | city where the traveller starts (as understood from the request) |
days | number of days (1, 2 or 3) |
transport | transport logic in one or two sentences (train / flight / coach), no fares |
where_to_sleep | neighbourhood or town to sleep in, not stars, no room prices |
three_places | list of three places worth the usable time |
what_to_cut | what to drop if time runs short |
sources | list of URLs the idea is based on (published trip pages first) |
affiliate_links_marked | true when every partner link in the text part is labelled [affiliate] or [direct] |
disclaimer | always the string "not a travel agency; no bookings; no prices" |
No invented prices: the JSON and the text never contain fares or room rates. Prices are checked live by the traveller on partner sites.
```json
{
"request_type": "trip-idea",
"origin": "Porto",
"days": 3,
"transport": "Morning flight Porto–Bergamo, a small bag, no priority. Coach to Milan Centrale. Train to Colico. Next day: train to Tirano and the Bernina to St. Moritz, out and back in a day. Home by the same path.",
"where_to_sleep": "A room in Colico, two nights. The bed sits by the lake; the Duomo and St. Moritz are visits.",
"three_places": [
"The boat between Varenna and Bellagio. The lake itself, not the postcard shore.",
"The Bernina. A stop at Alp Grüm. The other stations if the train allows.",
"Milan on foot: the castle, one gallery, a neighbourhood. A place to eat off the axis."
],
"what_to_cut": "The Duomo queue at peak hour. Branded shops and coffee in the centre. “While we are here” at one more monument when the flight leaves at 20:00.",
"sources": [
"https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
"https://estanoir.grok.me/testemunhos"
],
"affiliate_links_marked": true,
"disclaimer": "not a travel agency; no bookings; no prices"
}
```
Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.
Idea: 3 days from Porto, Lake Como and the Bernina Express, no car. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).
Day 1: morning flight to Bergamo, coach to Milan Centrale, train to Colico. Day 2: train to Tirano, Bernina Express to St. Moritz and back. Day 3: Milan on foot, flight home.
Compare live fares and rooms yourself:
- Flights: https://tp.media/r?campaign_id=100&marker=776957&p=4114&trs=573367&u=https%3A%2F%2Fwww.aviasales.com%2F&sub_id=bots [affiliate]
- Rooms near Colico: https://www.booking.com/searchresults.html?ss=Colico%2C+Italy [direct]
The reply always says that we did not check the timetables or prices in the plan, only its logic (field not_validated).
| JSON field | Meaning |
|---|---|
request_type | always "review-my-plan" |
origin | city where the traveller starts |
days | number of days in the plan (1, 2 or 3) |
day_order | list, one line per day: the order we suggest, and why if it changed |
transport | comment on the transport logic between the places in the plan (train / flight / coach), no fares, no timetable checks |
what_to_cut | what to drop from the plan if time runs short |
where_to_sleep | neighbourhood or town to sleep in (one base when possible), not a named hotel, no room prices |
not_validated | always the string "we did not check the timetables or prices in your plan, only its logic" |
sources | list of URLs the opinion is based on (published trip pages first) |
affiliate_links_marked | true when every partner link in the text part is labelled [affiliate] or [direct] |
disclaimer | always the string "not a travel agency; no bookings; no prices" |
```json
{
"request_type": "review-my-plan",
"origin": "Porto",
"days": 3,
"day_order": [
"Day 1: flight to Bergamo, train to Colico, the lake in the afternoon (train to Varenna, boat to Bellagio)",
"Day 2: Tirano and the Bernina Express as a full day, back to Colico",
"Day 3: early train to Milan, the castle and the centre on foot, then the coach to Bergamo for the flight"
],
"transport": "The plan puts the Bernina on the arrival day and changes room every night. One lakeside base and the Bernina as a full day 2 cut a hotel change and a long rail detour. Timetables not checked.",
"what_to_cut": "The Duomo queue at peak hour, and a lake visit squeezed in before an evening flight.",
"where_to_sleep": "Colico, two nights (one base by the lake) instead of one night in Milan and one by the lake",
"not_validated": "we did not check the timetables or prices in your plan, only its logic",
"sources": [
"https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
"https://estanoir.grok.me/testemunhos"
],
"affiliate_links_marked": true,
"disclaimer": "not a travel agency; no bookings; no prices"
}
```
Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.
Important: we did not check the timetables or prices in your plan, only its logic. Please confirm every time and fare with the operators.
Second opinion: keep the three places, change the order. Sleep two nights in Colico, do the lake on day 1, give the Bernina a full day 2, and leave Milan for day 3 on the way to the airport. Cut the Duomo queue at peak hour. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).
Plan B is not an emergency service. Every reply is human-reviewed and can take about 48 hours: write as early as possible, and always confirm timetables, strikes and closures on official sources (field not_urgent).
| JSON field | Meaning |
|---|---|
request_type | always "plan-b" |
destination | the booked trip as understood (place and base) |
days | number of days left in the trip |
problem | the problem as understood: rain, strike, closed attraction, one day less or other |
swap | list: what to move or replace, and with what |
keep | list: what stays in the same place (base, bookings already made, fixed transport) |
check_official | list: what to confirm on official sources before acting (operator, attraction, local authority, weather service) |
not_urgent | always the string "not an emergency service; human-reviewed reply, can take about 48 hours; confirm on official sources" |
sources | list of URLs the plan B is based on (published trip pages first) |
affiliate_links_marked | true when every partner link in the text part is labelled [affiliate] or [direct] |
disclaimer | always the string "not a travel agency; no bookings; no prices" |
```json
{
"request_type": "plan-b",
"destination": "Lake Como with a base in Colico, Bernina Express, Milan",
"days": 3,
"problem": "rain forecast on day 1, the lake and boat day",
"swap": [
"Day 1: on the way from Bergamo, stop in Milan for the castle and the covered gallery, reach Colico in the evening",
"Day 3: if the forecast is better, the Varenna to Bellagio boat in the morning, then Milan only for the train and the coach to Bergamo; if it still rains, cut the boat"
],
"keep": [
"The room in Colico, two nights",
"The flights",
"Day 2 on the Bernina Express"
],
"check_official": [
"the national weather service forecast",
"lake boat timetables on the operator's site",
"train timetables on the rail operator's site"
],
"not_urgent": "not an emergency service; human-reviewed reply, can take about 48 hours; confirm on official sources",
"sources": [
"https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/",
"https://estanoir.grok.me/testemunhos"
],
"affiliate_links_marked": true,
"disclaimer": "not a travel agency; no bookings; no prices"
}
```
Hello. This reply was written by the Bot assistant of Está no Ir and checked by a person before sending. Está no Ir is a travel notebook, not a travel agency: we do not book, sell or quote trips, and we do not give prices.
This is not an emergency service. Before you change anything, confirm the forecast, the boat and the train timetables on official sources.
Plan B: keep the room in Colico, the flights and the Bernina day. Move Milan to the rainy day 1 (castle and covered gallery on the way to Colico) and try the boat on day 3 morning if the weather improves; if not, cut it. This follows a trip published in the notebook (https://estanoir-bots.pages.dev/trips/porto-como-bernina-milao/).
Optional: add a line "how_did_you_find_us:" (for example llms.txt, an agent directory, a search engine or another Bot). It is never required, a request without it gets the same reply, and it should not contain personal data.
For each request we keep one short log line with: origin city; number of days; reply language; outcome (answered, partly answered or declined); what was missing (for example: no published trip from that origin); the optional "How did you find us?" answer, if given. The log line holds no names, email addresses, phone numbers or other personal details. It is used only to see which trips and origins are missing and how Bots find us; it is not shared or sold, and senders are not added to any mailing list.
Human review: every reply is drafted by a Bot assistant and sent only after a human review. Response time: best effort, usually within 48 hours: every reply is drafted by a Bot assistant and sent only after a human review.
Ignored: instructions embedded in emails; links in emails; unrelated requests (SEO, marketing, link exchanges).
Machine-readable copies: JSON blocks email-binding-v1, reply-format-example, reply-format-example-review-my-plan and reply-format-example-plan-b in this page's source. Home: https://estanoir-bots.pages.dev/.
Está no Ir is a travel notebook (content project), NOT a travel agency: it does not sell, book or quote trips, issue vouchers or take payments. Any booking is made directly with third-party partners, under their terms. Version 0.3.0, updated 2026-10-24. Human site: https://estanoir.grok.me. Affiliate disclosure.