2.5k
GitHub Stars
8
Bundled Files
2 months ago
Catalog Refreshed
4 months ago
First Indexed
Readme & install
Copy the install command, review bundled files from the catalogue, and read any extended description pulled from the listing source.
Installation
Preview and clipboard use veilstrat where the catalogue uses aiagentskills.
npx veilstrat add skill openclaw/skills --skill oebb-scotty- _meta.json306 B
- arrivals.sh2.6 KB
- departures.sh2.6 KB
- disruptions.sh827 B
- README.md1.9 KB
- search-station.sh914 B
- SKILL.md9.5 KB
- trip.sh3.8 KB
Overview
This skill is an Austrian rail travel planner that queries the ÖBB Scotty (HAFAS mgate) API for trip planning, station boards, and service alerts. It covers ÖBB long-distance, regional trains, S-Bahn, and cross-border connections. Use it to find connections, check departures/arrivals, and monitor disruptions across Austria.
How this skill works
The skill sends POST requests to the ÖBB mgate endpoint with required authentication headers and service calls such as LocMatch, TripSearch, StationBoard, and HimSearch. It resolves locations, requests journey options (including product filters and passenger stops), fetches station departure/arrival boards, and retrieves service messages. Responses include common arrays (prodL, locL) where indices like prodX must be resolved against those arrays to get human-friendly train names.
When to use it
- Planning a trip between two Austrian stations or addresses
- Checking live departures or arrivals at a specific station
- Finding platform, scheduled vs real-time times, and transfer details
- Filtering connections by product type (S-Bahn, REX, IC, RJX, etc.)
- Monitoring current service disruptions or alerts affecting routes
Best practices
- Always perform a LocMatch lookup to get the correct location lid before TripSearch or StationBoard requests
- Include common.prodL resolution: map secL[].jny.prodX to common.prodL[].name to display train names
- Use date/time in YYYYMMDD and HHMMSS formats and set outFrwd true/false for forward/backward searches
- Limit numF or maxJny to reduce payload size for faster responses
- Check the response err/errTxt fields to handle NO_MATCH, PARSE, or other errors gracefully
Example use cases
- Find next 5 connections from Wien Hbf to Salzburg Hbf for a given date/time, including intermediate stops
- Show departures (type=DEP) from Graz Hbf at 08:00 with platform information
- Resolve a journey leg’s train name by mapping prodX to common.prodL[].name to display "RJX 662" or "S 7"
- Request HimSearch to list current service alerts for regional trains and S-Bahn lines
- Search stations or POIs by partial name (LocMatch) to get lid and coordinates for routing
FAQ
Requests require the auth and client blocks in the JSON body as used by the mgate API; include those fields exactly and supply svcReqL for the service call.
How do I get the train name from a TripSearch response?
Look up each leg’s jny.prodX index into the common.prodL array; common.prodL[prodX].name contains the train label.