In our test with OwnCloud 9.0.2, the contact birthday calendar is marked as read-only on the Android device, and one can’t edit the events in the Android calendar GUI as expected.
How can I mark the calendar as readonly? In the list of collections below none of the calendars is marked as such.
You can’t. The information whether a collection is read-only or not is taken from the DAV:current-user-privilege-set property. So I guess it’s an OwnCloud problem. (500 Internal Server Error is a strange choice for the error code, too. I think 403 would be more appropriate when writing is not allowed.)
For a better diagnosis, we’d need verbose logs of the CalDAV collection refresh process (refresh the collection list while logging is on).
By the way, I’d try the latest OwnCloud version before anything else. OwnCloud 8 is not even the latest major version.