6 ms·
I know I will probably get pushback over this, but CalDAV sucks. People say that it's great and that it's easy; yet if that were true there would be way more s
by ravenstine 2y ago
I know I will probably get pushback over this, but CalDAV sucks. People say that it's great and that it's easy; yet if that were true there would be way more self-hosted CalDAV solutions out there and they would be far more ergonomic than what's available. I was not impressed with Radicale. Because there's really only one calendar file I wanted to serve to myself, I tried implementing my own CalDAV server just for that purpose and pretty much gave up because of how unintuitive and complicated it was merely to make a single file available. I can see why it would be needed if sharing a calendar with other people with calendar apps that support CalDAV, but I think it's kind of a waste of time if hosting a calendar for one's self.
Instead, initially went with the approach of hosting my dynamically updating iCal file in an S3 bucket and using ICSx5 on Android to sync with it. No CalDAV needed – just HTTPS.
However, FOSS calendars for Android still suck, and for some reason I couldn't get ICSx5 to work within GrapheneOS, so I now use almost the same approach but with Proton Calendar which happens to support calendars from direct links to iCal files. It's not perfect, but it suits my needs enough.
I think the author's approach for using iCalendar format is a good one, though what I've discovered is the amount of support for various iCalendar features varies drastically between calendar software. Rather than dealing with that headache, I somewhat gave up and decided to shove most metadata into the description field rather than use the respective properties.
EDIT: My use case is software I wrote to grab data from various sites (Eventbrite, Meetup, pub trivia companies, public event calendars, etc.), filter for only social events I would be interested in, and combine them into a single calendar I can view in my normal calendar software.
- noirscape 2y agoI think the core issue with CalDAV (and by extension, the protocol it's build on top of, WebDAV) is one somewhat endemic with most W3 approved standards: it's way too overengineered to do too many things at the same time rather than a lean format. The result is a protocol that's essentially become a furball of different ideas mashed together, which inevitably leads to the situation where a lot of services just... don't try to be full spec compliant since it's out of scope for what they actually want to do. I don't think I've ever seen a W3 data format spec that didn't end up this way, it just always seems to happen. (It doesn't seem to happen with their lower level protocol specifications.)
- tannhaeuser 2y agoWebDAV is what it is because it's designed (largely by Julian Reschke who also took over the HTTP spec from TBL back then I believe) to be addable conflict-free and routable without complex payload inspection to existing HTTP services/practices. Its use of XML can be regarded over-engineered, but it follows what was available and considered adequate at a time that had much much more consideration for interoperability and multi-party buy-in than is even conceivable today. I wouldn't dismiss it so quickly, especially considering WebDAV is an IETF RFC not W3C spec to begin with.
- mercutio2 2y agoWebDAV is pretty darn simple. It just builds on actual HTTP, i.e. you have to actually think about the transport layer in a way that’s out of fashion now. And some people don’t like XML. It’s certainly true that CalDAV specifically is complicated, but… multi user calendaring is intrinsically very complicated. Other systems are not less complicated, they just tend to be more vendor specific.
- kridsdale1 2y agoI worked on the CalDAV client that’s in every Apple product. I agree, the protocol sucks. But we also had a ton of trouble handling Exchange and Google’s non-compliant CalDAV server, which all the users blamed us for. Now that I work at Google I can see that gCal apps use an entirely different protocol.
- bflesch 2y agoWould be nice if you use your experience and financial stability of a Google job in order to build a better open-source protocol. Just like when ZX2C4 decided he's fed up with OpenVPN and went to create Wireguard this might be your moment to shine. IMO the quality of software is only pushed forward by motivated individuals with the right skillset.
- kridsdale1 2y agoIt was 14 years ago, I’ve forgotten everything by now. To be honest if I were to do that today, I’d vibe-code it by writing a strong set of tests against the protocol rfc, then a client against the tests. The client would be low level and have higher level interfaces in various languages.
- philsnow 2y agobflesch might be suggesting that you (or some other motivated + heroic person) write a new spec for calendar collaboration, like what jmap.io is trying to do for mail. I know that calendars and datetime management suck, hard. I hazard a guess that several people have already started trying to replace caldav (because of the suckage of caldav) and have quietly given up (because of the suckage of datetimes and timezones).
- kridsdale3 2y agoIndeed they do. The hardest bugfix I ever had to do (which I go back to whenever interviews ask that question) was a timezone bug that was going to ruin the iOS 7 on-stage reveal. It only reproduced in customer builds and customer hardware, which we could not debug or get root on. Anyway we traced it to a confluence of rare conditions in a date-math C file that had not been modified since 1987, and was in a completely different style from everything else in the OS. The edge-iest of edge cases. It was hard because of the debugging blindness, not so much date-math itself. We had to do hardware-level things.
- yonatan8070 2y agoI use Nextcloud's CalDAV and CardDAV with DAVx5 and it works pretty much perfectly
- Jnr 2y agoI also use Nextcloud as the backend and iOS Calendar app as frontend on mobile and Gnome Calendar as frontend on PC. It mostly works great, except for 3rd party Office365 calendars imported into Nextcloud. It has issues with some events on some clients displaying correct time when event invitees are from different time zone.
- jp191919 2y agoI've been using Nextcloud as well for about 5 years now, and using Etar on my android. It's been great.
- EbNar 2y agoNextcloud calendar is a bit annoying in my case, as email reminders often come late, sometimes 10 minutes or more. I guess it's because they rely on the cron process.
- NoTeslaThrow 2y ago> Instead, initially went with the approach of hosting my dynamically updating iCal file in an S3 bucket and using ICSx5 on Android to sync with it. No CalDAV needed – just HTTPS. Well you also can't integrate this into most calendars. I don't even know what the hell an iCal file is. I haven't even heard "iCal" in what feels like decades. > I know I will probably get pushback over this, but CalDAV sucks. All the alternatives are worse.
- ravenstine 2y agoShort for iCalendar. (.ics files) https://en.wikipedia.org/wiki/ICalendar https://en.wikipedia.org/wiki/ICalendar
- Suppafly 2y ago[flagged]
- NoTeslaThrow 2y ago> I'm not even sure you're qualified to comment then. I'm qualified to point out that this is a hugely dickish way to communicate
- woleium 2y agoCome on folks, be nice, we are all here to learn.
- mbreese 2y agoThe book Dreaming in Code [1] goes into great detail about how CalDAV (and WebDAV) came about through the work of the group who built the Chandler calendar program (or tried to). It’s been a while since I read it (at least 15 years), but I think it partially discusses some of the ways a protocol like this can get lost in committees during the design process. The fact that this project started around 2001 should also be informative about how long calendaring has been a problem. So, if you’d like to know about why it sucks, I’d recommend it. It’s also a good story about the conflict between startups and open source, building products, and software development in general. [1] http://www.dreamingincode.com/ http://www.dreamingincode.com/ ; https://en.m.wikipedia.org/wiki/Dreaming_in_Code https://en.m.wikipedia.org/wiki/Dreaming_in_Code
- aklemm 2y agoVery good book. I read it way back when as well.
- edg5000 2y agoMy CalDAV provider is ZOHO. To sync with Android I use DAVX5 which runs a background sync service (open source and non-root). I had a lot of issues getting it working, could be because of different CalDAV implementations. DAVX5 to ZOHO calendar sync takes forever. Evolution on Ubuntu has pretty good CalDAV support, but it would refresh the entire calendar each time upon switchin between the mail view and calendar view. Refreshing that ZOHO calendar takes forever and ZOHO has pretty frugal rate limits, so it ends up soft-banning me. Latest Thunderbird has a CaldDAV incompatibility where it expects a different HTTP success code. ZOHO gives a 200, but Thunderbird expects something else. (PS Thunderbird CalDAV code is written in JS). PS This only happens on the second calendar. Whenever you add a second one, it starts failing. So it is quite a pain, at least with ZOHO.
- mxuribe 2y agoI also use zoho (for mail, calendar, contacts) for my family and I...and yeah the first time i set it up with DavX5, it was odd to say the least...though not sure if it was zoho's fault, or maybe both some possible glitch with zoho and DavX5, that didn't quite jive with my brain - at first. Now, i see no issues with Davx5 and zoho cal and contacts...at least it sync really well on my android phone. I have not tried Evolution for years (and certainly not with zoho yet), since i tend to default to thunderbird...But am about to set up my partner on one of the Gnome-based linux distros once their Windows 10 dies later this year...and considering how they like to use their computer and their workflow, gnome seems most appropriate for them, so have been considering suggesting for them to us Evolution as email client...so will be interesting to see how zoho works there. (Glad to hear it works for you!) As i noted, i like to use thunderbird, and as far as mail and calendar, actually i guess i have been lucky, since zoho seems to be working great for me - and for a couple of years now! However, contacts synching has never worked right - like, never at all. Sure i can export contacts from zoho and import them into thunderbird...so the issue is not the basics of contacts functionality within thunderbird per se...but the syncing between t'bird and zoho is certainly an issue, and have not had a chance to dive deeply enough to see if the issue is a t'bird issue or zoho...although like calendaring on my android phone, contact synching is not an issue with zoho from my phone (again via Davx5)...so, i'm confused. But, agreed with your points: i'm happ[y zoho customer, but they're not perfect...then again, at their low costs, i kinda can't complain too much. ;-)