Sri Lanka's climate is shaped by two monsoons, which means the island never has a single "bad" season — when one coast is wet, the other is often sunny.
December to March is the best time for the west and south coasts — Colombo, Galle, Unawatuna, and Mirissa. Skies are clear, beaches are calm, and whale watching off the south coast is excellent from December to April. This is also peak season, with the highest prices and the most visitors.
May to September is when the east coast comes into its own. Arugam Bay has its best surf and most reliable weather during this window. Trincomalee and Nilaveli beach are pleasant from May to September while the west coast is getting drenched. The northeast monsoon runs October to January.
The Hill Country has its own microclimate. Ella, Nuwara Eliya, and Kandy can be cool and misty year-round. The best months for the mountains are January to March and July to September.
April is Sinhala and Tamil New Year (around April 13–14), a festive time when Sri Lanka slows down, many businesses close, and domestic travel surges. Accommodation in popular spots gets booked out. If you plan to be there at this time, book ahead.
July or August is the time for the Esala Perahera festival in Kandy — one of the great spectacles in Asia. The ten-day procession peaks on the full moon night and attracts enormous crowds; plan accommodation well in advance.
If you want to avoid peak crowds and prices, May and September-October are reasonable shoulder choices depending on which part of the island you plan to visit.