The municipality of Rapperswil-Jona is served by four railway stations, of which the main one is Rapperswil railway station. This is served by lines S5, S7, S15 and S40 of the Zürich S-Bahn, the first three of which provide frequent (6 trains per hour) and fast (36 minute journey time) links to the city of Zürich. It is also a calling point of the "Voralpen Express", running hourly between Lucerne and St. Gallen, and the terminus of an hourly regional train that operates south-east to Linthal via Ziegelbrücke.