Slår danske køreplaner, afgange og rejseplanlægning op via Rejseplanen.
@mikkelkrogsholm
Community-bidragyder
mikkelkrogsholm/skills
Open source repository
Nedenstående er skillens egen dokumentation, hentet fra kildekoderepoet. Ophavsret tilhører forfatteren.
Plan journeys, check departures/arrivals, and search for stops/stations across all Danish public transport (trains, buses, metro, light rail) via the Rejseplanen API. Requires an API access ID — users must set the REJSEPLANEN_ACCESS_ID environment variable.
REJSEPLANEN_ACCESS_IDexport REJSEPLANEN_ACCESS_ID=your_access_id_here
To make it permanent, add the export line to your shell profile (~/.bashrc, ~/.zshrc, etc.).
If REJSEPLANEN_ACCESS_ID is not set, the CLI will exit with a clear error message.
Invoke this skill when the user wants to:
bun run skills/rejseplanen/cli/src/cli.ts location --query <name> [flags]
Key flags:
--query <name> — Search string (required)--max <n> — Max results (default: 10)--type <S|A|P|ALL> — Filter by type: S=stop, A=address, P=POI, ALL=all (default: ALL)--format json|table|plainbun run skills/rejseplanen/cli/src/cli.ts trip --origin <id-or-name> --destination <id-or-name> [flags]
Key flags:
--origin <id-or-name> — Origin stop ID or name (required)--destination <id-or-name> — Destination stop ID or name (required)--date <YYYY-MM-DD> — Travel date (default: today)--time <HH:MM> — Travel time (default: now)--arrive-by — Search for arrival time instead of departure--results <n> — Number of trip results, 1-6 (default: 5)--no-fares — Exclude fare/pricing (fares included by default)--via <id-or-name> — Via stop ID or name--stops — Show intermediate stops for each leg--scroll <token> — Scroll token for pagination (use scrollEarlier/scrollLater from output)--format json|table|plainbun run skills/rejseplanen/cli/src/cli.ts departures --stop <id> [flags]
Key flags:
--stop <id> — Stop ID from location search (required)--date <YYYY-MM-DD> — Date (default: today)--time <HH:MM> — Time (default: now)--duration <minutes> — Time window in minutes, 0-1439 (default: 60)--max <n> — Max results (default: 20)--format json|table|plainbun run skills/rejseplanen/cli/src/cli.ts arrivals --stop <id> [flags]
Same flags as departures.
bun run skills/rejseplanen/cli/src/cli.ts nearby --lat <latitude> --lon <longitude> [flags]
Key flags:
--lat <n> — Latitude (required)--lon <n> — Longitude (required)--radius <meters> — Search radius (default: 1000)--max <n> — Max results (default: 10)--format json|table|plainbun run skills/rejseplanen/cli/src/cli.ts disruptions [flags]
Key flags:
--stop <id> — Filter by stop ID--line <name> — Filter by line--date <YYYY-MM-DD> — Date (default: today)--time <HH:MM> — Time (default: now)--max <n> — Max results (default: 20)--format json|table|plainlocation to find a stop and get its ID, or use nearby to find stops near coordinatestrip to plan a journey between two stops (fares included by default)departures/arrivals to check schedules and real-time delaysdisruptions to check for service alerts before traveling# Step 1: find stop IDs
bun run skills/rejseplanen/cli/src/cli.ts location --query "København H"
bun run skills/rejseplanen/cli/src/cli.ts location --query "Aarhus H"
# Step 1 (alt): find nearby stops by coordinates
bun run skills/rejseplanen/cli/src/cli.ts nearby --lat 55.6727 --lon 12.5655
# Step 2: plan a trip (fares included by default)
bun run skills/rejseplanen/cli/src/cli.ts trip --origin "8600626" --destination "8600079"
# Step 3: check departures
bun run skills/rejseplanen/cli/src/cli.ts departures --stop "8600626"
# Step 4: check disruptions
bun run skills/rejseplanen/cli/src/cli.ts disruptions
bun run skills/rejseplanen/cli/src/cli.ts location --query "Nørreport"
bun run skills/rejseplanen/cli/src/cli.ts trip --origin "København H" --destination "Aarhus H" --date 2026-03-20 --time 08:00
bun run skills/rejseplanen/cli/src/cli.ts departures --stop "8600626" --duration 30
bun run skills/rejseplanen/cli/src/cli.ts arrivals --stop "8600067" --format table
bun run skills/rejseplanen/cli/src/cli.ts nearby --lat 55.6727 --lon 12.5655 --radius 500
bun run skills/rejseplanen/cli/src/cli.ts disruptions
bun run skills/rejseplanen/cli/src/cli.ts trip --origin "København H" --destination "Aarhus H" --via "Odense" --stops
{
"type": "rejseplanen_location",
"query": "København",
"locations": [
{
"id": "8600626",
"name": "København H",
"lat": 55.672778,
"lon": 12.564444,
"type": "ST"
}
],
"count": 1
}
{
"type": "rejseplanen_trip",
"origin": "København H",
"destination": "Aarhus H",
"date": "2026-03-20",
"time": "08:00",
"via": "Odense",
"scrollEarlier": "token...",
"scrollLater": "token...",
"trips": [
{
"origin": "København H",
"destination": "Aarhus H",
"departure": "08:12",
"arrival": "11:23",
"duration": "3:11",
"changes": 0,
"legs": [
{
"name": "IC 123",
"type": "IC",
"origin": "København H",
"destination": "Aarhus H",
"departure": "08:12",
"arrival": "11:23",
"track": "7",
"direction": "Aarhus H",
"cancelled": false,
"rtDeparture": null,
"rtArrival": null,
"delayed": true,
"delayMinutes": 5,
"notes": [{"type": "bike", "text": "Cykel reservation påkrævet"}],
"stops": [{"name": "Høje Taastrup St.", "arrival": "08:27", "departure": "08:28"}]
}
]
}
],
"tripCount": 1
}
{
"type": "rejseplanen_departures",
"stop": "8600626",
"date": "2026-03-20",
"time": "08:00",
"departures": [
{
"name": "IC 123",
"line": "IC",
"direction": "Aarhus H",
"date": "2026-03-20",
"time": "08:12",
"rtDate": null,
"rtTime": null,
"track": "7",
"cancelled": false,
"stopId": "8600626",
"delayed": true,
"delayMinutes": 5,
"notes": [{"type": "bike", "text": "Cykel reservation påkrævet"}]
}
],
"count": 1
}
{
"type": "rejseplanen_arrivals",
"stop": "8600626",
"date": "2026-03-20",
"time": "08:00",
"arrivals": [
{
"name": "IC 456",
"line": "IC",
"origin": "Aarhus H",
"date": "2026-03-20",
"time": "11:23",
"rtDate": null,
"rtTime": null,
"track": "7",
"cancelled": false,
"stopId": "8600626",
"delayed": true,
"delayMinutes": 5,
"notes": [{"type": "bike", "text": "Cykel reservation påkrævet"}]
}
],
"count": 1
}
{
"type": "rejseplanen_nearby",
"lat": 55.672736,
"lon": 12.565558,
"radius": 1000,
"stops": [
{
"id": "8600626",
"name": "København H",
"lat": 55.672736,
"lon": 12.565558,
"dist": 120,
"type": "ST"
}
],
"count": 1
}
{
"type": "rejseplanen_disruptions",
"date": "2026-03-18",
"disruptions": [
{
"id": "HIM_123",
"subject": "Sporarbejde København H - Ringsted",
"message": "Full disruption text...",
"priority": 2,
"startDate": "2026-03-18",
"startTime": "04:00",
"endDate": "2026-03-20",
"endTime": "23:59",
"affectedStops": ["København H", "Ringsted St."],
"affectedLines": ["IC", "Re"]
}
],
"count": 1
}
| Format | Best for |
|---|---|
json |
Default — programmatic use, full data |
table |
Quick human-readable overview |
plain |
Easy reading of individual items |
All errors are written to stderr as { "error": "...", "code": "..." } and the process exits with code 1.