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