departures
Abfahrten oder Ankünfte für EINE Haltestelle — als Daten, für Ergebnisse, die du weiterverarbeitest. Steht show_departures in deinem Werkzeug-Satz, ist das der Vordereingang für die Frage eines Menschen. Für „wann fährt von X", „letzte Stadtbahn von X" kommt die Auskunft aus diesen Werkzeugen; für eine A→B-Frage aus connections. Pflicht ist eine konkrete Stop-id aus einer vorhergehenden Ortsauflösung (z.B. 'de:03241:57'); ein Haltestellen-NAME in id ist ein Argument-Fehler, keine leere Tafel. Optional: time und is_arrival_time; modes (Flüge ['air'], ohne sie ['transit']); direction (Halt-Name, in dessen Richtung gefahren wird) bzw. für eine weiche Angabe target_bearing mit bearing_tolerance; lines (Linie oder Linie@Richtung, wie die Tafel sie an mot.line.direction.ids nennt); arrival_departure; ein Fenster time_range_seconds mit last_of_window; und für den Umfang verbosity, limit sowie render_payload. Für „letzte Bahn heute", „erste S-Bahn morgen" statt der Tafel first_last: je Linie und Richtung erste und letzte Fahrt des Tages (time wählt den Tag). Für „hat X einen Aufzug zur U-Bahn?" statt der Tafel facilities: Aufzüge, Rolltreppen, Rampen des Halts. modes, lines und direction schränken hart ein. Eine leere Tafel ist keine Auskunft: blieb sie mit ['tram'] („Straßenbahn") leer, mit ['tram','subway'] nachfassen — sonst ohne den Filter. Namen in lang (Vorgabe 'de'), der Name vor Ort daneben in localName — „Meran (Merano)". Anleitung: get_usage_guide mit tool='departures' — erste und letzte Fahrt, Aufzüge, die Echtzeit-, Ausfall- und Zitier-Felder. Anti-Fab: Linien, Richtungen, Zeiten, Gleise, Verspätung, Ausfall und Aufzüge ausschließlich aus dem Output dieses Aufrufs.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Stop id to read the board of, as the resolver hands it out: a DHID (`"de:03241:57"`, `at:…`, `ch:…`, `it:…`) or a station id (`"Parentch:1:sloid:3000"`). Resolve the stop first — a name here is an argument error. | |
| lang | No | Die Sprache der Namen: `'de'` (Vorgabe), `'it'`, `'fr'`, auch mit Region (`'de-CH'`). | |
| time | No | ISO 8601 timestamp (e.g. `"2026-06-15T08:30:00Z"`). Omit for now. Resolve a spoken time with the time tool rather than computing one. | |
| limit | No | Maximum number of departures, at least 1. Default 5, values above 15 are served as 15. | |
| lines | No | Only the departures of these lines, by the ids a board writes: the line alone (either direction) as at `mot.line.id`, or line@direction as at `mot.line.direction.ids` (`"de:VBN-VH:6002:_3@0"`); several combine. A line NUMBER (`"9"`) is no id — read the id off a board first. An entry that is no line is an argument error. | |
| modes | No | Transport-mode filter; the board then shows nothing else. Entries: `"bus"`, `"tram"`, `"subway"`, `"train"`/`"rail"`, `"ferry"`, `"air"` (flights), `"transit"` (all of them but flights); several combine. Another entry — a street mode, a misspelling — is an argument error, not a dropped filter: a board lists scheduled services. Omitted or empty = all modes. A Stadtbahn or light-rail mention needs BOTH labels — `["tram","subway"]`: which of the two such a network carries depends on the dataset rather than on the vehicle. Set the filter only when the user really asks for a vehicle type; the guide has the rest of the vocabulary and the traps. | |
| format | No | Answer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.** | |
| extended | No | `true` keeps the map data in the text: every stop's coordinate, the whole course of each run, and each departure's way (`pathOnMap`, `pathSource`, `additionalInfos.pathKind`) — for an application that DRAWS the board. It multiplies the answer. A chat client leaves it off. | |
| direction | No | Name of a stop the user wants to head TOWARD („Richtung Wettbergen") — not a routing destination. The board keeps only departures heading that way, whether the named stop is the terminus or a stop downstream of the queried one. Matching is case-insensitive and area-prefix-tolerant. | |
| verbosity | No | How much of each departure comes back: `"compact"` (default — everything an answer is cited from) or `"full"` (adds the onward stops of the run, and with them the per-stop cancellation marker). A third word is an argument error, not the default. | |
| facilities | No | Instead of the board, the stop's lifts, escalators and ramps („hat Kröpcke einen Aufzug zur U-Bahn?"): `"elevator"`, `"escalator"`, `"ramp"` or `"all"`; the guide has the fields. | |
| first_last | No | `true` answers instead of the board, per line and direction, the first and the last ride of a day („letzte Bahn heute"): the day running now, or the calendar day of `time` in local time. | |
| last_of_window | No | Which end of a `time_range_seconds` window to read: omitted or `false` the FIRST departures, `true` the LAST ones (the end-of-service question). An answer carrying `window_truncated: true` beside its board did NOT reach the window's end — its last entry is then not the last departure. Without a window it has no effect. | |
| render_payload | No | `true` appends the same board again as raw JSON, addressed to the user rather than to the model — for an application that draws a departure board. A chat client leaves this off: it is the whole answer twice. | |
| target_bearing | No | Target bearing in degrees (0=N, 90=E, 180=S, 270=W) for a SOFT direction („Richtung Norden", „Richtung Stadt") instead of a stop name. The board keeps only departures whose course lies within `bearing_tolerance` of it. Mutually exclusive with `direction`. | |
| is_arrival_time | No | `true` reads `time` as an ARRIVAL time — the same as `arrival_departure = "arrivals"`. | |
| arrival_departure | No | `"arrivals"` (when vehicles reach `id`) or `"departures"` (default) — a third value is an argument error. Wins over `is_arrival_time` when both are set. | |
| bearing_tolerance | No | Angular tolerance in degrees for `target_bearing`. Default ±60°. | |
| time_range_seconds | No | Time WINDOW in seconds, starting at `time`. Together with `last_of_window` it reads the last rides before the window ends: pick it so the window ENDS where the question does. The last ride of a day is `first_last`. Omit for a normal next-N lookup. |