Sri Lanka will play two Test matches and five one-day internationals as part of their tour of England next summer.
Lord's and Headingley will host the two Tests in June at the back end of a schedule which begins with Sri Lanka's arrival in the country on May 9.
Two day-night 50-over tour games, at Essex and Kent, are followed by a T20 fixture at Sussex before a one-off T20 international against England at The Oval on May 20.
The south London venue hosts the first of five ODIs two days later, with games Durham, Old Trafford, Lord's and Edgbaston completing the series.
The Sri Lankans will then warm up for the Test series with a four-day tour match against Northamptonshire.
The first Test begins at Lord's on June 12, eight days before the second Test in Leeds.
Sri Lanka, currently captained by Angelo Mathews, last toured England in 2011, losing a three-match Test series 1-0.
Fri 9 May: Sri Lanka arrive
Tue 13 May: 50-over Tour Match v Essex (D/N), Chelmsford
Fri 16 May: 50-over Tour Match v Kent (D/N), Canterbury
Sun 18 May: T20 Tour Match v Sussex, Hove
Tue 20 May: NatWest T20 International (floodlit), Kia Oval
Thu 22 May: 1st ODI (D/N), Kia Oval
Sun 25 May: 2nd ODI, Emirates ICG Durham
Wed 28 May: 3rd ODI (D/N), Emirates Old Trafford
Sat 31 May: 4th ODI, Lord's
Tue 3 June: 5th ODI (D/N), Edgbaston
Thu 5-Sun 8 June: v Northamptonshire, Northampton
Thu 12-Mon 16: June: 1st Investec Test Match, Lord's
Fri 20-Tue 24 June: 2nd Investec Test Match, Headingley