edav and rdav

Ever since I found out about caldav and I’m confused by the landscape of calendar providers.

It lets multiple users in different locations share, search and synchronize calendar data.

Wikipedia (https://en.wikipedia.org/wiki/CalDAV)

If a standard exists, why is it a different dance with every calendar app trying to see the content of the calendar from a different client?

Exploring this more I find DAVx5, the Android app that just syncs all my dav accounts and lets me just use a single calendar for all of them.

It works great!

On linux (I use nixos as a daily driver), I just use gnome-online-accounts, even though I don’t have gnome enabled *wink*, I might write a small post about that, I don’t remember how I figured it out but my notes sure do!

I also use caldav to manage my tasks, that worked better before when I had a mac, since adding caldav accounts also syncs tasks to the reminders app, those were simple times.

Now, for my Andoid I use an app called tasks that also supports DAVx5 and things are as simple as they were before. For my poor little linux guy, no app I found worked well, not even close!

I told myself “maybe linux desktop hasn’t had its year yet, but I bet the nerds on the emacs community has this figured out”.

It was not the case, the nerds of emacs community don’t have it figured out, if they did, I need to look over someone’s shoulder while they surf the web, I must be doing it wrong.

With the lack of a solution that worked like I imagine such an app should work for a good support of a caldav backend (all I care about rn is nextcloud since that will be where I host my calendar in the future after radicale served me well enough so far but came to a point where I can’t overlook its weaknesses anymore).

After this long journey (lasted over 2 years) I figured that I would be much happier if I added two pieces to the collection of tools that make up my calendaring life.

edav would be an emacs-lisp package that would act as a wrapper for rdav, a rust cli app that can query nextcloud for calendars!

What I have so far is simple, a single rust file that lists and parses all calendars on my nextcloud account, using crates like libdav, tokio, and ical the code is barely a 100 lines so far (with more code to be added but also lots of cleanup and refactor for what is essentialy a proof of concept at the moment).

While rust was chosen because I’m learning it, emacs-lisp was chosen out of necessity, scheme/lisp languages humble me.

I opened tens of tabs per session and spent few sessions building a proof of concept that is not done yet, systems crafter had pretty great guides but it felt like the whole thing lacks enough explainers. Perhaps wizards who write in scheme learn by reading code and technical guides and I have grown too soft relying on blog posts and stackoverflow discussions.

I’m happy with ~50 lines of emacs-lisp proof of concept of a proof of concept that I’m determining to slowly build up, my next goal is to arrive at an end to end proof of concept that is usable but minimal and publish that. I’m hopeful to find a community that builds that with me (I would also take a “you have wasted your time so far, here is an open source solution that works” if you have any).