Map from Google - India

1- Himalaya (Srinagar)
2- North (Rajasthan, New Delhi)
3- North-east (Kolkata)
4- Centre-South (Hyderabad, Bangalore, Chennai)
5- South-west and islands (Mumbai)
When to go

Considering the Himalayas, it is said a little emphatically that India has all the climates, but in most of the country the climate is tropical and dominated by the monsoon, which leads to a dry and a rainy season. The rains are more or less intense and long-lasting depending on area, but generally the wettest period is from July to September, except in the southeast, where the retreating monsoon continues until the end of the year. The hottest period generally runs from April to mid-June, before the arrival of the monsoon: so the real summer corresponds to the calendar's spring. Winter lasts from December to February. In the north-west the monsoon is shorter, while in the inland mountains of Kashmir the monsoon doesn't arrive at all. Along the coast it's hot all year round, especially in the south-central, but the heat is tempered by the breezes.
Let us now analyze the different climatic zones of India.

India, climate of Himalaya
At the highest altitudes of the Himalayas, the climate is mountainous. The temperature decreases with altitude, besides it's higher along the southern side, while it's lower in inland areas and north facing slopes. Even the rainfall is high on the southern slopes, while it becomes scarce in inland areas, particularly in the north-west, where we find the Ladakh Plateau, which is arid because it's closed between the Karakoram and the Himalayas (see Leh).
On the slopes of the Himalayas, especially in the west, in winter there may be some rains. In Srinagar, at 1,500 metres above sea level, in the state of Jammu and Kashmir, where it is said the tomb of Jesus is located, the climate is slightly continental.
Here are the average temperatures.
Average temperatures - Srinagar
Min (°C)-2-137111518181360-2
Max (°C)581419242930302822159

Sheltered from the monsoon, Srinagar in summer is quite sunny, even though it experiences some thunderstorms in the afternoon. In winter, it can rain, and frosts and snowfalls are possible; spring is the rainiest season, but without the excesses of the monsoon areas. The rains in winter and spring are due to the passage of weather fronts of Mediterranean origin, which can affect this part of the north-western Indian territory.
Here is the average precipitation.
Average precipitation - Srinagar
Prec. (mm)7570105806535606530302035670

Above 3,000 metres, in Kashmir winter gets cold, and it is still snowy along the western slopes: in Drass, at 3,000 metres it can snow in winter, while summer is dry. On the contrary, in inland areas the climate becomes desert: in Leh, located in the Ladakh plateau, at 3,500 metres of altitude, precipitation remains below 100 millimetres per year, therefore the landscape is desert.
While Jammu and Kashmir is sheltered from the summer monsoon, this does not apply to the mountains that lie to the east, ie west of Nepal (states of Himachal Pradesh and Uttarakhand), and even less to those that lie in the north-east (which at high altitudes are almost all situated in Sikkim and Arunachal Pradesh).
In Gangtok, Sikkim, at 1,400 metres of altitude, the average temperature goes from 8.5 °C in January, to 19.5 °C in August: so it's milder than Srinagar, which is located further north.
Average temperatures - Gangtok
Min (°C)4691214161717161296
Max (°C)131418212222222222211814

Summer, however, is so cool because the monsoon rains occur almost daily, and the amount of sunshine in this season is very poor. Already in May, 525 mm of rain fall, and in July even 630 mm. The total annual rainfall amounts to even 3,535 mm. The only period when there is little rain is from November to January. Although here winter is not too cold, November is preferable because it's milder.
Here is the average precipitation in Gangtok.
Average precipitation - Gangtok
Prec. (mm)308012027052561063056546518040203535

In Darjeeling, West Bengal, at 2,100 metres above sea level, where the British colonists came to spend the summer in order to escape from the heat, the average goes from 5 °C in January, to 17 °C in July and August. Hence, the British found a cool summer like in England, but much more rainy, in fact there are more than 400 mm per month from June to September, and the rains occur almost daily. Here winter is quite cold, but dry and sunny.

The eternal snows in India start at around 4,500 metres on average: a bit lower in Karakorum, which lies to the north, and a bit higher in the Himalayas.

