I had a look now and Android enforces EVENT_TIMEZONE to be set for new events except for sync adapters.
So while DAVx⁵ (which is a sync adapter) can technically insert events without EVENT_TIMEZONE, it is against the documentation:
https://developer.android.com/guide/topics/providers/calendar-provider#add-eventhttps://developer.android.com/reference/android/provider/CalendarContract.EventsYou must include an EVENT_TIMEZONE. To get a list of the system’s installed time zone IDs, use getAvailableIDs(). Note that this rule does not apply if you’re inserting an event through the INSERT Intent, described in Using an intent to insert an event—in that scenario, a default time zone is supplied.
When inserting a new event the following fields must be included:
… eventTimezone …
Also, it will probably cause problems when Android calculates the recurrence sets, and most calendar apps will probably not support this (and may even crash), because according to the documentation, a time zone must be set.
Although I’d love to support floating times, it’s not possible in a stable and proper way with the current Android calendar provider. So DAVx⁵ will rewrite all floating times to the system default time zone.