Guaranteed train in the event of a strike on weekdays only The actual arrival and departure times in the individual stations and the guaranteed route may be different from what is indicated
| Stop | Arrival | Departure | Tracks |
|---|---|---|---|
| Lodi | 20:23 | 5 | |
| Tavazzano | 20:28 | 20:29 | 2 |
| San Zenone al Lambro | 20:33 | 20:34 | 2 |
| Melegnano | 20:37 | 20:38 | 2 |
| San Giuliano Milanese | 20:42 | 20:43 | 2 |
| Borgo Lombardo | 20:45 | 20:46 | 1 |
| San Donato Milanese | 20:49 | 20:50 | 1 |
| Milano Rogoredo | 20:55 | 20:57 | 1 |
| Milano Porta Vittoria | 21:03 | 21:04 | 2 |
| Milano Dateo | 21:06 | 21:07 | 2 |
| Milano Porta Venezia | 21:09 | 21:10 | 2 |
| Milano Repubblica | 21:11 | 21:12 | 2 |
| Milano Porta Garibaldi Sotterranea | 21:14 | 21:15 | 2 |
| Milano Lancetti | 21:17 | 21:18 | 3 |
| Milano Bovisa | 21:24 | - | |
| Milano Quarto Oggiaro | 21:27 | - | |
| Novate Milanese | 21:30 | - | |
| Bollate Centro | 21:32 | - | |
| Bollate Nord | 21:34 | - | |
| Garbagnate Parco delle Groane | 21:37 | - | |
| Garbagnate Milanese | 21:39 | - | |
| Cesate | 21:41 | - | |
| Caronno Pertusella | 21:44 | - | |
| Saronno Sud | 21:47 | - | |
| Saronno | 21:52 | - |