Climate of northern India
In this vast area of northern India, which coincides almost completely with the Indo-Gangetic plain, the climate has the following characteristics: a relatively cool winter, especially in the northern part, with average temperatures in January below 20 °C, except along the coasts of Gujarat, where it can slightly exceed this value; a scorchingly hot period from March to May, sometimes even in June, before the arrival of the monsoon; a summer monsoon from weak to moderate (zones 1 and 2 on the map) or relatively intense (zone 3), however, with an annual rainfall amount lower than 1,400 mm, and with the withdrawal of the monsoon before the middle of October.

In the north-west of India, on the border with Pakistan (zone 1), we find an ample arid area, which covers the western part of the states of Rajasthan and Gujarat, west of the Aravalli Mountains. This is an area which receives the monsoon for a short period, from late June or the early July to mid-September, and with moderate rains. The annual amount of rainfall is lower than 400 mm, but usually higher than 250 mm, which is considered as the limit for the desert climate, except in the far west, where we find the Thar desert, however the rains are concentrated in such a short time, that the survival of vegetation is difficult, except for some shrubs or xerophile plants. Even in the Thar desert, however, here and there we find a bit of vegetation, albeit in a landscape of sand dunes.

Thar Desert

In Jodhpur, Rajasthan, 375 mm of rain per year fall, of which more than 100 mm per month only in July and August. In the rest of the year the sun usually shines.
Here is the average precipitation.
Average precipitation - Jodhpur
Prec. (mm)852263012014545731374

In winter, from December to March, the temperatures are pleasant, with cool or slightly cold nights, around 10 °C, and warm days, around 25/28 °C. Already in March the heat becomes intense, with an average maximum of 33 °C, which rise to 41 °C in May. From April to June, before the monsoon arrives, the temperature can touch in the hottest days even 50 °C in the shade. The monsoon lowers the temperature a bit, to 36 °C in July and 34 °C in August, but on the other hand it increases moisture. After the monsoon, the temperature in September and October rises again slightly, reaching 35 °C in September and 36 °C in October, and then drops again at the end of the year, down to 27 °C in December.
Average temperatures - Jodhpur
Min (°C)101217232728272524201511
Max (°C)252833384140363435363227

The best time to visit this area is from December to February, but if you can only travel in summer and you still want to visit India, you may choose this area, since it is the least affected by the monsoon, along with the mountains of Kashmir.
It should be noted, however, that the monsoons does not always follow a regular pattern, and in particular north-western India (along with Pakistan) is more rainy than normal in the years of La Niña, when it can experience flooding, while in other years the whole area can remain almost completely dry (in the years of El Niño, all India can experience warmer winters than normal, and weaker summer monsoons, but this does not happen always).

East of the first area we find a central area (zone 2 in the map) where the climate is semi-arid, since the annual precipitation is between 400 and 800 mm. In other circumstances this would not be a low amount, but considering the high temperatures and the fact that the rains are concentrated in a few months, the vegetation which occupies this area is certainly not lush. Nevertheless, in the monsoon season there may be heavy rains.
The capital of Rajasthan, Jaipur, is located east of the Aravalli Mountains, and is therefore rainier than the desert area: here, 610 mm of rain per year fall, of which 200 mm in August. In Agra, where the Taj Mahal is located, precipitation reaches 725 mm per year.
The capital of India, New Delhi is at the edge of the area, since it receives 800 mm of rain per year, the majority of which occurring from July to September.
Here is the average precipitation.
Average precipitation - New Delhi
New DelhiJanFebMarAprMayJunJulAugSepOctNovDecYear
Prec. (mm)20151030305522025013515715802

Another city which is located in this area is Amritsar, with 480 mm of rain per year.

Golden Temple

Further to the east, but also in a thin band in the north located at the foot the Himalayas (zone 3), the rains are more abundant, so that they range between 800 and 1,400 mm per year, in cities like Lucknow, Kanpur, Varanasi, but otherwise the climate is similar to that of New Delhi. However, the far north, in Jammu, at the foot of the Himalayas, in winter some disturbance of Mediterranean origin can pass (which, as have already seen, affect also the mountainous area of Srinagar), so that 33 mm of rain fall in December, and as many as 60 mm in January, February and March. From December to February, in Jammu, which is one of the most northerly cities of the plain, sometimes the minimum temperature may hit freezing or even drop a few degrees below.

