India will host Sri Lanka for a full series later this year, with the cricket board adding nearly two dozen matches to the tail-end of a packed home schedule for Virat Kohli's team.
India will now host Australia, New Zealand and Sri Lanka back-to-back at venues across the country between September-December.
Australia, who went down 2-1 to hosts India in the Test series earlier this year, will return for five one-day internationals and three Twenty20 matches.
India will then welcome New Zealand for three ODIs and three T20 matches, followed by Sri Lanka for a return series with three Tests, three ODIs and three T20s.
India are currently touring Sri Lanka. The two sides meet Thursday for the second of three Tests after the hosts were thrashed in the first, and they then play five ODIs and one T20.
Sri Lanka had previously been expected to tour India next March. But the Board of Control for Cricket in India adjusted the schedule because the island is hosting the Independence Cup over that period.
"Sri Lanka has always co-operated with India and therefore India will be making a reciprocal short visit only to play the Independence Cup," BCCI acting secretary Amitabh Choudhary told reporters on Tuesday.
"Another reason being there are six proposed exchange of tours between India and Pakistan which did not happen, so those spaces had to be adjusted."
India are slated to tour South Africa for a full series after completing their matches against Sri Lanka.
Australia: 5 ODIs in Chennai, Bangalore, Nagpur, Indore, Kolkata; 3 T20Is in Hyderabad, Ranchi, Guwahati
New Zealand: 3 ODIs in Pune, Mumbai, Kanpur; 3 T20Is in Delhi, Cuttack, Rajkot
Sri Lanka: 3 Tests in Kolkata, Nagpur, Delhi; 3 ODIs in Dharamsala, Mohali, Vizag; 3 T20Is in Kochi/Thiruvananthapuram, Indore, Mumbai