How ferries work in Malaysia
There is no single ferry timetable for Malaysia. Each route is published by the company that runs it, and some islands are served by several operators from different jetties.
Passenger ferries to Langkawi leave from Kuala Perlis and Kuala Kedah, and vehicles cross from Kuala Perlis on the RoRo ferry to Tanjung Lembung. The Penang ferry crosses between Butterworth and George Town, and boats to Pulau Ketam leave from Port Klang. Routes from Langkawi to Satun and Koh Lipe cross into Thailand and need immigration clearance. Each operator publishes its schedule, fares and conditions in its own way; this site brings them together for each route, with a link to the source.
Fares are set per person, with vehicles priced separately on car ferries, and some destinations add a separate park or entry fee. The Penang ferry takes Touch 'n Go cards as well as counter and online tickets. Each page lists the fares as the operator publishes them.
Schedules can change with the tide, the season and public holidays, and on cross-border routes Malaysia and Thailand keep clocks one hour apart. Where the next schedule is already published, the page switches to it on its first day; where it is not, the page says so. Each page states the time zone its times are shown in, in 12-hour format.
Rough seas can delay or cancel sailings, and some routes run only in a season: the ferry from Telaga to Koh Lipe does not sail between June and September. Operators announce these changes, and they appear here as a dated note when they were known at the time of checking.