Here's how my system "works":
I use the export app to periodically backup my calendar to local disk of the phone.
Android stores calendaring data "internally" within the operating system (or the Android "runtime" I guess), possibly in some kind of sqlite database. This means you need a rooted phone to access the data "raw" (not that you would want to). Calendar apps therefore do not store calendaring data in themselves. So Android devices are in this sense not like general purpose computers, where the operating system doesn't know or care about calendering at all.
Calendaring apps don't like to talk to CalDAV servers themselves, so there is for example an app called DAV5x which understands CalDAV and provides the an interface to a calendaring app presumably similar to the interface Android provides. However, DAV5x doesn't like it when your calendar isn't available for some time, and unless it can talk to your server after some time your events dissapear.
My workflow is such that 99% of the time a local-only calendar is perfectly fine (and preferred actually so being offline doesn't impact my calendar). So DAV5x doesn't work for me because my CalDAV server is on my local network and not running all the time.
So this is kinda a 1990's workflow where my PDA can work fine offline, but I need to periodically export+import calendar files as backup. But I quite like this workflow because it's rock solid.
In the 1990's internet access, particularly for portable devices was most likely dialup. This meant PDA's needed to work offline most of the time. Once smart phones and cheap mobile internet his the scene, application started requiring internet connections to work properly. Thus the "cloud" was invented, and everything is now in the cloud.
But Android devices still have this kinda PDA hangover like local calendar event storage. Which is kinda cool.