Train NS Int 222 Frankfurt (M) Hbf – Utrecht Centraal

Frankfurt (M) Hbf 05:34 → Utrecht Centraal 09:23 Daily 3 h 49 min · 7 stops NS Int

✓ Today’s run finished

Today, last fix heading to Arnhem Centraal at 09:05 0 min

  1. Frankfurt (M) Hbf05:34
  2. Frankfurt Flughafen Fernb05:45
  3. Siegburg/Bonn06:27
  4. Köln Hbf06:43
  5. Düsseldorf Hbf07:11
  6. Arnhem Centraal08:26
  7. Utrecht Centraal09:23

Next service: tomorrow 05:34 from Frankfurt (M) Hbf · Fri 23 Oct

Next departure 05:34 tomorrow · Frankfurt (M) Hbf
On-time · 30 days
46%
6/13 runs under 3 min
RT coverage: 10 full · 3 partial · 17 no data
On-time · 90 days
46%
6/13 runs under 3 min
RT coverage: 10 full · 3 partial · 76 no data
Typical delay
+8min
Median at arrival, 90 days
30 days: +8 min
P90
+33min
9 in 10 runs arrive with less than this
30 days: +33 min

Last 30 days

Arrival delay at Utrecht Centraal, in minutes. One bar per run.

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

Worst days

  • Sun 18 Oct Max en route +63 min · last fix heading to Utrecht Centraal +63 min
  • Fri 9 Oct Max en route +34 min · last fix heading to Utrecht Centraal +34 min
  • Sat 17 Oct Max en route +29 min · last fix heading to Utrecht Centraal +29 min
  • Tue 6 Oct Max en route +26 min · last fix heading to Utrecht Centraal +22 min
  • Thu 15 Oct Max en route +21 min · last fix heading to Utrecht Centraal +21 min

Distribution · 90 days

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

  • Early 0% · 0
  • On time 46% · 6
  • 3–10 min 8% · 1
  • 10–30 min 31% · 4
  • 30+ min 15% · 2

On-time by weekday

  • 100% M n=2
  • 50% T n=2
  • 50% W n=2
  • 33% T n=3
  • 50% F n=2
  • 0% S n=1
  • 0% S n=1

Stops and timetable

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

StopSched.
05:34
05:45 / 05:48
06:27 / 06:29
06:43 / 06:49
07:11 / 07:13
08:26 / 08:31
09:23

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.

Recent runs

DateLast stopFinalMax
Thu 22 OctArnhem Centraal 09:05Partial coverage0 min—
Wed 21 OctArnhem Centraal 09:13Partial coverage0 min—
Tue 20 OctArnhem Centraal 09:07Partial coverage0 min—
Mon 19 OctUtrecht Centraal 09:570 min—
Sun 18 OctUtrecht Centraal 11:28+63 min+63 min
Sat 17 OctUtrecht Centraal 09:46+29 min+29 min
Fri 16 OctUtrecht Centraal 10:120 min—
Thu 15 OctUtrecht Centraal 09:40+21 min+21 min
Wed 14 OctUtrecht Centraal 10:28No data—
Tue 13 OctUtrecht Centraal 10:16No data—
Mon 12 OctUtrecht Centraal 09:590 min—
Sun 11 OctUtrecht Centraal 09:45No data—
Sat 10 OctUtrecht Centraal 09:53No data—
Fri 9 OctUtrecht Centraal 09:47+34 min+34 min
Thu 8 OctUtrecht Centraal 09:26+8 min+9 min
Wed 7 OctUtrecht Centraal 09:39+19 min+21 min
Tue 6 OctUtrecht Centraal 09:43+22 min+26 min
Mon 5 OctArnhem Centraal 09:04No data—
Sun 4 OctArnhem Centraal 08:56No data—
Sat 3 OctArnhem Centraal 08:58No data—
Fri 2 OctUtrecht Centraal 09:43No data—
Thu 1 OctUtrecht Centraal 09:18No data—
Wed 30 SeptUtrecht Centraal 09:19No data—
Tue 29 SeptUtrecht Centraal 09:33No data—
Mon 28 SeptUtrecht Centraal 09:38No data—
Sun 27 SeptUtrecht Centraal 09:23No data—
Sat 26 SeptUtrecht Centraal 10:14No data—
Fri 25 SeptUtrecht Centraal 09:28No data—
Thu 24 SeptUtrecht Centraal 09:37No data—
Wed 23 SeptUtrecht Centraal 09:44No data—