I am curious about how to create a calendar that is not owned by an individual user. Maybe create a calendar-user and share the calendar-user's calendar?
We do this at $dayjob with Cyrus. It's not in the documentation but you can see in this GitHub issue comment https://github.com/cyrusimap/cyrus-imapd/issues/2373#issuecomment-415738943 what you need to do from an interactive IMAP client. Copying here for posterity:
You must use an admin account to login to the server and then issue commands like these:
Just use . as separator instead of / if using unixhierarchysep:00000 CREATE #calendars (TYPE CALENDAR) 0001 CREATE #addressbooks (TYPE ADDRESSBOOK) 0002 CREATE #calendars/Shared (TYPE CALENDAR) 0003 CREATE #addressbooks/Shared (TYPE ADDRESSBOOK)
Then you have to grant users permissions individually to see the
calendars. I have a Perl script that wraps around
Cyrus::IMAP::Admin to do this from an Active Directory group.
Shared calendars are missing a few features that personal calendars have: they are not discoverable (that's what the GitHub issue is about); events on them can't have attendees; also I've never had reminders for them work.