San Cristóbal's highland climate is cool and relatively temperate year-round — nothing like the heat of the Mexican lowlands. Average temperatures hover around 18–20°C, dropping to 8–12°C at night, so bring a sweater regardless of when you visit. Cold snaps in January and February occasionally bring near-freezing nights.
The rainy season runs from May through October. Afternoons bring regular showers — heavy at times in July and August — but mornings are usually clear. The rest of the year is dry and sunny. The coolest and driest months are January through March, which are also the busiest months for visitors. The city gets particularly crowded around Easter (Semana Santa) and in late December.
The highland indigenous festivals are worth timing a visit around if you can: Día de Muertos at the end of October and early November, the Feast of Our Lady of Guadalupe on December 12, and the various community festivals in the surrounding villages throughout the year. The San Juan Chamula carnival in February (the week before Ash Wednesday) is spectacular.