The schedule of matches was confirmed by Cricket South Africa (CSA) on Monday, with the opening fixture a Boxing Day test against the number one-ranked Proteas in Durban.
England will have been in the country for two weeks already having played two three-day warm-up matches against a South African Invitational XI in Potchefstroom and Pietermaritzburg.
Cape Town will host the second test starting on Jan. 2, 2016, before the teams head to the Highveld to play matches in Johannesburg (Jan. 14-18) and Pretoria (Jan 22-26).
England will warm-up for the five-match ODI series with a game in Kimberley against as yet unconfirmed opposition before playing internationals in Bloemfontein (Feb. 3), Port Elizabeth (Feb. 6), Pretoria (Feb. 9), Johannesburg (Feb. 12) and Cape Town (Feb. 14).
The first Twenty20 will also be in Cape Town five days later after a warm-up match in nearby Paarl against a South African Invitational XI, before the tour ends with the second match in Johannesburg on Feb. 21.
Dec. 11, 2015: England arrive in SA
Dec. 15-17: SA Invitation XI v England, Senwes Park, Potchefstroom
Dec. 20-22: SA Invitation XI v England, Pietermaritzburg Oval
Dec. 26-30: 1st Test, Kingsmead, Durban
Jan. 2-6, 2016: 2nd Test, Newlands, Cape Town
Jan. 14-18: 3rd Test, Wanderers, Johannesburg
Jan. 22-26: 4th Test, Centurion, Pretoria
Jan. 30: 1-day tour match, Diamond Oval, Kimberley
Feb. 3: 1st ODI, Springbok Park, Bloemfontein
Feb. 6: 2nd ODI, St. George’s Park, Port Elizabeth
Feb. 9: 3rd ODI, Centurion, Pretoria
Feb. 12: 4th ODI, Wanderers, Johannesburg
Feb. 14: 5th ODI, Newlands, Cape Town
Feb. 17: T20 tour match, SA Invitation XI v England, Boland Park, Paarl
Feb. 19: 1st T20 International, Newlands, Cape Town
Feb. 21: 2nd T20 International, Wanderers, Johannesburg.
(Reporting by Nick Said; Editing by Amlan Chakraborty)