Yogyakarta is well connected to the rest of Java and beyond. Adisucipto International Airport handles flights from Jakarta, Bali, and Singapore; the newer Yogyakarta International Airport (YIA) at Kulon Progo, 45 kilometres west of the city, serves more long-haul routes including direct flights from Kuala Lumpur. The airport bus (DAMRI) connects YIA to the city centre.
By train, Yogyakarta sits on the main Java line and has excellent connections. Tugu Station, in the city centre, is the main terminus — frequent executive-class trains run to Jakarta (8-9 hours), Surabaya (5-6 hours), and Bandung. Trains are punctual by Indonesian standards and considerably faster than buses for long journeys. Book through the KAI Access app or website.
Buses from across Java arrive at Giwangan Terminal on the city's southeastern edge. For shorter hops — to Solo (1 hour) or to the Prambanan temple area — local buses and minibuses depart from the same terminal and from Jombor in the north.