| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| PTH Perth | 2 | 07:51 ✔ On Time | ||
| ING Invergowrie | 2 | 08:08 ✔ 1m early | 08:08 ✔ On Time | |
| DEE Dundee | 3 | 08:15 ✔ On Time |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| DEE Dundee | 4 | 08:44 ✔ On Time | ||
| ARB Arbroath | 2 | 09:00 ⚠ 2m late | 09:01 ⚠ 2m late | |
| MTS Montrose | 2 | 09:14 ⚠ 2m late |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| MTS Montrose | 2 | 09:56 ✔ On Time | ||
| LAU Laurencekirk | ??? | 10:07 ✔ 2m early | 10:07 ✔ On Time | |
| STN Stonehaven | 2 | 10:21 ✔ 2m early | 10:21 ✔ On Time | |
| PLN Portlethen | 2 | 10:30 ✔ 1m early | 10:30 ✔ On Time | |
| ABD Aberdeen | 6N | 10:42 ✔ 2m early | 10:44 ✔ On Time | |
| DYC Dyce | 1 | 10:52 ✔ 1m early | 10:53 ✔ 1m early | |
| KTR Kintore | 1 | 11:01 ✔ 1m early | 11:01 ✔ On Time | |
| INR Inverurie | 1 | 11:08 ✔ 3m early |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| INR Inverurie | 1 | 12:19 ⚠ 2m late | ||
| INS Insch | 1 | 12:32 ⚠ 1m late | 12:33 ⚠ 1m late | |
| HNT Huntly | 1 | 12:49 ✔ On Time | 12:50 ✔ On Time | |
| KEH Keith | 1 | 13:04 ✔ On Time | 13:04 ⚠ 1m late | |
| ELG Elgin | 2 | 13:24 ✔ On Time | 13:26 ⚠ 1m late | |
| FOR Forres | 1 | 13:38 ⚠ 1m late | 13:39 ⚠ 2m late | |
| NRN Nairn | 1 | 13:49 ⚠ 2m late | 13:50 ⚠ 2m late | |
| INV Inverness | 4 | 14:07 ✔ On Time |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| INV Inverness | 5 | 14:50 ✔ On Time | ||
| BEL Beauly | 1 | 15:05 ✔ 1m early | 15:05 ✔ On Time | |
| MOO Muir of Ord | 2 | 15:10 ✔ On Time | 15:11 ✔ On Time | |
| CBD Conon Bridge | 1 | 15:18 ✔ 1m early | 15:18 ✔ On Time | |
| DIN Dingwall | 1 | 15:23 ✔ On Time | 15:24 ✔ On Time | |
| ASS Alness | 1 | 15:36 ✔ 1m early | 15:36 ✔ On Time | |
| IGD Invergordon | 2 | 15:41 ⚠ 2m late |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| IGD Invergordon | 2 | 18:04 ⚠ 4m late | ||
| FRN Fearn | 1 | 18:17 ⚠ 2m late | 18:17 ⚠ 3m late | |
| TAI Tain | 2 | 18:23 ⚠ 3m late | 18:24 ⚠ 3m late | |
| ARD Ardgay | 2 | 18:39 ⚠ 2m late |
| Station | Platform | Arrival | Departure | |
|---|---|---|---|---|
| ARD Ardgay | 2 | 20:02 ⚠ 11m late | ||
| CUA Culrain | 1 | 20:06 ⚠ 12m late | 20:06 ⚠ 12m late | |
| INH Invershin | 1 | 20:07 ⚠ 12m late | 20:07 ⚠ 13m late | |
| LRG Lairg | 1 | 20:18 ⚠ 11m late | 20:18 ⚠ 12m late | |
| ROG Rogart | 2 | 20:31 ⚠ 13m late | 20:31 ⚠ 13m late | |
| GOL Golspie | 1 | 20:42 ⚠ 11m late | 20:43 ⚠ 11m late | |
| BRA Brora | 2 | 20:52 ⚠ 15m late | 20:53 ⚠ 15m late | |
| HMS Helmsdale | 2 | 21:08 ⚠ 15m late | 21:08 ⚠ 16m late | |
| KIL Kildonan | 1 | 21:20 ⚠ 16m late | 21:20 ⚠ 16m late | |
| KBC Kinbrace | 1 | 21:30 ⚠ 16m late | 21:30 ⚠ 16m late | |
| FRS Forsinard | 2 | 21:42 ⚠ 14m late | 21:42 ⚠ 15m late | |
| ABC Altnabreac | 1 | 21:50 ⚠ 16m late | 21:50 ⚠ 16m late | |
| SCT Scotscalder | 1 | 21:59 ⚠ 15m late | 21:59 ⚠ 16m late | |
| GGJ Georgemas Junction | 1 | 22:06 ⚠ 15m late | 22:10 ⚠ 15m late | |
| THS Thurso | 1 | 22:20 ⚠ 14m late | 22:23 ⚠ 15m late | |
| GGJ Georgemas Junction | 1 | 22:33 ⚠ 15m late | 22:35 ⚠ 15m late | |
| WCK Wick | 1 | 22:52 ⚠ 15m late |
Re-planned following cancelled train yesterday. Should have ticked off Prees and other stations last night but had to do it this morning instead. Should have done Heart of Wales line tonight, pushed back to (very) early tomorrow morning instead.