Map from Google - Iran

Iran is a vast country with different types of climate: wet and mild on the coast of the Caspian Sea, continental and arid in the plateau, cold in high mountains, desert and hot in the southern coast and the southeast.
Generally speaking, Iran is an arid country, however in the west and the north the rains are a bit more abundant than in the east and the south. The only rainy area is the Caspian Sea coast. Summer is sunny is everywhere.

Climate of the Caspian coast

Along the coast overlooking the Caspian Sea, the climate is mild, almost Mediterranean, with fairly mild and rainy winters, and hot and humid summers, when daily averages are around 25/27 °C, and there's some chance of thunderstorms. The Caspian Sea is actually a huge salt lake, and the coast is situated about 20 metres below sea level. In the western part, winter is a little colder than in the eastern part: the January average goes from 5 to 7 °C, from west to east.
Here are the average temperatures of Rasht, a short distance from the western part of the coast.
Average temperatures - Rasht
Min (°C)2351014182020181384
Max (°C)111113192428303027221714

The annual precipitation amounts to 800/1,200 millimetres, with a maximum in autumn, and a minimum in summer. Summer is not always sunny: some days are cloudy, and as mentioned some thunderstorms may occur.
Here is the average precipitation in Rasht.
Average precipitation - Rasht
Prec. (mm)13512011565554540701552151851551360

The southern Caspian Sea is warm enough for swimming from June to October, as you can see in the following table.
Lake temperature - Rasht
Lake (°C)131111141924272826231916

On the slopes at the foot of the Alborz Mountains, the landscape is very green, and covered by forests. This is the wettest area of Iran.

Rudkhan Castle

In the flat and hilly area east of the Caspian Sea (Golestan) the climate becomes arid, almost desert-like, with hot summers.
To visit this area, the best time is spring, especially in the month of May, because autumn, albeit mild, is rainy.

Climate of the plateau

The great part of Iran is covered by high plateaus and mountain ranges. The plateaus experience high temperature variations between winter and summer, and have a continental climate in the north, with cold winters and hot summers, while the climate becomes sub-tropical in the central-southern part, where winters are a bit milder, and summers are torrid and sunny. In the northernmost part, winter is very cold, because of the influence of cold air masses coming from Russia. In summer, the Iranian plateau heats up, creating even a thermal low pressure, but the heat is bearable, at least when the temperature is not too high, because of the low relative humidity.

In Tabriz, in the north-west, at 1,350 metres above sea level, winter is definitely cold: the average January temperature is -3 °C. From November to March, it often snows, and frosts can be intense: the temperature at night can even drop to -20 °C. Summer is hot and sunny, but a little less hot than in the rest of the plateau: the average in July and August is 26 °C, however, there can be torrid days, with peaks of 38/40 °C. Here are the average temperatures.
Average temperatures - Tabriz
Min (°C)-7-506111520191482-3
Max (°C)141017232933322820125

The rainfall amount in Tabriz is typical of a semi-arid climate, about 310 mm per year, with a maximum in spring and a minimum in summer, with some rain also in May, and occasional showers in June and September.
Here is the average precipitation.
Average precipitation - Tabriz
Prec. (mm)252545554020349303025310

In Lake Urmia, west of the city, the climate is similar to that of Tabriz.
Even though it's located in northern Iran, the capital city of Tehran has a milder winter, because the Alborz Mountains partially protect it from cold waves. Of course, even here in winter it may snow and freeze, although less often, and with less intense frosts, not going below -8/-10 °C. Tehran is a vast city, close to the mountains, so the northern suburbs, reaching up to 1,700 metres above sea level, are colder than the central and southern areas, which are located around 1,000/1,200 metres, so the average daily temperature in January increases from 2 °C in the northern area, to 4 °C in the southern one, while in July it ranges from 28 to 30 °C. Summer in Tehran is hot, with torrid days, usually around 35/37 °C in July and August, but the humidity is low and the wind is feequent. Here are the average temperatures.
Average temperatures - Tehran
Min (°C)-1151116212423191371
Max (°C)71015222834373532241710

Throughout the year, only 230 mm of rain fall, most of which occur from November to April: the desert is not far from here. Here are the average temperatures. Here is the average precipitation.
Average precipitation - Tehran
Prec. (mm)35353530153311152035230

