The Pakistan Cricket Board said the team would play three tests, five one-day internationals and two Twenty20 matches against the Lankans in December and January.
They will play two tests, five ODIs and two Twenty20 matches against South Africa in October-November.
South Africa and Sri Lanka refused to tour Pakistan because of security concerns.
No Test side has visited Pakistan since 2009 when militants attacked the Sri Lankan team in Lahore, killing six Pakistani policemen and a van driver and wounding some players.
Pakistan have since played all their home series at neutral venues, mostly in the UAE.
Pakistan will also play an official T20 match against Afghanistan on December 8.
Programme:Dec 7- Sri Lankan team arrive in Dubai
Dec 8 - Pakistan vs Afghanistan Twenty20 internationals (to be confirmed)
Dec 11 - 1st T20 Pakistan vs Sri Lanka - Dubai
Dec 13 - 2nd T20 - Dubai
Dec 18 - 1st one-day international - Sharjah
Dec 20 - 2nd one-day international - Dubai
Dec 22 - 3rd one-day international - Sharjah
Dec 25 - 4th one-day international - Abu Dhabi
Dec 27 - 5th one-day international - Abu Dhabi
Dec 31-Jan 4 - 1st Test - Dubai
Jan 8-12 - 2nd Test - Abu Dhabi
Jan 16-20 -3rd Test - Sharjah