South Africa have announced a busy home summer with Australia, Pakistan and Sri Lanka joining England in touring the country.
England's three T20Is and three ODIs against the Proteas in late November and early December had already been announced.
South Africa have now also confirmed a two-Test series with Sri Lanka, a three-Test series against Australia and six white-ball games against Pakistan.
South Africa could also tour Pakistan for the first time since 2007 after announcing they will send a delegation to the country for a security assessment.
The Proteas' home summer kicks off against England with three T20Is (November 27, November 29 and December 1), followed by three ODIs (December 4, 6 and 9), with all games taking place in Cape Town or Paarl.
Sri Lanka will then face South Africa in Test action, with the first Test taking place at Centurion from Boxing Day and the second at Johannesburg from January 3.
Australia will play three Tests in February and March, marking their first red-ball series in the country since the ball-tampering scandal in 2018 when Steve Smith, David Warner and Cameron Bancroft received lengthy bans.
Pakistan will play three ODIs and as many T20Is in April, although exact dates and venues for those games and the Australia fixtures are still to be announced.
South Africa vs England
1st T20I - November 27 (Cape Town)
2nd T20I - November 29 (Paarl)
3rd T20I - December 1 (Cape Town)
1st ODI - December 4 (Cape Town)
2nd ODI - December 6 (Paarl)
3rd ODI - December 9 (Cape Town)
South Africa vs Sri Lanka
1st Test - December 26-30 (Centurion)
2nd Test - January 3-7 (Johannesburg)
South Africa vs Australia
Three Tests across February and March
South Africa vs Pakistan
Three ODIs and three T20Is in April