Plan a public-transport journey in Switzerland
plan_journeyFind the best connections by train, tram, bus, boat and mountain railway between two places in Switzerland, from Spick Me's own routing engine over the official Swiss timetable. Door to door: an address or a named place works as well as a station, and the walk to and from the nearest stops is included.
Use it for "how do I get from A to B", "when is the next train to …", "I need to be in Bern by 9". Every journey comes with a picture_url: a link that opens a ready-made image of the connection the user can look at or share — offer it when a picture would help.
Inputs: from and to are each A station or stop name ("Zürich HB", "Bern", "Lausanne, Flon"), an address ("Bahnhofstrasse 1, Winterthur"), a named place ("ETH Zürich", "Kunsthaus"), a coordinate as "geo:47.3769,8.5417", or a place_id returned by find_place ("stop:8503000"). Names are read the way a rider types them; an ambiguous name returns candidates instead of a guess. Give departure (leave at or after) or arrival (be there by), not both; both are Swiss local time in ISO 8601, e.g. "2026-09-26T08:00"; an explicit offset or Z is converted. A bare "08:00" means today (tomorrow if it has long passed). Omit for now. via is up to three stations or stops the journey must pass through (then one best journey is returned); to stop somewhere on the way, use plan_day_out. max_transfers caps the number of changes (0 = direct only). limit is how many alternatives to return (1–8, default 4).
All times are planned timetable times with their Swiss offset; live delays are not included, so say so when it matters.
Example: {"from": "Winterthur", "to": "Bern", "departure": "2026-09-26T07:00"}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Where the journey ends. | |
| via | No | Stations or stops the journey must pass through, in order. With via, one best journey is returned. | |
| from | Yes | Where the journey starts. | |
| limit | No | How many alternative journeys to return. | |
| arrival | No | Arrive by this time. Give this or departure, not both. | |
| departure | No | Leave at or after this time. Omit both departure and arrival for now. | |
| max_transfers | No | The most changes of vehicle allowed; 0 for direct connections only. | |
| transfer_time_factor | No | How much time to allow for changing trains, as a multiple of the timetable's minimum change times: 1 (default) is the timetable's own; 1.5 for luggage, children or reduced mobility; 0.7 for a fast walker. Between 0.5 and 3. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| data | Yes | ||
| from | Yes | ||
| journeys | Yes | ||
| interpreted | No | ||
| walk_instead | No |