Climate of northeast India
In the north-eastern area of India, the climate is more humid and less hot than the rest of the northern areas analyzed above. Here, too, winter is dry, and is very mild, with average temperatures in January slightly below 20 °C; the heating from March to May, however, is relatively felt in the area located west of Bangladesh, and not at all to the east and north, because here we are outside of the Indian landmass; the monsoon rains are abundant and sometimes torrential, and in any case the total annual rainfall exceeds 1,400 mm; the monsoon period is quite long, as it runs from early June to early October, and it's often preceded, in April and sometimes even in March, by some thunderstorms in the afternoon, especially on mountains slopes.
West of Bangladesh, in West Bengal, we find Kolkata (Calcutta), at the limit of this area, given that the average in January is around 20 °C, so winter is pleasantly warm, due to the proximity of the sea; here the heating from March to June is evident, although not as in New Delhi, however the temperature can exceed 40 °C in the worst moments.
Average temperatures - Kolkata
Min (°C)141721252627262626241914
Max (°C)262934363634323232322926

The monsoon goes roughly from June 5 to October 15, but already in May, the first showers in the afternoon may occur. The total annual rainfall is 1,600 mm. From November to April, the sun shines and it almost never rains.
Here is the average precipitation.
Average precipitation - Kolkata
Prec. (mm)132525451302603003052901603531591

Near Kolkata, the sea is warm enough for swimming throughout the year, although it drops to 23/24 °C in January and February.
Sea temperature - Kolkata
Sea (°C)232426282930292929292725

In the rest of the north-east, the rains are generally more abundant, except in some areas a bit more sheltered as Guwahati, in the valley of the Brahmaputra, where it rains as in Kolkata. In general, however, precipitation exceeds 2,000 mm per year, and in some areas, where the currents are forced to rise along the mountain slopes, it reaches spectacular amounts. Cherrapunj, at 1,300 metres above sea level, in the northeastern state of Meghalaya, is the rainiest place in the world: here 10,866 mm of rain per year fall, that is, almost 11 metres! Rainfall exceeds 1,000 mm per month for 5 months, from May to September, while in June alone even 2,600 mm of rain fall. Luckily, here as in the rest of the region, there is little rain from mid-November to February, but already in March, when the first thunderstorms begin to occur, 220 mm of rain fall, and in April the early monsoon brings more than 700 mm of rain. At this altitude the temperature is pleasant, since highs are around 22 °C from April to October, while in winter they are around 15/17 °C.
As already mentioned, the extreme north-east (Meghalaya, Assam etc.) in spring does not heat up excessively, therefore the maximum temperatures remain around 30/32 °C in the plains from April to October.

Climate of central-south India
In this area, which includes the whole of south-central India except the western coast and the Western Ghats, the climate is tropical, with an average in January exceeding 20 °C, but otherwise there are remarkable differences: in the north and the southern inland areas (zone A) the monsoon lasts from June to October, while along the southeastern coast (zone B) the monsoon reaches its peak at the end of the year, between October and December (called northeast monsoon or retreating monsoon). The rains are more abundant in the eastern part of both the zone A and B.
The heating in the period from March to June is strong in the interior and is also felt on the east coast. In general, in inland areas the summer rains are not more abundant than in northern India, but they are more frequent and in this season the sky is often cloudy, eg Nagpur and Bangalore in July have only 3 hours of sunshine per day, compared with the 6 of New Delhi.

Now let's start from the A area.
In Nagpur, Maharastra, the average temperature goes from 21 °C in January, to 35 °C in May, to 28 °C in July. The annual rainfall amounts to 1,170 mm, of which more than 150 mm per month from June to September, with a maximum of 340 mm in July. There is little rain from October to May. Here the best time, as in most of India, is from November to February.
Further south, in the Puna district, 550 metres above sea level, the temperature is slightly lower in the warmer months: the average maximum in May is 38 °C, and the rains amount to just 700 mm per year, because the city is protected by the near Western Ghats. Here, more than 100 mm per month fall from June to September, but always less than 200 mm, and still in October 90 mm fall: the monsoon lasts a little more because the city is located further to the south. This is one of the driest areas of south-central, with a semi-arid landscape.
Further south, in Hyderabad, 550 metres above sea level in Andhra Pradesh, the daily average goes from 22 °C in January to 33 °C in May, dropping to 27 °C in July.
Average temperatures - Hyderabad
Min (°C)151821242624232222201715
Max (°C)293235383935313031312928

