Sri Lanka arrive in India next month for a cramped tour that will have them playing three Tests, three ODIs and three T20Is in 37 days, with the first Test likely to begin in Kolkata on November 16, and final match to be played on December 24.

Nagpur and Delhi will host the second and third Tests, before the limited-overs leg kicks off with the first ODI in Dharamsala on December 10. Mohali and Visakhapatnam complete the ODI fixtures, after which the T20Is will be held in Cuttack, Indore and Mumbai. While the BCCI hasn't made an official announcement yet, ESPNcricinfo verified the schedule with most of the hosting centres.

The second Test will be Nagpur's first Test since the ICC gave the Jamtha surface a 'poor' rating during the series against South Africa in 2015. The pitch in Nagpur has since been relaid, and it hosted the fifth ODI between India and Australia on October 1.

Indore and Mumbai will be staging their second international games in the space of a few months, both hosting T20Is against Sri Lanka. Indore hosted an ODI against Australia, and Mumbai will host a New Zealand ODI. Thiruvananthapuram, which had been initially allotted a T20I against Sri Lanka, will now host a T20I against New Zealand on November 7 after swapping fixtures with Cuttack.

"We were initially supposed to host Sri Lanka in December and Odisha [Cuttack] were supposed to host the New Zealand game in November," Kerala Cricket Association secretary Jayesh George told ESPNcricinfo. "But, there is a festival in Odisha in November, so we are now hosting the New Zealand game instead."

This will be the second bilateral series between the two teams in the space of a few months. In July-August, India traveled to Sri Lanka and thumped the home side 9-0 across all formats.

Arun Venugopal is a correspondent at ESPNcricinfo. @scarletrun