Croatia Airlines, the country’s national carrier operates international and domestic flights to and from Zagreb. http://www.croatiaairlines.com/
Zagreb Airport is located 17km southeast of Zagreb, this is Croatia’s major airport, offering a range of international and domestic services. http://www.zagreb-airport.hr/en
The Croatia Airlines bus to the airport (30KN or 4EUR) leaves from the Zagreb Bus Terminal every half-hour from 4.00am to 8:30pm, and returns from the airport from 7.00am to 10:30pm. Here you can find a more detailed schedule: http://www.plesoprijevoz.hr/page/timetable
Taxis cost between 130KN and 250KN to the city centre depending on the company. Uber costs around 110KN to the city centre (a bit more during the peak hours).
There are international bus services from – among other places – Austria (Graz & Wien), Czech Republic (Brno & Prague), Italy (Trieste, Milan, Torino), Germany (various including Dortmund, Dusseldorf, Frankfurt, Hamburg, Munich, Stuttgart), Hungary (Budapest), Slovenia (Ljubljana), Serbia (Belgrade), Switzerland (Lucerne & Zurich), and some others. You can look up for detailed schedules on the Zagreb Bus Terminal website http://akz.hr/default.aspx?id=260
Recently, Zagreb has been connected with a large number of European cities by Flixbus bus network. https://global.flixbus.com/
There are train services from many European cities; you can look up timetables on the Zagreb Central Rail station website https://prodaja.hzpp.hr/en