The rainfall amounts to 760 mm, of which more than 100 mm from June to September, and 70 mm in October, so we are still in a semi-arid zone.
Here is the average precipitation.
Average precipitation - Hyderabad
Prec. (mm)21113253010516514516570256762

Going further south, in Anantapur, still in Andhra Pradesh, the heat is further anticipated, since already in February the maxima rises around 33 °C; besides, here in May there's some thunderstorm activity which precedes the monsoon itself, but then the monsoon is considerably weakened in the early months, so much so that just 60/70 mm per month fall from June to August, although high humidity and cloudy skies make it clear that we are in the monsoon period. The monsoon, however, becomes more intense in September and October, which are the wettest months, with respectively 120 and 150 mm. The total annual rainfall is still relatively low: only 650 mm.
In Bangalore, in southern Karnataka, 920 metres above sea level, the heat is tempered by the altitude.
Average temperatures - Bangalore
Min (°C)151719212120191919191715
Max (°C)273033343329282828282726

Here in May already 115 mm of rain fall, then the monsoon goes from June to mid-November. The rainfall amounts to 920 mm per year. Here is the average precipitation.
Average precipitation - Bangalore
Prec. (mm)310645115801151451451855516920

We now come to the B area. Here we are on the east coast, where it's hot all year round. If the west coast down to Trivandrum is very rainy, in the southern coastal portion, rainfall is less than 1,000 mm per year, and even less than 800 mm per year in the western part. It's the case of Kanyakumari, at the southern tip of the country, in the state of Tamil Nadu, where it's hot throughout the year, since the average maximum never drops below 30 °C, while the rains, after an initial period of instability from April to June, with some thunderstorms not too intense, experience a relative break from July to September with just 40/45 mm per month, while the real monsoon is late and limited to the months of October and November. So here we are in the area where the "northeast monsoon" or "retreating monsoon" prevails, typical of the south-eastern coast, but due to the lack of rain, just 735 mm per year, we are still in the semi-arid zone. In this portion of the southern coast, you can come from mid-December to February, and also March-April even though it is the hottest time of the year (because it's not so hot as in the interior). All in all, even the period July-September is generally acceptable, but it is wet, often cloudy, and with the risk of some tropical storm or cyclones (see below).
Moving north along the east coast, we find the Coromandel coast, where the rains are more abundant. The maximum rainfall is recorded in the area of Pondicherry, Tamil Nadu, where 1,700 mm of rain per year fall, with a peak between October and December.

Even in Chennai (formerly Madras), the late monsoon is pronounced, since precipitation is about 265 mm in October, 310 mm in November, and still 155 mm in December.
Here is the average precipitation.
Average precipitation - Chennai
Prec. (mm)24715255055851251202653101551236

Here, the best time is reduced to January and February, when it's hot, the sun is shining and you can go to the beach.
Average temperatures - Chennai
Min (°C)202123262827262625242321
Max (°C)293133353737353534322928

The Bay of Bengal at this latitude is warm all year round, as you can see from the sea temperatures at Chennai.
Sea temperature - Chennai
Sea (°C)272728293030292929292827

Climate of South-west India and islands
Along the west coast and on the islands (Lakshadweep in the Arabian Sea, Andaman and Nicobar in the Bay of Bengal), the climate is hot and humid throughout the year, with heavy rains for several months, but also with a winter break.
Along the west coast it's hot throughout the year, while the monsoon period is extended gradually as you proceed from north to south. During winter the temperatures are particularly high for the season, because in winter the north-easterly winds descend from the Western Ghats and slightly warm up with a foehn-like effect.
In Mumbai (formerly Bombay) even in January the maximum exceeds 30 °C, however, the minimum drops albeit slightly below 20 °C. From November to May, the rains are scarce and the sun is frequent. From March to May the temperature increases, but not as much as in the interior: the minimum at night goes up to 24/26 °C, the maximum reaches around 33 °C, even though in the worst moments it can touch 40 °C.
Average temperatures - Mumbai
Min (°C)171821242626252524232118
Max (°C)313133333332303030333432

