The agreement will be followed by peace talks between Bashar al-Assad's government and opposition forces in Kazakhstan at an as yet unspecified date.
Syria's army said the ceasefire will begin at 00:00 (22:00 GMT) on Friday.
The truce excludes Islamic State and the Al-Qaeda-linked group formerly known as the Nusra Front.
Russia and Turkey, who have backed different sides in the almost six-year long conflict, will be guarantors of the deal.
This is the third Syrian ceasefire agreement to have been agreed. Both the former agreements, reached in February and September, later collapsed.
Last week, Syria's army said it has returned the city of Aleppo, formerly Syria's most populous city, to government control, ending a four-year hold by rebel forces over parts of the city.
In October, the US ended negotiations with Russia concerning a ceasefire agreement with Syria. At the time, the US State Department said Russia was "unwilling or unable" to convince the Syrian leadership to agree the ceasefire, and it had instead turned on the opposition in Syria.