Nelson has two distinct seasons and both have strong arguments.
Winter (December–March) is ski season. Whitewater typically opens in late November and closes in April, with the best powder conditions in January and February. The town is lively but not overwhelmed — accommodation is easy to find on weekdays. The cold is dry and manageable, and the downtown is active year-round.
Summer (June–August) brings warm weather, swimming on Kootenay Lake, hiking, cycling, and the Saturday farmers' market. July and August are the busiest months, with temperatures regularly reaching the high 20s. The lake warms enough for swimming by mid-July.
Spring (April–May) is mud season — the ski resort is winding down and the trails haven't dried out yet. Not the worst time to visit, but not the best either. Fall (September–October) is underrated: warm days, cooler nights, changing larches in the high country, and far fewer visitors.
The Starbelly Jam music festival (mid-July, Crawford Bay across the lake) and the Nelson Comic Arts Festival (spring) are worth checking for timing.