The short answer
March–May and September–November are the sweet spots for most travellers — warm days, cool nights, no extreme weather anywhere in the country. Avoid July–August unless you're staying on the Atlantic coast.
Desert (Merzouga, Zagora, M'Hamid)
October to April. November and February are ideal: 24°C days, 10°C nights, no sandstorms, clear stars. Summer hits 45°C+ and is genuinely dangerous.
Atlas Mountains & Toubkal
May–June and September–October for trekking. Toubkal summit without crampons is June–September only. Berber villages in spring are lush; in winter the high passes close.
Imperial cities (Fes, Marrakech, Meknes)
March–May and October–November. Summer makes the medinas brutal — narrow alleys trap heat above 40°C.
Atlantic coast (Essaouira, Taghazout)
April–October. Summer is mild here (25°C) when inland is roasting — locals escape to Essaouira in August.
Festivals worth planning around
Fes Sacred Music Festival (June), Marrakech Film Festival (December), Imilchil Marriage Festival (September), Ramadan (variable — quieter days, lively nights).

