The quickest option is to fly.
If you take the ferry to Tangier you would need to take the train to Marrakech (10.5 hours), or the road (6 hours driving).
The Ryan air flights from Seville are very cheap and reliable,
The journey by train and ferry is a scenic classic - part of the experience!
1) take a train from Madrid/Ronda/Granada/wherever to Algeciras, the Spanish town across the bay from Gibraltar. Check train times and book online at www.renfe.com or (if you have any problems) www.petrabax.com/renfe .
Madrid-Algeciras starts at €28 if you pre-book, two daily direct trains. Granada-Algeciras there are a range of daily local trains, buy at the station for those, that's easy enough..
2) Sail across the Straits of Gibraltar from Algeciras to Tangier. Various ferry companies sail from Algeciras maritime terminal to Tangier Med Port, 50km by bus or taxi to Tangier Town. But personally, I'd go with FRS (www.frs.es) as they run a free bus from Algeciras maritime terminal to Tarifa for their fast ferry to Tangier town, where the ferry docks 5 min walk from the historic Continental Hotel, a traveller's classic.
Ferry fare around €30.
3) Take Moroccan Railways from Tangier Town station to Marrakesh for just €25 or so.
See www.oncf.ma for times and prices, don't bother pre-booking just buy at the station.
This video gives you a flavour of what the train, FRS ferry and Continental hotel are like, taken last year: http://www.youtube.com/watch?v=211n9fYSKTM
-:- Message from TripAdvisor staff -:-
This topic has been closed to new posts due to inactivity. We hope you'll join the conversation by posting to an open topic or starting a new one.
To review the TripAdvisor Forums Posting Guidelines, please follow this link: http://www.tripadvisor.com/pages/forums_posting_guidelines.html
We remove posts that do not follow our posting guidelines, and we reserve the right to remove any post for any reason.