In Mashhad, in the north-east of the country, at an altitude of 1,000 metres, the daily average goes from 1.5 °C in January to 26 °C in July. In winter, snowfalls and severe frosts are possible, so that the temperature can drop to around -20 °C, while in summer the heat is often scorching, with peaks of 40/42 °C. In a typical year, 250 mm of rain fall.
In the south-central and eastern plateau, the climate is a bit milder in winter, although the temperature varies with altitude, and generally frosts are possible at night, especially at high altitudes.
In Isfahan, in the centre of Iran at 1,500 metres above sea level, the average in January is 3 °C, while that of July is 29 °C: therefore the temperatures are similar to those of Tehran. The rainfall amount is very scarce and desert-like: only 110 mm per year.

Sheikh Lotfollah Mosque

At 2,000 metres above sea level, at the latitude of Isfahan the average in January is 0 °C, while in July it's 25 °C: this gives an idea on how the Iranian plateau heats up in summer.
Qom is located at 900 metres above sea level, south of Tehran, at the edge of the Kavir desert. In a typical year, only 135 mm of rain fall; the average January temperature is 4 °C, while summer is particularly hot, so much so that the average in July is 31 °C, with highs generally around 40 °C.
Shiraz is located in the south, at an altitude of 1,500 metres, and at this latitude the winter is quite mild even at this altitude: the average goes from 6 °C in January to 29 °C in July. Throughout the year, 330 mm of rain fall.
Average temperatures - Shiraz
Min (°C)01591317201914941
Max (°C)121519243136383734282114

Persepolis is located about 50 kilometres north of Shiraz, at 1,600 metres above sea level, and therefore has a climate similar to that of Shiraz.

The Kavir desert (Dasht-e-Kavir, "Great Salt Desert") is a large, arid and inhospitable area, located south-east of Tehran (see the green area in the map). There are sand dunes, but also salt lakes fed by rivers flowing down from the mountains, dried for several months of the year, partly because of the strong evaporation. The desert is located at an altitude of about 700 metres. Here winter is quite cold, while summer is torrid.

To visit Tehran and the cities of the plateau, the best times are spring and autumn, especially the months of April and October. In the coldest northern cities such as Tabriz, you can move the date two weeks towards summer (so mid-April to mid-May and mid-September to mid-October), while in warmer cities like Qom, you can move it two weeks towards winter (ie mid-March to mid-April and mid-October to mid-November).

Mountain zones in Iran

Iran is a very mountainous country. This map is intended only to give an indication of the distribution of the main mountain ranges. The major ranges are Alborz, which reaches its highest point in the 5,610-metre high Mount Damavand, located south of the Caspian Sea, and Zagros, a long chain that isolates the Iranian plateau from the mild currents of Mediterranean origin, with peaks up to 4,200 metres, located in the west. In winter, high mountains experience snowfalls, frost and strong winds. The snow cover lasts for many months on the tops, but then it dissolves almost everywhere, because summer is hot even at high altitudes. Only in the north, on the peaks of Alborz, there are glaciers above 3,500 metres, for example on Damavand and Alam Kuh.

Climate of southern Iran

The southern part of Iran, compared with the rest of the country is really a world apart, being warm most of the year, semi-desert and with virtually no winter.
The winter is mild in the west, at the border with Iraq, in the plain of the Shatt-al-Arab, where cities like Dezful, Ahwaz and Abadan are found, where the average in January is about 11 °C, while summer is scorchingly hot, with maxima of 43/45 °C in July and August, and peaks of 52 °C. In winter, sometimes cold air masses can lower the temperature, and there may be some frost at night. Only the northern part is relatively rainy: in Dezful, 385 mm of rain per year fall, with moderate rainfall from December to February, while in Ahvaz the rainfall amount drops to 230 mm, and in Abadan to 150 mm per year.
Average temperatures - Ahwaz
Min (°C)781217222527272318128
Max (°C)172025323944464543362719

Along the coast of the Persian Gulf, winter becomes even milder, with January averages going from 14 °C in Busher, to 18 °C in Bandar-e-Abbas, the latter located in the Strait of Hormuz.
Average temperatures - Bushehr
Min (°C)101114192326282825211612
Max (°C)192024293436373836332721

