I disagree strongly with "iCalendar works". Basic sync to Google Calendar causes weird artefacts and notifications (like getting event invites for events that are already accepted).
I also strongly dislike the iOS Calendar UI, though that's possibly also because of iOS itself being rather unintuitive. Floating buttons in four corners of the screen just isn't very clear. In my opinion Google Calendar, even on iOS, is much better. More reliable on iOS too, but Google's app syncing better with Google's servers isn't really a good comparison.
I have no problem syncing with DAVx5 across various iCal sources on my phone. iOS seems pretty funky about its protocol requirements (and if it fails to understand the protocol, it's hard to tell why it failed). Apple practically invented the protocol, they should offer some kind of explanation of why it's not working.
That said, I do think Google should invest more into getting third party calendar support into their GCalendar apps. I don't want to need a third party app even if the app works fine, it should be part of the standard calendar app.
The nice thing about calendar app is it uses a system-wide database that other apps can use. So my TickTick app can show my self-hosted Synology calendar events alongside my work Outlook calendar events, and TickTick doesn’t have to do anything special. Android has a similar system but the integration is far less consistent and Google Calendar (the only calendar app approaching decent) doesn’t play nice with it.
The big differentiator is speed of input. On iOS I can drag and drop to move, and also to adjust the start and end time of events, all without clicking into every event. This is huge if you time block your day. It was insane to me that Android just couldn’t support this workflow without being brutally, painfully slow.
> Floating buttons in four corners of the screen just isn't very clear.
It’s just a toolbar with a transparent background. I don’t see how that causes confusion. It’s not like they move around or something. And this pattern is used in basically all apps. Not nearly as bad an abomination as the FAB, IMO.