Fes-Saïss Airport is 15km south of the city and has recently been expanded with a swanky new terminal. Royal Air Maroc (www.royalairmaroc.com) operates daily flights to Casablanca, as well as connections to Europe. Air Arabia (www.airarabia.com) and Ryanair (www.ryanair.com) fly to various European cities and TAP (www.flytap.com) to Lisbon. Air Arabia also operates a direct flight to Marrakesh three times a week.
The main bus station for CTM buses is in the southern ville nouvelle. Buy tickets for Chefchaouen in advance because the lack of other transport options means seats always get booked up quickly. Services can be reduced out of season.
CTM runs 16 buses a day to Casablanca (Dh100, 4½ hours) via Rabat (Dh80, three hours) between 1.30am and 7.15pm, plus one other premium bus to Rabat only at 9.30pm (Dh100). Buses to Meknès (Dh25, one hour) run 24 hours a day but departure times are irregular. There are seven buses a day to Marrakesh (Dh190 to Dh210, 9½ hours) between 6.30am and 8pm, plus a quicker premium bus departing at 9.30pm (Dh280).
Heading north and east, there are six buses for Tangier (Dh125, six to seven hours), five for Chefchaouen (Dh80, four hours), five for Tetouan (Dh120, five hours) and two for Al Hoceima (Dh120, five hours), one of which is a night bus. Three go to Nador (Dh120 to Dh130, five hours), and six to Oujda (Dh125 to Dh135, 4½ to five hours).
International services to Spain with Eurolines (www.eurolines.com) also depart from the CTM bus station.
Non-CTM buses depart from the Gare Routière outside Bab El Mahrouk on the edge of the medina, or from the streets immediately surrounding the bus station. Fares are slightly lower than CTM, and reservations can be made for popular routes. The Gare Routière has a left-luggage facility.
Long-distance buses run to Casablanca via Rabat (hourly), Midelt and Er-Rachidia, Rissani and Ouarzazate (six daily), Marrakesh (five daily), Taza (hourly), Oujda (10 daily), Tangier (13 daily), and Tetouan and Ouezzane (12 daily).
Locally, there are frequent departures to Azrou (Dh25, 1½ hours), Ifrane (Dh25, 1½ hours), Moulay Yacoub (Dh10, 30 minutes), Sefrou (Dh10, 45 minutes) and Meknès (frequently).
There are several guarded car parks around the medina: on Place Bou Jeloud close to Bab Bou Jeloud, in Batha, north of Talaa Kebira at Ain Azleten and in the south at R'cif. In the ville nouvelle, there's a guarded car park in front of the central market.
Chriftrans is a reliable transport and vehicle-hire company, offering services from airport pick-ups to day trips from Fez and longer hires.
There are several grand taxi ranks dotted around town. Taxis for Moulay Yacoub (Dh10, 20 minutes) and taxis for Meknès (Dh25, one hour) and Rabat (Dh80, 2½ hours) leave from in front of the main bus station (outside Bab El Mahrouk). The rank for Sefrou and Bhalil (Dh12, 45 minutes) is located at Slaiki, southeast of Place de la Résistance in the ville nouvelle. Azrou (Dh35, one hour) and Ifrane (Dh30, 45 minutes) taxis wait at a parking lot to the west of the CTM bus station in the south of the ville nouvelle.
Grands taxis outside the train station don't have specific destinations so cannot be shared.
Fez's shiny new train station is in the ville nouvelle, a 10-minute walk northwest of Place Florence. There's no longer any left luggage at the station, but there's an ATM, some snack shops and decent cafes with wi-fi.
Trains depart almost hourly between 2.10am and 7pm to Casablanca (Dh116, four hours), via Rabat (Dh85, three hours) and Meknès (Dh22, 30 minutes). Twelve trains go to Marrakesh (Dh206, eight hours) and five go direct to Tangier (Dh111, five hours) . Some of the trains to Taza (Dh43, two hours, six daily) go on to Oujda (Dh116, 5½ hours, four daily).