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 77/81 °F, and there's some chance of thunderstorms. The Caspian Sea is actually a huge salt lake, and the coast is situated about 65 feet below sea level. In the western part, winter is a little colder than in the eastern part: the January average goes from 41 to 45 °F, 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 (°F)363741505764686864554639
Max (°F)525255667582868681726357

The annual precipitation amounts to 30/47 inches, 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.
Average precipitation - Rasht
Prec. (in)

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 (°F)555252576675818279736661

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 4,400 feet above sea level, winter is definitely cold: the average January temperature is 28.5 °F. From November to March, it often snows, and frosts can be intense: the temperature at night can even drop to -4 °F. Summer is hot and sunny, but a little less hot than in the rest of the plateau: the average in July and August is 79 °F, however, there can be torrid days, with peaks of 100/105 °F. Here are the average temperatures.
Average temperatures - Tabriz
Min (°F)192332435259686657463627
Max (°F)343950637384919082685441

The rainfall amount in Tabriz is typical of a semi-arid climate, about 12 inches 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. (in)

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 14/18 °F. Tehran is a vast city, close to the mountains, so the northern suburbs, reaching up to 5,600 feet above sea level, are colder than the central and southern areas, which are located around 3,300/4,000 feet, so the average daily temperature in January increases from 35.5 °F in the northern area, to 39 °F in the southern one, while in July it ranges from 82 to 86 °F. Summer in Tehran is hot, with torrid days, usually around 95/100 °F in July and August, but the humidity is low and the wind is feequent. Here are the average temperatures.
Average temperatures - Tehran
Min (°F)303441526170757366554534
Max (°F)455059728293999590756350

Throughout the year, only 9 in 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. (in)

In Mashhad, in the north-east of the country, at an altitude of 3,300 feet, the daily average goes from 34.5 °F in January to 79 °F in July. In winter, snowfalls and severe frosts are possible, so that the temperature can drop to around -4 °F, while in summer the heat is often scorching, with peaks of 104/108 °F. In a typical year, 10 inches 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 center of Iran at 5,000 feet above sea level, the average in January is 37.5 °F, while that of July is 84 °F: therefore the temperatures are similar to those of Tehran. The rainfall amount is very scarce and desert-like: only 4.3 inches per year.

Sheikh Lotfollah Mosque

At 6,500 feet above sea level, at the latitude of Isfahan the average in January is 32 °F, while in July it's 77 °F: this gives an idea on how the Iranian plateau heats up in summer.
Qom is located at 3,000 feet above sea level, south of Tehran, at the edge of the Kavir desert. In a typical year, only 5.3 in of rain fall; the average January temperature is 39 °F, while summer is particularly hot, so much so that the average in July is 88 °F, with highs generally around 105 °F.
Shiraz is located in the south, at an altitude of 5,000 feet, and at this latitude the winter is quite mild even at this altitude: the average goes from 42.5 °F in January to 84 °F in July. Throughout the year, 13 in of rain fall.
Average temperatures - Shiraz
Min (°F)323441485563686657483934
Max (°F)5459667588971009993827057

Persepolis is located about 30 miles north of Shiraz, at 5,200 feet 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 2,300 feet. 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 18,602-feet 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 13,800 feet, 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 11,500 feet, 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 52 °F, while summer is scorchingly hot, with maxima of 109/113 °F in July and August, and peaks of 126 °F. 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, 15 in of rain per year fall, with moderate rainfall from December to February, while in Ahvaz the rainfall amount drops to 9 in, and in Abadan to 6 inches per year.
Average temperatures - Ahwaz
Min (°F)454654637277818173645446
Max (°F)63687790102111115113109978166

Along the coast of the Persian Gulf, winter becomes even milder, with January averages going from 57 °F in Busher, to 64 °F in Bandar-e-Abbas, the latter located in the Strait of Hormuz.
Average temperatures - Bushehr
Min (°F)505257667379828277706154
Max (°F)6668758493979910097918170

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

In summer the temperatures are high during the day, with maxima around 99/100 °F, and even the minima remain very high, around 82/87 °F; 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: 9 inches per year in Bushehr, 6.7 inches in Bandar-e-Abbas.
Average temperatures - Bandar-e-Abbas
Min (°F)545764707782868682756457
Max (°F)757582909710010010099958679

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 73 °F in February and March.
Sea temperature - Bandar-e-Abbas
Sea (°F)757373798490919190888277

East of the Strait of Hormuz, on the Gulf of Oman, the average of January reaches 67.5 °F, 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 95 °F, 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 90/93 °F.
Average temperatures - Chabahar
Min (°F)596166727782828177736661
Max (°F)777782889395939090908679

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 (°F)757375798488888684848177

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 650 feet above sea level. The peaks of summer heat, around 131 °F, make it one of the hottest deserts in the world.
Further south, the region of Sistan and Baluchistan, at least below 3,300 feet, has a similar climate. In Iranshar, the average goes from 58 °F in January to 99 °F in July, with an average maximum of 113 °F: so this is one of the hottest cities in the world.
Average temperatures - Iranshahr
Min (°F)465057667584868275665548
Max (°F)70738495106113113111106978675

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-colored clothing, light and long shirt and pants of natural fibers (cotton, linen), a wide-brimmed hat, sunglasses, comfortable and breathable shoes, desert turban, a sweatshirt for the evening. Above 6,500 feet, 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.