This common question depends entirely on your time available, preference for travel, and budget.
For most first time international travellers to South Africa we would recommend 8-12 days as a starting point, as South Africa has an extensive variety of attractions on offer.
Cape Town cannot be justified in less than 4 days. A night (or two) in the nearby Cape Winelands or Whale Coast is a great add-on. A Kruger safari experience should be 3 days travel at a minimum to truly experience being immersed in the bush (if you are splitting your time between 2 safari destinations we would double that so as to understand the different natural dynamics at play).
A ‘self-drive trip’ on the Garden Route needs at least 6 days without being overly rushed. If you are visiting other destinations such as the Cederberg and the West Coast, Sun City or Johannesburg, you should allow 2 to 3 days for each area. Distances between attractions are large and ample time needs to be allowed for travel. Second time visitors to South Africa can focus on lesser known areas or areas which offer the greatest interest.
South Africa also acts as an excellent ‘springboard’ to travel in to other Southern African destinations. Johannesburg is the regional hub that offers regular flights to Victoria Falls, Botswana, Zambia, Namibia and Mozambique. Combining any of these destinations with your South African experience is simple.