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:23 | 5  | |
| Tavazzano | 06:28 | 06:29 | 2  | 
| San Zenone al Lambro | 06:33 | 06:34 | 2  | 
| Melegnano | 06:37 | 06:38 | 2  | 
| San Giuliano Milanese | 06:42 | 06:43 | 2  | 
| Borgo Lombardo | 06:45 | 06:46 | 1  | 
| San Donato Milanese | 06:49 | 06:50 | 1  | 
| Milano Rogoredo | 06:55 | 06:57 | 1  | 
| Milano Porta Vittoria | 07:03 | 07:04 | 2  | 
| Milano Dateo | 07:06 | 07:07 | 2  | 
| Milano Porta Venezia | 07:09 | 07:10 | 2  | 
| Milano Repubblica | 07:11 | 07:12 | 2  | 
| Milano Porta Garibaldi Sotterranea | 07:14 | 07:15 | 2  | 
| Milano Lancetti | 07:17 | 07:18 | 3  | 
| Milano Bovisa | 07:24 | -  | |
| Milano Quarto Oggiaro | 07:27 | -  | |
| Novate Milanese | 07:30 | -  | |
| Bollate Centro | 07:32 | -  | |
| Bollate Nord | 07:34 | -  | |
| Garbagnate Parco delle Groane | 07:37 | -  | |
| Garbagnate Milanese | 07:39 | -  | |
| Cesate | 07:41 | -  | |
| Caronno Pertusella | 07:44 | -  | |
| Saronno Sud | 07:47 | -  | |
| Saronno | 07:52 | -  |