Jump to related tools in the same category or review the original source on GitHub.

Transportation @eggressive Updated 2/26/2026

πŸš† Ns Trains OpenClaw Skill - ClawHub

Do you want your AI agent to automate Ns Trains workflows? This free skill from ClawHub helps with transportation tasks without building custom tools from scratch.

What this skill does

Check Dutch train schedules, departures, disruptions, and plan journeys using the NS API. Perfect for daily commute checks.

Install

npx clawhub@latest install ns-trains

Full SKILL.md

Open original
namedescription
ns-trainsCheck Dutch train schedules, departures, disruptions, and plan journeys using the NS API. Perfect for daily commute checks.

NS Trains Skill

Check Dutch train schedules, departures, disruptions, and plan journeys using the official NS (Nederlandse Spoorwegen) API.

Setup

1. Get an NS subscription key

  1. Go to NS API Portal
  2. Create an account and subscribe to the Ns-App product (free tier available)
  3. Copy your Primary Key

2. Set Environment Variables

export NS_SUBSCRIPTION_KEY="your-subscription-key-here"   # preferred
# Back-compat:
export NS_API_KEY="$NS_SUBSCRIPTION_KEY"                   # legacy name still supported

# Optional: Configure commute stations for quick shortcuts
export NS_HOME_STATION="Utrecht Centraal"
export NS_WORK_STATION="Amsterdam Zuid"

For security, prefer injecting these env vars via your runtime secret mechanism rather than committing them anywhere. Avoid printing or sharing your subscription key.

Quick Usage

πŸš† Commute shortcuts

node {baseDir}/scripts/commute.mjs --to-work   # Morning: Home β†’ Work
node {baseDir}/scripts/commute.mjs --to-home   # Evening: Work β†’ Home

Plan any journey

node {baseDir}/scripts/journey.mjs --from "Utrecht Centraal" --to "Amsterdam Zuid"

Check departures from a station

node {baseDir}/scripts/departures.mjs --station "Amsterdam Centraal"

Check arrivals at a station

node {baseDir}/scripts/arrivals.mjs --station "Rotterdam Centraal"

Search for stations

node {baseDir}/scripts/stations.mjs amsterdam
node {baseDir}/scripts/stations.mjs --search "den haag"

Check current disruptions

node {baseDir}/scripts/disruptions.mjs
node {baseDir}/scripts/disruptions.mjs --from "Utrecht" --to "Amsterdam"

Natural Language

Just ask:

  • "When is the next train to Amsterdam?"
  • "Check trains from Utrecht to Rotterdam"
  • "Any train disruptions today?"
  • "Plan my commute to work"
  • "What time does the train arrive?"

Output

Returns journey options with:

  • Departure/arrival times
  • Real-time delays
  • Duration
  • Transfers
  • Platform numbers
  • Disruption warnings
  • Crowdedness forecast (🟒 low / 🟑 medium / πŸ”΄ high)

Commands Reference

Command Description
commute.mjs [work|home] Quick commute check (requires NS_HOME_STATION & NS_WORK_STATION)
journey.mjs --from X --to Y Plan a journey between any stations
departures.mjs --station X List departures from a station
arrivals.mjs --station X List arrivals at a station
stations.mjs [query] Search for station names
disruptions.mjs Check current disruptions

API Endpoints Used

  • /reisinformatie-api/api/v3/trips - Journey planning
  • /reisinformatie-api/api/v2/arrivals - Arrivals
  • /reisinformatie-api/api/v2/departures - Departures
  • /reisinformatie-api/api/v3/disruptions - Disruptions
  • /reisinformatie-api/api/v2/stations - Station search

Reference

Original URL: https://github.com/openclaw/skills/blob/main/skills/eggressive/ns-trains

Related skills

If this matches your use case, these are close alternatives in the same category.