ESP32 RTC even in case of no battery

In my project i want to keep time in all cases, its one of the most important factors of my implementation.

I know that ESP32 has RTC internally BUT i guess if the battery that power it on is over, i will lose all the time information (its a battery based project)..Is it correct?

In my situation, i use an external RTC (DS3231) so even in case the power is lost, the time will be correct, and then the user could charge the device and continue to use it.

So, i believe DS3231 is necessary part of my project..
is my approach correct?

Will the ESP always have WiFi/network access available when it has power? If so, time can be fetched from NTC servers each time the ESP powers up.

If there could be no WiFi/network access, then external RTC seems like a sensible idea.

Here is the ESP32 system time API https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/system_time.html[/ur], hopefully that will answer a few of your questions.

thanks for both answers..

PaulRB:
Will the ESP always have WiFi/network access available when it has power? If so, time can be fetched from NTC servers each time the ESP powers up.

If there could be no WiFi/network access, then external RTC seems like a sensible idea.

yes i no NTC servers time, but maybe there will be time that there will be no internet access, and my device should prevent losing time even in this situation.
As an example..you are out of house and the battery is empty..
my device should continue have correct time when you'll charge it, even if it cannot access internet.

Idahowalker:
Here is the ESP32 system time API https://docs.espressif.com/projects/esp-idf/en/latest/api-reference/system/system_time.html[/ur], hopefully that will answer a few of your questions.[/quote]

"only the power-up reset leads to resetting the RTC timer. " no..it doesnt work for me..the device suppose to be ready to continue having correct time even if the esp32 is out of battery and charged later..

"Not available during any reset and sleep modes"...

So i guess external RTC like DS3231 is my only solution..
Although i see that it cannot keep correct time if it stays with only the battery...but i guess its just a faulty RTC clock..