Fresh from home series wins over Bangladesh, India and Australia this season, it will be the sixth time South Africa have toured Sri Lanka, having previously claimed series success in 1993 and 2014.
The first test will be played in Galle (Jul. 12-16) and the second in Colombo (Jul. 20-24), followed by the five ODIs that start on Jul. 29 in Dambulla. There will also be a single Twenty20 International played in Colombo on Aug. 14.
The original tour schedule had involved three tests, according to reports, but Sri Lanka Cricket asked for one of these to be replaced by an extended limited overs series that is more commercially viable.
"This will be a very important tour for us," CSA acting Chief Executive Thabang Moroe said in a statement.
"We have a lot of exciting, young players coming into our side in all three formats and, with so much of our international cricket being played on the sub-continent these days it is important they get used to those conditions as soon as possible.
"The ODI series forms an important part of our team preparation for next year’s World Cup in England."
First Published: April 4, 2018, 2:54 PM IST