Train NS 669 Den Haag Centraal – Leeuwarden

Den Haag Centraal 18:40 → Leeuwarden 21:14 Daily 2 h 34 min · 9 stops NS (Nederlandse Spoorwegen)

It has not run yet today

Last recorded run: Wednesday 4 November +5 min

Next service: today 18:40 from Den Haag Centraal · Thu 5 Nov

Next departure 18:40 today · Den Haag Centraal
On-time · 30 days
86%
18/21 runs under 3 min
RT coverage: 17 full · 4 partial · 8 no data
On-time · 90 days
83%
19/23 runs under 3 min
RT coverage: 19 full · 4 partial · 44 no data
Typical delay
0min
Median at arrival, 90 days
30 days: 0 min
P90
+3min
9 in 10 runs arrive with less than this
30 days: +3 min

Last 30 days

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

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

Worst days

  • Wed 4 Nov Max en route +6 min · last fix heading to — +5 min
  • Fri 23 Oct Max en route +4 min · last fix heading to Utrecht Centraal +4 min
  • Thu 29 Oct Max en route +3 min · last fix heading to — +3 min
  • Tue 6 Oct Max en route +3 min · last fix heading to — +3 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 83% · 19
  • 3–10 min 17% · 4
  • 10–30 min 0% · 0
  • 30+ min 0% · 0

On-time by weekday

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

Stops and timetable

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

Last 90 days, 23 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 10
18:40on time on time
18:57 / 18:59≈ on time ≈ on time
19:17 / 19:21≈ on time ≈ +1 min
19:34 / 19:36≈ on time ≈ +1 min
20:11 / 20:18≈ on time ≈ +2 min
20:34≈ on time ≈ +3 min
20:44≈ on time ≈ +3 min
20:57≈ on time ≈ +3 min
21:14on time +4 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 4 Nov— 21:24+5 min+6 min
Tue 3 Nov— 21:140 min—
Mon 2 Nov— 21:19+3 min+3 min
Sun 1 NovHeerenveen 21:12+2 min+2 min
Sat 31 OctDen Haag Centraal 21:15Partial coverage0 min—
Fri 30 OctDen Haag Centraal 21:27Partial coverage0 min—
Thu 29 Oct— 21:15+3 min+3 min
Wed 28 Oct— 21:150 min—
Tue 27 Oct— 21:28No data—
Mon 26 OctAmersfoort Centraal 21:29Partial coverage0 min—
Sun 25 OctWolvega 21:11No data—
Sat 24 OctWolvega 21:110 min—
Fri 23 OctUtrecht Centraal 21:24+4 min+4 min
Thu 22 OctDen Haag Centraal 21:16No data—
Wed 21 OctDen Haag Centraal 21:16No data—
Tue 20 OctDen Haag Centraal 21:26No data—
Mon 19 Oct— 21:160 min—
Sun 18 OctHeerenveen 21:180 min+1 min
Sat 17 OctHeerenveen 21:24No data—
Fri 16 OctAmersfoort Centraal 21:17+1 min+2 min
Thu 15 Oct— 21:220 min—
Wed 14 OctAmersfoort Centraal 21:15No data—
Tue 13 OctDen Haag Centraal 21:16No data—
Mon 12 OctDen Haag Centraal 21:330 min—
Sun 11 OctHeerenveen 21:16+1 min+2 min
Sat 10 OctHeerenveen 21:18Partial coverage0 min—
Fri 9 Oct— 21:150 min—
Thu 8 Oct— 03:250 min—
Wed 7 Oct— 03:280 min+2 min
Tue 6 Oct— 21:17+3 min+3 min