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 | 19:38 | - | |
| Saronno Sud | 19:41 | - | |
| Caronno Pertusella | 19:44 | - | |
| Cesate | 19:45 | - | |
| Garbagnate Milanese | 19:48 | - | |
| Garbagnate Parco delle Groane | 19:49 | - | |
| Bollate Nord | 19:52 | - | |
| Bollate Centro | 19:55 | - | |
| Novate Milanese | 19:58 | - | |
| Milano Quarto Oggiaro | 20:01 | - | |
| Milano Bovisa | 20:06 | - | |
| Milano Lancetti | 20:12 | 1 | |
| Milano Porta Garibaldi Sotterranea | 20:14 | 20:15 | 1 |
| Milano Repubblica | 20:16 | 20:17 | 1 |
| Milano Porta Venezia | 20:18 | 20:19 | 1 |
| Milano Dateo | 20:21 | 20:22 | 1 |
| Milano Porta Vittoria | 20:25 | 20:26 | 3 |
| Milano Rogoredo | 20:33 | 20:35 | 2 |
| San Donato Milanese | 20:39 | 20:40 | 2 |
| Borgo Lombardo | 20:42 | 20:43 | 2 |
| San Giuliano Milanese | 20:45 | 20:46 | 1 |
| Melegnano | 20:49 | 20:50 | 1 |
| San Zenone al Lambro | 20:54 | 20:55 | 1 |
| Tavazzano | 21:00 | 21:01 | 1 |
| Lodi | 21:07 | - |