The election is part of a deal to end the country’s political crisis.
The deal has not been published, but Viktor Yanukovych referred to a national unity government and constitutional changes reducing the president’s power.
The compromise came after hours of talks between mediated by three European foreign ministers.
The German and Polish ministers met protesters in Kiev’s Independence Square before announcing their leaders backed the deal.
The agreement was later signed by opposition leaders and Viktor Yanukovych at the presidential administration headquarters in Kiev.
Polish Foreign Minister Radoslaw Sikorski tweeted that the deal was a “good compromise for Ukraine” which would open the way “to reform and to Europe”.
Ukrainian broadcaster ICTV said it had seen a copy of the agreement, which included three main proposals:
Despite the agreement, isolated outbursts of violence were reported in central Kiev on Friday morning.
The police said they had traded gunfire with protesters, and Ukrainian media said riot police were patrolling inside parliament during a session.
Lawmakers once again began the session with scuffles, as the speaker tried to adjourn a debate about constitutional reform.
Viktor Yanukovych announced the deal early on Friday, but initially gave no details.
French Foreign Minister Laurent Fabius said there had been an agreement that nobody would publicize the deal until it had been confirmed.
However, the president later gave more details and said in a statement that he would initiate the process of constitutional reform and call an early election.
The deal came after the bloodiest day since the unrest began.
Police opened fire early on Thursday after protesters tried to push them away from the makeshift camps they have been occupying in central Kiev.
The health ministry said 77 people had been killed since Tuesday, and another 577 were injured.
But activists suggested the death toll was likely to be much higher.
On Friday the US State Department issued a travel warning advising its citizens to “defer non-essential travel” to Ukraine, saying that it had authorized “the departure of all family members of US government personnel from Ukraine”.
7f5-x5V9SAY EiI5xozu6ggThe US House Ethics Committee has voted to release its report on former Republican Representative…
ABC News has agreed to pay $15 million to President-elect Donald Trump to settle a…
South Korea’s parliament has voted to impeach President Yoon Suk Yeol over his failed attempt…
Israeli war planes have carried out more than 100 air strikes in Syria on December…
President-elect Donald Trump has threatened to impose 100% tariffs on the BRICS countries if they…
Syrian troops have withdrawn from the city of Aleppo following an offensive by rebels opposed…