Cricket South Africa announced the schedule on Thursday, with the first two games in Bloemfontein on January 27 and 29 and the final in Kimberley on February 1.
The tour will clash with a new 33-match SA20 competition, which kicks off on January 10, but the ODIs are expected to be played between the end of the group stage of the T20 competition and the start of the play-off round.
The series was previously postponed at the end of 2020, when England interrupted their tour due to an outbreak of Covid-19 infections in the South African camp, while both teams would remain in isolation.
England’s return has since been in doubt due to the potential clash with the T20 competition, but South Africa’s precarious position in the qualifying race for the World Cup 2023 means the series will now continue as the hosts need the chance to earn points to qualify automatically.
South Africa has already forfeited three ODIs in Australia in January, which would also have counted towards qualifying, to launch their T20 competition.
South Africa will play more qualifying ODIs against the Netherlands in Benoni on March 31 and the Wanderers in Johannesburg on April 2, it was also announced on Thursday.
They were scheduled for last December, but were canceled due to the outbreak of the Omicron variant of the Covid-19 virus.
South Africa will host the West Indies in two tests in Pretoria from February 28 to March 4 and Johannesburg from March 8 to 12, as they seek a place in the World Test Championship last.
There will also be three ODIs against the Windies, although not counting towards World Cup qualifiers, and three T20s.