You already planned the trip by talking. Now put it on the map.

An assistant hands you a wall of text that isn't a trip: no map, no days, no distances. Copy this text, paste it into that same conversation, and what it answers becomes a real trip here.

  • 01

    Copy the instructions

    It's a single instruction. Nothing to install, and no account needed yet.

  • 02

    Paste it to your assistant

    In the same conversation where you planned the trip: ChatGPT, Claude, whichever you use. It will reply with a code block.

  • 03

    Paste its answer into Iterare

    Open the search bar and paste the whole block. You'll see which place was found for every stop before anything is created.

The text you copy

I want to move this trip into **Iterare**, an app that lays it out on a map with its calendar. Give it back to me in the JSON format described below, and reply with the JSON only: no explanation before or after.

## Rules you don't break

1. **Never include coordinates.** No `lat`, no `lng`, nothing like it. Each stop is located by `search` —the name of the place— plus `city` and `country`. OpenStreetMap places it, not your memory — make one up and the place lands miles away without anyone noticing.
2. **`city` and `country` go on every stop.** Without the country, "Córdoba" is either the Spanish one or the Argentinian one and **the geocoder picks, not you**: it has already dropped the Argentinian one into a trip around Andalusia. A name repeated inside one country fails the same way, and that is what `city` settles.
3. **Stops go in the order they're visited.** The first one each day is where you set off from.
4. **Only what you actually know.** If you don't know the date, leave it out; same for the departure time. A gap gets filled in; an invented time gets believed and planned on top of.
5. **The JSON goes whole, in a code block.** In one piece and never trimmed: even if a single stop changes, hand back the complete thing — a fragment can't be pasted anywhere.
6. **Never defer the JSON.** Every message where you propose or change the plan **ends with the complete JSON block**. Don't ask whether I want it, don't say "tell me and I'll hand it over", don't save it for the end of the conversation: without the block the plan stays in the chat and never reaches the map.

## The format

- `trip` — the trip: `name`, plus `startDate`/`endDate` as YYYY-MM-DD if known. Optional.
- `routes` — one entry **per day**. Each carries `route` and `stops` as siblings.
  - `route.name` — what the day is called. Always set it, and make it say what the day is: "Lagos de Covadonga", "Driving through Los Oscos".
  - `route.date` — YYYY-MM-DD. With no date the day comes in as a proposal and takes no slot in the calendar.
  - `route.departureTime` — HH:MM you set off. Without it there are no arrival times, only durations: the app never invents one.
- `stops` — the day's stops, in order:
  - `search` *(required)* — the name of the place, to look up in OpenStreetMap.
  - `city` *(required)* — the town, city or region it sits in ("Torla, Huesca").
  - `country` *(required)* — the country ("Spain"). The three together are the only thing that places the stop.
  - `name` — what to call it in the trip, if you want a different name than the map's.
  - `type` — one of: ciudad, senderismo, mirador, restaurante, hotel, monumento, playa, parque, area-recreativa, parking, banos, otro. The mountain one is `senderismo`; use `otro` if none fits.
  - `mode` — how you get **here from the previous stop**. It belongs to the leg, not the day: a real day is driving to the car park and walking the trail. The first stop doesn't take one.
    - Routed for you: driving, walking, cycling.
    - They carry you, and they run to a timetable: cable_car, train, bus, boat, plane.
  - `durationMin` — minutes spent at this stop.
  - `travelDepartureTime` and `travelMin` — **only on timetabled legs** (cable_car, train, bus, boat, plane): when it leaves and how long it takes. Driving, walking and cycling are computed by the map, and anything you put here is dropped.
  - `notes` — what you need to know about this place that the map doesn't show: it fills up early, it needs booking, the last descent is at 18:00.
  - `checklist` — what you **do** or **carry** here. What you **decide** or look up goes in `notes`.

**The same place can repeat** within a day: leaving the car at the car park, walking up to the lake and coming back for it is three stops, and all three get written.

## Example

```json
{
  "iterare": 2,
  "trip": {
    "name": "Picos de Europa",
    "startDate": "2026-09-12",
    "endDate": "2026-09-14"
  },
  "routes": [
    {
      "route": { "name": "Lagos de Covadonga", "date": "2026-09-13", "departureTime": "08:30" },
      "stops": [
        { "search": "Aparcamiento de Buferrera", "city": "Cangas de Onís", "country": "España", "type": "parking" },
        {
          "search": "Lago Ercina",
          "city": "Cangas de Onís",
          "country": "España",
          "type": "senderismo",
          "mode": "walking",
          "durationMin": 120,
          "notes": "El acceso en coche se cierra en temporada alta: hay lanzadera desde Cangas.",
          "checklist": ["Agua", "Cortavientos"]
        },
        { "search": "Aparcamiento de Buferrera", "city": "Cangas de Onís", "country": "España", "type": "parking", "mode": "walking" }
      ]
    },
    {
      "route": { "name": "Ruta del Cares", "date": "2026-09-14", "departureTime": "09:00" },
      "stops": [
        { "search": "Poncebos", "city": "Cabrales", "country": "España", "type": "parking" },
        {
          "search": "Caín de Valdeón",
          "city": "León",
          "country": "España",
          "type": "senderismo",
          "mode": "walking",
          "durationMin": 60
        },
        {
          "search": "Poncebos",
          "city": "Cabrales",
          "country": "España",
          "type": "parking",
          "mode": "bus",
          "travelDepartureTime": "17:40",
          "travelMin": 75
        }
      ]
    }
  ]
}
```

---

**That JSON block is the point of this conversation.** Everything else —what I tell you, what we discuss, what we change— exists to get there. If you're ever unsure whether it's time to hand it over: it is.

What it won't do

It doesn't accept coordinates from the assistant. A model will invent a lat/lng without blinking and drop the lake forty kilometres away — a believable wrong number is worse than a gap. Every stop is looked up in OpenStreetMap in front of you, and anything not found stays out rather than landing on an approximate point.