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