The monsoon lasts from June to early October and is very intense, especially in July when 800 mm of rain fall and it rains very often. In July and August, the sky is almost always cloudy and the humidity high. In Mumbai, about 2,250 mm of rain per year fall.
Here is the average precipitation.
Average precipitation - Mumbai
Prec. (mm)110115525800530310551552260

The sea temperature in the Arabian Sea is warm enough for swimming all year round, as you can see from the water temperatures at Mumbai.
Sea temperature - Mumbai
Sea (°C)262526272929292828292826

Continuing south along the coast, the climate becomes even more rainy. In Panaji, in the former Portuguese colony of Goa, precipitation reaches 2,900 mm per year, of which even 995 mm in July.
Here is the average precipitation.
Average precipitation - Goa
Prec. (mm)0011011587099552025012530152932

The temperature is high throughout the year, and even in winter it remains about 20 °C at night.
Average temperatures - Goa
Min (°C)202123262625242424242221
Max (°C)323232333330292930323332

The sea temperature in Goa is steadily high throughout the year, and in winter it's a bit warmer than in Mumbai.
Sea temperature - Goa
Sea (°C)282828293029282828292928

Further south, in Mangalore, Karnataka, where the Malabar Coast begins, the daytime temperature is 33 °C even in January, and precipitation reaches 3,300 mm per year. Here the first thunderstorms occur in May, while the monsoon runs from June 5 to October 15 or so.
Further south, in Calicut, Kerala, the first thunderstorms occur in April, while the monsoon lasts until November, when 130 mm of rain still fall.
In Trivandrum, the southern tip of Kerala, the rains are less abundant, amounting to 1,700 mm per year, but the rainy season is very long: as early as April 110 mm of rain fall in the form of showers and thunderstorms, and 170 mm still in November. In this southernmost part of the west coast, therefore, even the retreating monsoon is noticeable.
The west coast is very rainy, because in the east there's the mountain range of the Western Ghats, which forces the ascent of the moist air coming from the sea. Along the western mountain slopes the rains are more abundant, so much so that in some places they even reach six metres of rain per year! The scenario is very different on the eastern side, where the south-west monsoon penetrates with difficulty, and as we saw the rainfall drops below 1,000 mm per year. During the empire, the British who were in this area, in summer took refuge in Ootacamund (Aka Ooty or Udhagamandalam), at 2,200 metres above sea level, 100 kilometres east of the coast of Calicut, where the summer monsoon is still felt, and partly that of autumn (the retreating monsoon), but not too much, so that more than 100 mm per month from May to November fall, with two peaks in July and October. Here is the average precipitation.
Average precipitation - Ooty
Prec. (mm)20102575150135180125135190140551240

In return, during the monsoon period the temperature is cool, with highs around 17/18 °C in July and August, and about 10/11 °C at night. Here winter is a bit colder at night and a bit warmer during the day, compared with the months where the monsoon dominates, because in winter the skies are clear.
Average temperatures - Ooty
Min (°C)6791111111111101097
Max (°C)202122232218171719191920

We now turn to the islands. Here the climate is hot all year round, with night temperatures around 24/25 °C and highs around 28/30 °C; here too there's an increase in temperature between March and May, but it's not remarkable.
In the Lakshadweep Islands, located in the Arabian Sea, from 1,500 to 2,000 mm of rain per year fall, and the rains go from May to mid-December. Since the temperature increases slightly from March, here the best time is from late December to February.
In the Andaman and Nicobar Islands, located in the Bay of Bengal, the rains are a bit heavier, since they range from 2,500 to 3,000 mm per year. The rains are abundant and the sun rarely shines from May to November. In Car Nicobar, in the southern islands, the rains continue even in December and mid-January, while they end earlier in Port Blair and in the northernmost regions. You can then go from late January to mid-April in the southern islands, and from late December to mid-April in northern ones.
Here is the average precipitation in Port Blair, in the Andaman Islands.
Average precipitation - Port Blair
Port BlairJanFebMarAprMayJunJulAugSepOctNovDecYear
Prec. (mm)402016653956004704504403602151053176

