Help me understand contacts, calendar and caldav/cardav

adONis@lemmy.world to Selfhosted@lemmy.world – 25 points –

I've been using Google for the last decade and am owly moving away from it.

I'm on Fastmail (FM) right now. While I love their mailservice, the calendar and contacts integration is okey-ish, compared to Google.

Right now, my contacts are scattered across these services. New contacts that I add on my Android phone, are obviously not available on FM, and vice versa.

Therefore I'd like to setup a self hosted solution to manage contacts/calendars on a centralized place.

But right now, I can't seem to wrap my head around this topic. I often see caldav/cardav mentioned, but don't know how exactly they are related.

FYI: I'm a software developer, and I already host a bunch of services behind a reverse proxy.

Example scenarios:

  • Install a full-featured calendar app (mobile, desktop, web) -> connect to my service
  • Someone sends me a calendar invite to FM -> sync to my service
  • I add a new contact on my Android phone -> sync to my service (make it visible in FM)
  • I add a new contact in FM -> sync to my service
  • I send a new calendar invite via FM -> sync to my service
  • Bonus I send a new calendar invite via App, and it get's sent via FM to the recepients.

So my question is what self-hosted solutions (besides Nextclowd) are out there that would allow me to accomplish that?

13

Fastmail looks like they have CalDAV and CardDAV support (https://www.fastmail.help/hc/en-us/articles/1500000278342-Server-names-and-ports). If you actually want to use their contacts and calendar, why do you want to host another yourself? Two-way sync sounds like a pain.

You just need to connect your devices to it. Unfortunately Google thinks PIM sync is not worthwhile to have on Android unless you use their service, so you'll need some extra apps. I used DAVx5 (it's free if you get it from F-Droid), Tasks.org and OneCalendar in the past for this.

This is what I do. DAVx5 works well as long as you're ok withiut realtime sync (you can pick how fast you want it). I would love to see Fastmail build the support I to their own app but that's not where we're at.

Thx for the info, didn't know DAVx5 was free on f-droid.

why do you want to host another

That's the thing, that I don't really understand. I thought I could host a centralized caldav/cardav server, and link all the other services that have their own "implementation" of contacts/calendars. This way, if I move away from Fastmail, I could just link another mail provider, that offers their calendars/contacts.

Sorry if my questions sound dumb or newbish.

Aaah... I think I got it now.

Caldav/cardav are the standard protocols used in this case. So every sane provider uses them. Davx5 creates a local account and interacts with the android apps (like google calendar) by pulling/pushing new events from and to the server respectively.

So, I can keep using google calendar, with my FM account instead of google 👍 noice!

My solution to this was a radicale docker container, with DAVx5 on f-droid. Very lightweight, just works without much configuration needed. I don't use my phone for email much, so I just use thunderbird for my email client

Yeah, I've heard about radicale. But the "merging" and sync still happens on the client side of things (Android). I was hoping for some kind of dockerized backend service that can bring together all the calendars. And the only thing I'd have to do is go into the backend, connect FM and google (or any other calendar) and link that (dockerized) service account on my phone.

Ah, I see. Looks like some other people in this thread gave you some good info, I'll have to keep this in mind if I ever need to change my approach. Happy to hear you got a good answer!

but yeah, setting up davx5 with my fastmail account gives me exactly what I need. I can use the google calendar app to have my FM calendar fully integrated.

Radicale is a single executable, do you really need docker to set it up?

Basically takes the same time to set it up and run on bare metal...

Sometimes feels like docker is getting out of hand.

If I already have a docker environment set up, why not use the container? I use containers for most of my stuff, if I can. It makes many aspects of system management so much easier.

Absolutely! If that feels easier and more consistent go ahead and use the container.

But its really one single executable with zero dependencies. Manual setup is really as fast as podman pull & up -d.

Yeah that's true. Different styles of deployment, in the end all that matters is that your application is up and running