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 | 
|---|---|---|---|
| Saronno | 20:08 | - | |
| Saronno Sud | 20:11 | - | |
| Caronno Pertusella | 20:14 | - | |
| Cesate | 20:15 | - | |
| Garbagnate Milanese | 20:18 | - | |
| Garbagnate Parco delle Groane | 20:19 | - | |
| Bollate Nord | 20:22 | - | |
| Bollate Centro | 20:25 | - | |
| Novate Milanese | 20:28 | - | |
| Milano Quarto Oggiaro | 20:31 | - | |
| Milano Bovisa | 20:36 | - | |
| Milano Lancetti | 20:42 | 1 | |
| Milano Porta Garibaldi Sotterranea | 20:44 | 20:45 | 1 | 
| Milano Repubblica | 20:46 | 20:47 | 1 | 
| Milano Porta Venezia | 20:48 | 20:49 | 1 | 
| Milano Dateo | 20:51 | 20:52 | 1 | 
| Milano Porta Vittoria | 20:55 | 20:56 | 3 | 
| Milano Rogoredo | 21:03 | 21:05 | 2 | 
| San Donato Milanese | 21:09 | 21:10 | 2 | 
| Borgo Lombardo | 21:12 | 21:13 | 2 | 
| San Giuliano Milanese | 21:15 | 21:16 | 1 | 
| Melegnano | 21:19 | 21:20 | 1 | 
| San Zenone al Lambro | 21:24 | 21:25 | 1 | 
| Tavazzano | 21:30 | 21:31 | 1 | 
| Lodi | 21:37 | - |