When to go
India has such a wide range of climatic factors that it's impossible to pin down the best time to visit weather-wise. Broadly speaking October to march tend to be the most pleasant months over much of the country. In the far south, the monsoonal weather pattern tends to make January to September more pleasant, while Sikkim and the areas of northeastern India tend to be more palatable between march and august, and Kashmir and the mountainous regions of Himachal Pradesh are at their most accessible between may and September. The deserts of Rajasthan and the northwestern Indian Himalayan region are at their best during the monsoon.
The trekking season in the Indian Himalaya runs roughly from April to November, though this varies widely depending on the trek, altitude and region. The ski season is between January and march.
It's worth checking the dates of particular festivals - you may be attracted by them, or conversely may want to avoid the chaos and jacked-up prices that attend them.