| Line | Dep | Direction | Interval |
|---|---|---|---|
| S-Train | 05:05+1' | St. Gallen | 60' |
| S-Train | 05:36+1' | Altstätten SG | 60' |
| S-Train | 05:52+2' | Rapperswil SG | 60' |
| S-Train | 06:05 | St. Gallen | 60' |
| S-Train | 06:20+2' | Nesslau-Neu St. Johann | 60' |
| S-Train | 06:36 | Altstätten SG | 60' |
| S-Train | 06:52+2' | Rapperswil SG | 60' |
| S-Train | 07:05 | St. Gallen | 60' |
| S-Train | 07:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 07:36 | Altstätten SG | 60' |
| S-Train | 07:52 | Rapperswil SG | 60' |
| S-Train | 08:05 | St. Gallen | 60' |
| S-Train | 08:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 08:36 | Altstätten SG | 60' |
| S-Train | 08:52 | Rapperswil SG | 60' |
| S-Train | 09:05 | St. Gallen | 60' |
| S-Train | 09:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 09:36 | Altstätten SG | 60' |
| S-Train | 09:52 | Rapperswil SG | 60' |
| S-Train | 10:05 | St. Gallen | 60' |
| S-Train | 10:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 10:36 | Altstätten SG | 60' |
| S-Train | 10:52 | Rapperswil SG | 60' |
| S-Train | 11:05 | St. Gallen | 60' |
| S-Train | 11:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 11:36 | Altstätten SG | 60' |
| S-Train | 11:52 | Rapperswil SG | 60' |
| S-Train | 12:05 | St. Gallen | 60' |
| S-Train | 12:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 12:36 | Altstätten SG | 60' |
| S-Train | 12:52 | Rapperswil SG | 60' |
| S-Train | 13:05 | St. Gallen | 60' |
| S-Train | 13:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 13:36 | Altstätten SG | 60' |
| S-Train | 13:52 | Rapperswil SG | 60' |
| S-Train | 14:05 | St. Gallen | 60' |
| S-Train | 14:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 14:36 | Altstätten SG | 60' |
| S-Train | 14:52 | Rapperswil SG | 60' |
| S-Train | 15:05 | St. Gallen | 60' |
| S-Train | 15:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 15:36 | Altstätten SG | 60' |
| S-Train | 15:52 | Rapperswil SG | 60' |
| S-Train | 16:05 | St. Gallen | 60' |
| S-Train | 16:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 16:36 | Altstätten SG | 60' |
| S-Train | 16:52 | Rapperswil SG | 60' |
| S-Train | 17:05 | St. Gallen | 60' |
| S-Train | 17:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 17:36 | Altstätten SG | 60' |
| S-Train | 17:52 | Rapperswil SG | 60' |
| S-Train | 18:05 | St. Gallen | 60' |
| S-Train | 18:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 18:36 | Altstätten SG | 60' |
| S-Train | 18:52 | Rapperswil SG | 60' |
| S-Train | 19:05 | St. Gallen | 60' |
| S-Train | 19:20 | Nesslau-Neu St. Johann | 60' |
| S-Train | 19:36 | Altstätten SG | 60' |
| S-Train | 19:52 | Rapperswil SG | 60' |
| S-Train | 20:05 | St. Gallen | 60' |
| S-Train | 20:20 | Nesslau-Neu St. Johann | |
| S-Train | 20:36 | Altstätten SG | 60' |
| S-Train | 20:52 | Rapperswil SG | 60' |
| S-Train | 21:05 | St. Gallen | 60' |
| S-Train | 21:20 | Nesslau-Neu St. Johann | |
| S-Train | 21:36 | Altstätten SG | |
| S-Train | 21:52 | Rapperswil SG | 60' |
| S-Train | 22:05 | St. Gallen | 60' |
| S-Train | 22:36 | Altstätten SG | |
| S-Train | 22:52 | Rapperswil SG | |
| S-Train | 23:05 | St. Gallen | |
| S-Train | 23:52 | Rapperswil SG | |
| S-Train | 00:05 | St. Gallen |