From dynamic Cape Town and the cosmopolitan vibes of Johannesburg to wildlife-filled expanses of wilderness such as the Kalahari and the Drakensberg mountains, South Africa has something for every kind of traveler.
The best time to come will depend on where you want to go and what you want to do when you get here.
In general, the climate in South Africa is warmer in the north and cooler in the south. You'll also find different weather on the coasts compared to the elevated plateau that makes up most of the country, where it tends to be drier. The Indian Ocean coast tends to feel more tropical, while the weather on the Atlantic coast is usually milder, though cold fogs and hot desert winds can still roll in.
Cape Town and the Western Cape are unique, weather-wise, having their rainy season in the winter (June to August). In the rest of the country, the rains arrive in the Southern Hemisphere summer (November through March), but the deluges rarely last for long (and there's the chance of a photogenic thunderstorm).
For many visitors, the weather is less of a factor than South Africa's vibrant festivals and the annual migrations and breeding seasons for the country's diverse wildlife populations. Whatever draws you to South Africa, here's a guide to the best times to come.
When to visit South Africa's game reserves
Rain is most likely to interfere with your travels if you’re on safari. Northern game reserves such as Kruger National Park are driest from May to September, during the South African winter. While you might not have the lush backgrounds to your photos that you would in the spring and summer, wildlife is often easier to spot because the vegetation dies back and animals congregate around water holes.
The chilly nights of winter also mean fewer mosquitoes, but you'll need to bring layers to keep you warm during dawn game drives. For safaris in the Western Cape, the summer months are drier but coincide with the busy Christmas period and South Africa’s summer school holidays.
When to go whale-watching in South Africa
Though whales and dolphins can be seen year-round off South Africa’s southern and eastern coasts, September and October are the peak cetacean-spotting months. Between June and November, southern right whales and humpbacks migrate to and from Antarctica to breed and have their babies in the warmer waters off Mozambique and Madagascar. May to June also sees a massive run of sardines that attracts whales, dolphins, sharks and sea birds (Durban is a good base to watch the spectacle).
While you’ll see more from a whale-watching boat, whales often come close enough to the shore to be spotted from land. This is particularly so near the town of Hermanus, celebrated by the World Wildlife Fund as one of the world's top whale-watching destinations, where whales can be seen as early as April. Gqeberha (formerly Port Elizabeth) on the Eastern Cape is known as the world bottlenose dolphin capital, and pods are frequently seen between January and June.
High Season (November to March) is the top time for festivals
November to March is summertime in South Africa with daytime highs reaching 32°C (90°F), often with quite a lot of humidity. If you’re looking to visit during this peak season, you’ll need to plan ahead. Accommodation in coastal areas and national parks can book up months in advance, and popular vacation spots see accommodation prices rise by 50% or more.
That said, if you have the budget to travel in the high season, you can enjoy a host of festivals and events. AFROPUNK, a massive international multi-day music festival that draws artists from all over the world, kicks off in December. Held annually on January 2, the Cape Town Minstrel Carnival (known locally as Kaapse Klopse) is a high-spirited street parade dating from the mid-1800s with important links to overcoming apartheid and South Africa's long history of slavery.
Cape Town’s Pride Festival is held in late February or early March, followed by the Cape Town Cycle Tour which brings in cycling enthusiasts from all over the globe. March also sees the Cape Town International Jazz Festival and Klein Karoo Nasionale Kunstefees, one of South Africa’s largest arts festivals, held at Oudtshoorn in the Western Cape.
Shoulder Season (April, May, September and October) brings lower prices and great wildlife watching
South Africa's shoulder seasons see smaller crowds and several important festivals — including April’s Splashy Fen Music Festival in Durban. The big lure in the fall is wildlife-watching, as the tail end of the dry summer weather brings wildlife out into the open. The spring months of September and October bring the best chances of cetacean encounters. Wildflower season peaks in late August in the north and early September in the south, but blooms can appear from July depending on the rains and continue into October if it’s not too hot.
Low Season (June to August) is the best time for budget travelers
The South African winter from June to August brings lower prices (except for safaris) and smaller crowds. This is the rainy season in Cape Town and the Western Cape (with Cape Town restaurants often offering pocket-friendly winter specials), but there’s still plenty of sunshine around. Elsewhere in the country winters are much drier, and conditions are ideal for a safari (be prepared, though, for chilly nights and cold early morning game drives). Top winter festivals include the National Arts Festival in the Eastern Cape and Knysna’s 10-day Oyster Festival in July.
Source: https://www.lonelyplanet.com/articles/best-time-to-visit-south-africa