From my point of view the current implementation of calendar functionality is only useful for use cases, where all time management is prepared inside of Discourse and/or with some proprietary solutions like the Gmail calendar. This makes it somehow “isolated” as there is no integration with other open systems.
In many cases people use external calendar solutions which are independent from a specific provider (e.g. Radicale caldav/carddav server in python). They simply want to display the calendar inside of the forum (“read only”) and sync with external changes automatically.
If discourse could act as a caldav client (like thunderbird on the desktop and DAVx⁵ on android), this would be a big step. At first it could be “read only”, second step would be the implementation of write permissions to external caldav calendars. This should be linked to the user profile which is a different approach as the current calendar plugin.
Caldav is more practical indeed for a community and is also a lot of work as as you mention it, it needs to act as a server for a 2 way sync.
On the other hand a Webcal feed is just a one way collection and broadcast of data which would be way easier and faster to implement.
I understand the need for caldav but it may delay the implementation of the more quickly feasible feature that webcal is.
I dont think so. We dont need CalDav calendar server functionality in Discourse. The Radicale Server I mentioned earlier is a small Python based Caldav/CardDav server which already solves all server-side requirements, for both CalDAV and CardDAV. The only thing missing on the Discourse side is a client implementation and a UI to display and edit the content. @angus Events plugin does not fill this gap yet.
What would also be great is the opportunity to mix the discourse official plugin events with the imported events in only 1 calendar with the ability to subscribe to it with ical because now we have 2 separate calendars at the top of the threads and no possibility to export discourse events.(maybe with the data explorer plugin it is possible)