Swiss Transport OpenClaw Skill - ClawHub
Do you want your AI agent to automate Swiss Transport workflows? This free skill from ClawHub helps with transportation tasks without building custom tools from scratch.
What this skill does
Swiss Public Transport real-time information. Use when querying train, bus, tram, or boat schedules in Switzerland. Supports station search, departure boards, journey planning from A to B, and connection details. Use for queries like "When does the next train leave from Zürich?" or "How do I get from Bern to Geneva?" or "Show departures at Basel SBB".
Install
npx clawhub@latest install swiss-transportFull SKILL.md
Open original| name | description | homepage |
|---|---|---|
| swiss-transport | Swiss Public Transport real-time information. Use when querying train, bus, tram, or boat schedules in Switzerland. Supports station search, departure boards, journey planning from A to B, and connection details. Use for queries like "When does the next train leave from Zürich?" or "How do I get from Bern to Geneva?" or "Show departures at Basel SBB". | https://transport.opendata.ch |
Swiss Public Transport
Query Swiss public transport (SBB, BLS, ZVV, etc.) using the official transport.opendata.ch API.
Quick Commands
Search stations
curl -s "https://transport.opendata.ch/v1/locations?query=Zürich" | jq -r '.stations[] | "\(.name) (\(.id))"'
Get next departures
curl -s "https://transport.opendata.ch/v1/stationboard?station=Zürich%20HB&limit=10" | \
jq -r '.stationboard[] | "\(.stop.departure[11:16]) \(.category) \(.number) → \(.to)"'
Plan journey from A to B
curl -s "https://transport.opendata.ch/v1/connections?from=Zürich&to=Bern&limit=3" | \
jq -r '.connections[] | "Departure: \(.from.departure[11:16]) | Arrival: \(.to.arrival[11:16]) | Duration: \(.duration[3:]) | Changes: \(.transfers)"'
Get connection details with sections
curl -s "https://transport.opendata.ch/v1/connections?from=Zürich%20HB&to=Bern&limit=1" | \
jq '.connections[0].sections[] | {from: .departure.station.name, to: .arrival.station.name, departure: .departure.departure, arrival: .arrival.arrival, transport: .journey.category, line: .journey.number}'
API Endpoints
/v1/locations - Search stations
curl "https://transport.opendata.ch/v1/locations?query=<station-name>"
Parameters:
query(required): Station name to searchtype(optional): Filter by type (station, address, poi)
/v1/stationboard - Departure board
curl "https://transport.opendata.ch/v1/stationboard?station=<station>&limit=<number>"
Parameters:
station(required): Station name or IDlimit(optional): Number of results (default 40)transportations[](optional): Filter by type (ice_tgv_rj, ec_ic, ir, re_d, ship, s_sn_r, bus, cableway, arz_ext, tramway_underground)datetime(optional): Date/time in ISO format
/v1/connections - Journey planner
curl "https://transport.opendata.ch/v1/connections?from=<start>&to=<destination>&limit=<number>"
Parameters:
from(required): Starting stationto(required): Destination stationvia[](optional): Intermediate station(s)date(optional): Date (YYYY-MM-DD)time(optional): Time (HH:MM)isArrivalTime(optional): 0 (departure, default) or 1 (arrival)limit(optional): Number of connections (max 16)
Helper Script
Use scripts/journey.py for formatted journey planning:
python3 scripts/journey.py "Zürich HB" "Bern"
python3 scripts/journey.py "Basel" "Lugano" --limit 5
Notes
- All times are in Swiss local time (CET/CEST)
- Station names support autocomplete (e.g., "Zürich" finds "Zürich HB")
- API returns JSON by default
- No API key required
- Real-time data includes delays and platform changes