There was no word from Moscow on the ceasefire announcement, which followed days of intense pressure from Trump for Ukraine to halt its attacks on Russian oil refineries. He blames those strikes for a rise in diesel prices that is hurting his Republican Party ahead of the November midterm elections.
Trump on Saturday warned the Ukraine president he had "better damn well stop" attacking Russian refineries, and urged Ukrainians to replace their leader at new elections.
Trump said Zelenskiy had missed several opportunities to strike a deal with Moscow.
In a post on his Truth Social platform on Sunday, Trump unexpectedly announced that Ukraine and Russia had agreed to an energy ceasefire, but did not elaborate further.
"Effective immediately, there is an ENERGY CEASEFIRE in the War between Russia and Ukraine. Both parties have agreed. Do not break it!" Trump wrote.
Trump, whose war in Iran has been widely blamed for hiking global fuel prices, had previously announced an energy ceasefire in Ukraine in mid-September, although neither side confirmed any such agreement.
A person familiar with the situation said the US had threatened to cut off intelligence sharing with Ukraine as well as weapons procurement under the Prioritised Ukraine Requirements List system, as it pressed Kyiv to halt strikes on Russian energy sites.
The person said Zelenskiy was speaking to European leaders about de-escalating the situation with Trump.
In an interview with Axios, Zelenskiy said Trump's post was the first he had heard of the deal.
Zelenskiy said he had discussed Trump's ceasefire announcement with NATO Secretary General Mark Rutte, Canadian Prime Minister Mark Carney and Finnish President Alexander Stubb.
"Ukraine supports the ceasefire, and it is important that Russia support it as well. We are awaiting details from the American side," he said on Telegram.
Speaking in his nightly video address, Zelenskiy said Russian forces were still launching air attacks on energy infrastructure, including a strike on a joint heating and power plant in Kharkiv.
Hours earlier, Zelenskiy had pushed back against US pressure for a unilateral end to Ukrainian attacks on Russian refineries, repeating his long-standing position that he was willing to do so only if President Vladimir Putin suspended Russian strikes on Ukrainian power infrastructure.
Trump also called for elections in Ukraine, to which Zelenskiy responded that he would call a vote if Putin agreed to a 60-day ceasefire.
The Ukrainian leader rejected that he was to blame for energy price rises, adding that "everybody in the world" knew that the war in the Middle East was a bigger factor.