link_datetime
Löst eine Zeit-Nennung in einen absoluten ISO-8601-Zeitpunkt auf — „morgen früh", „heute Abend um 18 Uhr", „in zwei Stunden", „um 8:30". Auch „jetzt"/„now"/„aktuell" wird aufgelöst: nutze das als kanonische Quelle für die aktuelle Zeit, statt dir selbst ein Datum auszudenken. Das Ergebnis (candidates[].datetime_range.start) geht direkt als connections.time bzw. departures.time weiter. Nennt der Nutzer bereits eine vollständige ISO-8601-Zeit mit Offset, ist kein Aufruf nötig. Pflicht: text — die Nennung, so wie der Nutzer sie schrieb. Optional: lang ('de' Default, 'en', 'fr') und tz (IANA-Name; ohne ihn wird die Lokalzeit als Europe/Berlin gelesen und als korrekter UTC-Instant zurückgegeben). Was zurückkommt: EIN Zeitpunkt, kein Fenster — start und end sind derselbe Instant. Eine nicht auflösbare Phrase liefert candidates: []; dann nachfragen, statt selbst zu rechnen. Anleitung: get_usage_guide mit tool='link_datetime' — insbesondere, auf welche Stunde eine vage Tageszeit fällt und was dann zu tun ist. Anti-Fab: Datum und Uhrzeit sind Fakten wie eine Liniennummer und stammen aus diesem Werkzeug — kein selbst-erfundenes Datum, keine eigene Datums-Arithmetik. Returns candidates[].datetime_range:{start,end}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tz | No | Optional IANA timezone the stated local time is interpreted in (default `Europe/Berlin`). DST-aware. Pass e.g. `"Europe/Berlin"`; omit for the default. Determines the UTC instant emitted for a wall-clock mention ("8:30" → `06:30Z` in summer). | |
| lang | No | Optional ISO language code (default `de`). Supported: `de`, `en`, `fr`. | |
| text | Yes | Free-text time mention to resolve via the rustling NLU. E.g. "morgen früh", "heute Abend um 18 Uhr", "in zwei Stunden". | |
| format | No | Answer serialisation: `"toon"` (default) or `"json"` — the detail is in `get_usage_guide`. **An agent leaves this out.** |