In the islands the temperatures are high throughout the year, with lows regularly above 20 °C.
Average temperatures - Port Blair
Port BlairJanFebMarAprMayJunJulAugSepOctNovDec
Min (°C)232323252524242424242424
Max (°C)293032333130292929303029

Even in the southern islands, the sea is steadily warm all year round.
Sea temperature - Port Blair
Port BlairJanFebMarAprMayJunJulAugSepOctNovDec
Sea (°C)282829303029292828292928

Areas affected by cyclones in India
We now speak of tropical cyclones. They are more common on the Bay of Bengal than the Arabian Sea, but they are also possible in the latter. In South India, towards the tip of the continent, cyclones can penetrate inland and pass from sea to sea; in the eastern part they may penetrate for a few hundred kilometres along a trajectory that goes from the south-east to the north-west; in the north-west they may affect the coast of Gujarat. The map shows the areas that have been hit by cyclones in the past and is therefore only indicative: nothing prevents a cyclone from following a different trajectory, although it is unlikely. The period of cyclones lasts from May to November. The area which is most at risk is that of Bengal, in the huge delta of the Ganges-Brahmaputra, where there is water everywhere and the mainland is flat and located at sea level.

In India, there are different types of climate, so it is difficult to find a single period which is best for all the country. However, the best time to visit most of India, at least in plains and hills, runs from mid-November to February. On the south-east coast and the southern islands, the rains continue until December, so you can go in January and February. March is still a dry month, but it begins to be hot, with peaks that during the month can exceed 35 °C in the south.
If you can only travel in summer, you can choose the northwest: in Rajasthan the monsoon is less intense; you will find a muggy heat and some downpours, usually not abundant. Even the mountains of Jammu and Kashmir can be visited in summer, because they are located in a "rain shadow" area. A very different situation is found on the eastern part of the Himalayas, which is affected by the summer monsoon in full.
As mentioned, the sea in India is warm enough for swimming all year round. For a beach holiday, the west coast (see Goa) is good from December to February, the eastern coast only in January and February.

What to pack

In winter: in the far north at low altitude (Jammu, Amritsar) and the southern mountainous areas (Ootacamund), spring/autumn clothes, sweater and warm jacket for the evening.
In the north (New Delhi, Jaipur, Varanasi, Patna), spring/autumn clothes, light for the day, a jacket and a sweater for the evening, possibly hat and scarf for cooler evenings.
In the centre and in the inland south-central areas (Calcutta, Hyderabad), light clothes for the day, sweater and light jacket for the evening.
On the south-central coast (Mumbai, Goa, Trivandrum, Chennai, Pondicherry), light clothing, a scarf for the breeze, a light sweatshirt for the evening; on the south-east coast (Chennai, Pondicherry), light raincoat or umbrella still in December.
In the islands (Lakshadweep, Andaman and Nicobar Islands), light clothing, a scarf for the breeze, light sweatshirt for the evening, light raincoat or umbrella until December or mid-January.
For the reef, equipment for snorkeling, water shoes or rubber soled shoes.
In the Himalayas: around 1,500/2,000 metres (see Srinagar, Darjeeling), warm clothes, jacket, hat, scarf. Above 2,000 metres, warm winter clothes, hiking boots, sunglasses, sunscreen. At the highest altitudes, cold weather clothing, synthetic thermal long underwear, gloves, down jacket, hat, scarf.

In summer: in all areas at low altitude, tropics-friendly, loose fitting clothing, made of natural fibres, light raincoat or umbrella, a light sweatshirt and a scarf for air conditioned places; desert turban in the north-west; a scarf for the breeze on the coast, a light sweatshirt for the evening at low-mountain elevations (see Bangalore).
In the southern mountains (see Ootacamund), spring/autumn clothes, raincoat, sweater, jacket.
In the Himalayas: around 2,000 metres (see Darjeeling), spring/autumn clothes, raincoat, jacket, sweater. At the highest altitudes, warm jacket, down jacket, hat, gloves, scarf.

To enter temples, it is customary to remove shoes, dress neatly and cover a little.
In rural areas, closed-toe shoes may be useful against snakes.