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 | 19:53 | 5 | |
| Tavazzano | 19:58 | 19:59 | 2 | 
| San Zenone al Lambro | 20:03 | 20:04 | 2 | 
| Melegnano | 20:07 | 20:08 | 2 | 
| San Giuliano Milanese | 20:12 | 20:13 | 2 | 
| Borgo Lombardo | 20:15 | 20:16 | 1 | 
| San Donato Milanese | 20:19 | 20:20 | 1 | 
| Milano Rogoredo | 20:25 | 20:27 | 1 | 
| Milano Porta Vittoria | 20:33 | 20:34 | 2 | 
| Milano Dateo | 20:36 | 20:37 | 2 | 
| Milano Porta Venezia | 20:39 | 20:40 | 2 | 
| Milano Porta Garibaldi Sotterranea | 20:44 | 20:45 | 2 | 
| Milano Lancetti | 20:47 | 20:48 | 3 | 
| Milano Bovisa | 20:54 | - | |
| Milano Quarto Oggiaro | 20:57 | - | |
| Novate Milanese | 21:00 | - | |
| Bollate Centro | 21:02 | - | |
| Bollate Nord | 21:04 | - | |
| Garbagnate Parco delle Groane | 21:07 | - | |
| Garbagnate Milanese | 21:09 | - | |
| Cesate | 21:11 | - | |
| Caronno Pertusella | 21:14 | - | |
| Saronno Sud | 21:17 | - | |
| Saronno | 21:22 | - |