skills/rejseplanen/SKILL.md
Make sure to use this skill whenever the user asks about public transport in Denmark, train schedules, bus times, metro departures, journey planning between Danish cities, or travel routes using Danish public transport — even if they just ask how to get from one place to another in Denmark without naming Rejseplanen specifically. Also use this skill when the user asks about departures or arrivals at a Danish station, next train/bus/metro from a stop, or wants to look up a Danish transit stop or station. Trigger phrases include: rejseplanen, offentlig transport, tog, bus, metro, s-tog, letbane, rejse, afgange, ankomster, køreplan, how to get from, next train, next bus, departures from, arrivals at, rejsetid, togplan, bustider, DSB, Movia, Midttrafik, Nordjyllands Trafikselskab, FynBus, Sydtrafik, offentlig transport Danmark, public transport Denmark, Danish train, Danish bus, hvornår kører, hvordan kommer jeg til, find station, find stop, disruptions, driftsforstyrrelser, forsinkelser, delays, nearby stops, nærmeste stationer, cykel, bike access, wheelchair, kørestol, stoppesteder i nærheden.
npx skillsauth add mikkelkrogsholm/skills rejseplanenInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
development
Make sure to use this skill whenever the user asks about food waste deals, madspild tilbud, discounted groceries near expiry, yellow-label products, cheap food items, last-chance food, or reduced-price items at Danish supermarkets — even if they just mention wanting cheap groceries or food waste near a ZIP code or city without naming Salling or a specific store. Also use this skill when the user asks about food waste at Netto, føtex, Bilka, Salling, BR, or any Salling Group store. Trigger phrases include: madspild, food waste, food waste tilbud, madspild netto, madspild bilka, madspild føtex, cheap food, discounted groceries, near-expiry food, reduced price groceries, yellow label, salling food waste, salling group tilbud, find food waste near me, food waste deals Copenhagen, madspild i nærheden, tilbud på dagligvarer, cheap grocery deals, netto tilbud, føtex tilbud, bilka tilbud, where can I find cheap food, what food waste is available near ZIP, food waste near zip code.
tools
Make sure to use this skill whenever the user asks about biomedical or life sciences literature, medical research, clinical trials, systematic reviews, meta-analyses, drug studies, or any topic that might be in PubMed or MEDLINE — even if they don't mention PubMed explicitly. Also invoke for questions about specific PMIDs, DOIs, journal articles, abstracts, or citation lookups. Trigger phrases include: pubmed, medline, ncbi, biomedical research, medical literature, clinical trial, systematic review, meta-analysis, randomized controlled trial, RCT, MeSH terms, PMID, biomedical journal, life sciences paper, find article by author, find study on, search medical literature, evidence-based medicine, drug efficacy study, cancer research papers, diabetes research, cardiovascular study, neurology research, infectious disease literature, genomics paper, CRISPR study, COVID-19 research, vaccine efficacy study, find papers on, what does the literature say about, research on treatment of, studies on, cite this paper, look up this PMID, what papers exist on, what is the evidence for, find me studies about, medical journal search, biomedical database, abstract for paper, find citation, citation lookup, journal article search.
tools
Make sure to use this skill whenever the user asks about medical preprints, clinical research papers, epidemiology studies, public health research, or any biomedical literature that may be available as a preprint — even if they don't mention medRxiv explicitly. Also invoke this skill when the user wants to find the latest research on a medical topic before journal publication, look up a specific paper by DOI, or browse available research categories. Trigger phrases include: medrxiv, medical preprint, clinical preprint, preprint server, clinical research, epidemiology study, public health paper, infectious disease research, oncology preprint, cardiology study, neurology research, COVID research, vaccine efficacy study, clinical trial results, biomedical literature, latest medical research, unpublished medical study, preprint doi lookup, find medical paper, search medrxiv, medical research database, health research paper, preprint search, medrxiv search, find clinical study, research on disease, find papers about treatment, what's the latest research on, new studies about, recent publications on, preprint about.
development
Make sure to use this skill whenever the user mentions anything related to Danish job searching, job listings, job vacancies, employment opportunities in Denmark, or the Danish government job portal — even if they don't mention jobnet.dk explicitly. Also invoke this skill for questions about specific job titles, occupations, employers, or regions in a Danish employment context. This skill covers the official Danish public job portal operated by STAR (Styrelsen for Arbejdsmarked og Rekruttering). Trigger phrases include: danish jobs, danish job search, jobnet, jobnet.dk, find job denmark, danish employment, job i danmark, job på jobnet, offentlige job, stillinger i det offentlige, public sector jobs denmark, government jobs denmark, STAR jobs, job ledige stillinger, ledig stilling, søg job, job opslag, job vacancy denmark, stillingopslag, jobopslag, sygepleje job, ingeniør job, lærer job, pædagog job, it-job denmark, jobs in copenhagen, jobs in aarhus, jobs in odense, deltidsjob, fuldtidsjob, fastansættelse, tidsbegrænset ansættelse, fleksjob, sygeplejerske job, social worker job denmark, occupation search denmark, esco occupation, job deadline, ansøgningsfrist, søg efter job, full time job denmark, part time job denmark.