The short answer
Take the train if you want a relaxed, low-cost day and do not mind one change in Casablanca; the whole journey is roughly 7 to 8 hours. Take a private car if you want door to door and the freedom to stop: it is about 530 km and 6 to 7 hours of driving before stops. There is no direct train.
In more detail
On the train you ride north to Casa-Voyageurs, about three hours, then change onto a Fes-bound train for another three and a half to four hours. Through-tickets are sold as one journey. ONCF trains are air-conditioned with reserved seats, and the change is on the same station.
By road the fastest way is the toll motorway via Casablanca and Rabat. The inland route via Beni Mellal is the alternative if you want to break the day at Beni Mellal's waterfalls or in the Middle Atlas. Either way it is a long day, so we pace it with breaks.
CTM and Supratours coaches run direct in about 8 to 9 hours. Fes is not a day trip from Marrakech by any mode; give it at least one night, ideally two.
Good to know
- First class is worth it on a journey this long, especially in summer.
- Book coaches ahead; the best departures fill.
- Consider routing via Chefchaouen or Meknes and making the drive part of the trip.