The Persian Gulf is a bit cool in winter, while in summer it gets very warm, exceeding 30 °C for a few months.
Sea temperature - Bushehr
Sea (°C)201919222629313232302623

In summer the temperatures are high during the day, with maxima around 37/38 °C, and even the minima remain very high, around 28/30 °C; the humidity coming from the sea makes the heat sweltering and hard to bear. The rainfall amount is low, typical of a semi-desert climate: 230 mm per year in Bushehr, 170 mm in Bandar-e-Abbas.
Average temperatures - Bandar-e-Abbas
Min (°C)121418212528303028241814
Max (°C)242428323638383837353026

In winter, the Strait of Hormuz is a bit warmer than the Persian Gulf, and also warm enough for swimming, as it does not drop below 23 °C in February and March.
Sea temperature - Bandar-e-Abbas
Sea (°C)242323262932333332312825

East of the Strait of Hormuz, on the Gulf of Oman, the average of January reaches 20 °C, therefore the climate becomes almost tropical. Summer becomes progressively less warm as you go eastward, because this area begins to be affected by the Indian monsoon: in Chabahar (or Chah-Bahar), the warmest month is June, with an average maximum of 35 °C, but then in July and August there may be overcast and muggy days, although with very rare rainfall, and in these months the maximum goes down to 32/34 °C.
Average temperatures - Chabahar
Min (°C)151619222528282725231916
Max (°C)252528313435343232323026

The Gulf of Oman is warm enough for swimming even in winter, while in summer it is very warm, but a little less than the Strait of Hormuz.
Sea temperature - Chabahar
Sea (°C)242324262931313029292725

North of this area, and south-east of the Kavir desert, we find another desert, even more inhospitable, the Lut Desert (Dasht-e-Lut, the area circled in orange in the map). The Lut, generally sandy, is mild in winter during the day, but with cold nights, and very hot in summer, especially in the southern part, where the altitude drops to 200 metres above sea level. The peaks of summer heat, around 55 °C, make it one of the hottest deserts in the world.
Further south, the region of Sistan and Baluchistan, at least below 1,000 metres, has a similar climate. In Iranshar, the average goes from 14.5 °C in January to 37 °C in July, with an average maximum of 45 °C: so this is one of the hottest cities in the world.
Average temperatures - Iranshahr
Min (°C)8101419242930282419139
Max (°C)212329354145454441363024

In this southern region of Iran, the best months are March and November in the area of the Persian Gulf, while in the eastern part, from the Strait of Hormuz to the east, and also in Sistan and Baluchistan, the best period runs from December to February.

When to go

Given the vastness of Iran and its different climates, it is difficult to find a time which is best for all the country, however, you can choose spring, particularly April, which can still be a little cold in the north and in the mountains, and can be already hot in the south, in the Arabian Gulf and the Gulf of Oman, and even more so in Sistan and Baluchistan. Autumn is nice, especially the month of October, but the south is even hotter than April, while it may be rainy on the Caspian Sea.

What to pack

In winter: on the coast of the Caspian Sea, warm clothes, sweater, jacket, raincoat or umbrella. In Tabriz, the northern plateau and high mountains, very warm clothes, down jacket, hat, scarf, gloves. In Tehran and Isfahan, warm clothes, sweater, coat, hat. In the Lut, spring/autumn clothes, light for the day, sweater, jacket, scarf for the sand. In the coast of the Persian Gulf and Bandar-e-Abbas, spring/autumn clothes, jacket and sweater; for the Gulf of Oman, spring/autumn clothes, light for the day, light jacket and sweater.

In summer: on the coast of the Caspian Sea, light clothes, light sweatshirt for the evening, scarf for the breeze, possibly a light raincoat or umbrella. In Tehran and the major cities of the plateau, loose fitting, light-coloured clothing, light and long shirt and pants of natural fibres (cotton, linen), a wide-brimmed hat, sunglasses, comfortable and breathable shoes, desert turban, a sweatshirt for the evening. Above 2,000 metres, you can add a jacket for the evening.
On high mountains, warmer clothes depending on the altitude. On the shores of the Persian Gulf and the Gulf of Oman, tropics-friendly, lightweight clothes, desert turban, sweatshirt and scarf for air conditioned.
To visit the mosques, you must cover shoulders and knees, and have bare feet. Women should avoid low-cut dresses.