Train NS 3951 Enkhuizen – Heerlen

Enkhuizen 13:09 → Heerlen 16:41 Daily 3 h 32 min · 16 stops NS (Nederlandse Spoorwegen)

Running now · updated 15:25

Heading to Heerlen 0 min

Estimated arrival at Heerlen 16:41 · 124 km/h

  1. Enkhuizen13:09
  2. Hoogkarspel13:21
  3. Hoorn13:33
  4. Amsterdam Amstel14:22
  5. 's-Hertogenbosch15:12
  6. Roermond16:08
  7. Heerlen16:41

Today it is running no worse than usual: typical arrival delay is 0 min; 88% of the last 17 runs arrived on time.

On-time · 30 days
88%
15/17 runs under 3 min
RT coverage: 12 full · 5 partial · 13 no data
On-time · 90 days
92%
23/25 runs under 3 min
RT coverage: 20 full · 5 partial · 62 no data
Typical delay
0min
Median at arrival, 90 days
30 days: 0 min
P90
+2min
9 in 10 runs arrive with less than this
30 days: +7 min

Last 30 days

Arrival delay at Heerlen, in minutes. One bar per run.

  • On time (<3 min)
  • 3–10 min
  • 10–30 min
  • 30+ min
  • Partial coverage
  • No data

Worst days

  • Mon 9 Nov Max en route +23 min · last fix heading to Sittard +23 min
  • Sun 8 Nov Max en route +15 min · last fix heading to Arnemuiden +14 min

Distribution · 90 days

25 runs with a known final delay. On time = under 3 min, the same cut the map uses.

  • Early 0% · 0
  • On time 92% · 23
  • 3–10 min 0% · 0
  • 10–30 min 8% · 2
  • 30+ min 0% · 0

On-time by weekday

  • 75% M n=4
  • 100% T n=3
  • 100% W n=4
  • 100% T n=4
  • 100% F n=2
  • 100% S n=4
  • 75% S n=4

Stops and timetable

Timetable of the latest run from the operator’s GTFS (16 stops).

Last 90 days, 25 runs. At intermediate stops it is an estimate from the delay at origin and destination. Delays over 2 h count as “> 2 h”: our data does not measure them exactly.

StopSched.Usually 9 days in 10Today
13:09on time on time
13:13≈ on time ≈ on time
13:16 / 13:17≈ on time ≈ on time
13:21 / 13:22≈ on time ≈ on time
13:29≈ on time ≈ on time
13:33 / 13:39≈ on time ≈ on time
14:05≈ on time ≈ on time
14:11 / 14:14≈ on time ≈ on time
14:22≈ on time ≈ +1 min
14:41 / 14:44≈ on time ≈ +1 min
15:12 / 15:15≈ on time ≈ +1 min
15:35 / 15:38≈ on time ≈ +1 min
15:55≈ on time ≈ +1 min
16:08 / 16:10≈ on time ≈ +1 min
16:25 / 16:26≈ on time ≈ +1 min
16:41on time +2 min

Each run is closed into train_runs (country, train number, service day) from the live positions. Final delay = last delay seen. Partial coverage: the feed stopped before the final stop (last value used, hatched in the chart). No data: a run without any valid delay; counts as neither on time nor late. Data collected since 11 July 2026.

Will I make my connection?

Pick where you get off and how many minutes you have until your next train. We work it out from what this train did over the last 90 days.

Include the time to change platforms. It is an estimate from past data, not a guarantee. Days more than 2 h late count as a missed connection.

Recent runs

DateLast stopFinalMax
Wed 11 Nov's-Hertogenbosch 15:24Partial coverage0 min—
Tue 10 NovSittard 16:43Partial coverage0 min+1 min
Mon 9 NovSittard 16:39Partial coverage+23 min+23 min
Sun 8 NovArnemuiden 17:39+14 min+15 min
Sat 7 NovVlissingen Souburg 17:19+2 min+2 min
Fri 6 NovSittard 16:43No data—
Thu 5 NovSittard 16:42No data—
Wed 4 NovSittard 16:43Partial coverage0 min—
Tue 3 NovSittard 16:39No data—
Mon 2 NovSittard 16:44No data—
Sun 1 NovSittard 16:47+1 min+3 min
Sat 31 OctSittard 16:45+1 min+2 min
Fri 30 OctSittard 16:46No data—
Thu 29 OctSittard 16:410 min—
Wed 28 OctSittard 16:40No data—
Tue 27 OctSittard 16:43No data—
Mon 26 OctSittard 16:53No data—
Sun 25 OctSittard 16:46No data—
Sat 24 OctSittard 16:43+1 min—
Fri 23 OctSittard 17:220 min—
Thu 22 OctSittard 16:400 min—
Wed 21 OctSittard 16:440 min—
Tue 20 OctSittard 16:530 min—
Mon 19 OctSittard 16:47Partial coverage0 min—
Sun 18 OctSittard 16:43+1 min+1 min
Sat 17 OctSittard 16:44No data—
Fri 16 OctSittard 16:46No data—
Thu 15 OctSittard 16:420 min—
Wed 14 OctSittard 16:42No data—
Tue 13 OctSittard 16:42No data—