May, June, July: cool, dry weather with average highs of 22-24°C; very manageable crowds.
April and November: shoulder months offer lower hotel rates, temperatures around 25-28°C, and far fewer tourists than peak season.
Go in June or July for the best balance of pleasant weather, low costs, and uncrowded sights.