Live data from Hacker News

Owning my own data, part 1: Integrating a self-hosted calendar solution

emilygorcenski.com

101–110 of 157 posts

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#101
post #97

Earlier quoted context omitted.

I thought the solution to datetime was almost always to use TAI plus a library to convert for display in the UI. (Or UTC and accept that leap seconds might cause bugs.)

Calendar apps expose all of the weird edge cases in dates and times. For a specific instance of a specific event that never needs to move, TAI will work. However, suppose that you schedule a meeting for 28 March at 13:00. You then move that meeting forward a week, crossing a DST switch. If you simply add 604800 seconds to the TAI, that meeting will be at 14:00, which is surprising. OK, easy enough to solve; convert t…

I'll preface this by stating that I fully realize that localized datetime is absolutely byzantine and fraught with difficulties. That's the rationale for leaving it to an external library as close to 100% of the time as possible.

I also realize that there might well be complexities involved in calendar software that I'm unaware of. Hence my comment - I'm genuinely interested to learn. That said, I think your examples are all fairly clear examples of errors in reasoning by the programmer. Specifically they stem from conceptual mistakes regarding the relation of different logic domains (by which I'm referring to storage, display, scheduling, etc).

You never move events around in TAI (the unambiguous storage format) just as you don't go manually flipping bits in an SQLite database. You always work in a localized time because that's what the user is reasoning in. And you use the datetime library to implement as much of those manipulations as possible.

> US vs Germany, conflicting DST rules.

Go back to the era before smartphones and PDAs and the internet. You're in Germany on a business trip. You call your secretary to reschedule next weeks meeting back home. You don't use German time when doing that, you use US time.

Events have a location which has a timezone. Scheduling happens in that timezone. Blindly using the current local timezone of the device is a reasoning error. Storage, scheduling, and presentation are distinct logic domains.

> you have half the attendees showing up at the wrong time.

There is a single unique TAI time for a given event (after all that's the entire point of using UTC or TAI or what have you). All attendees will see an equivalent local time barring a bug in the datetime library.

See my earlier point regarding which timezone to use for the computation.

> TAI introduces the leap second bug for calendars.

Only if you make the mistake of attempting to manually manipulate your data storage format. The point of TAI as opposed to UTC in this specific case is to offload the complexity of handling leap seconds onto the datetime library so that you don't need to worry about it.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#102

I know this is not what people want to hear, but your data will never be safer than it is in the cloud. No setup you can dream up at home with in a reasonable budget will ever come close to the resilience and redundancy you have in the cloud. Ownership is not about storing everything at home (or well, it's part of it), but having control over your data, which you can easily have while at the same time using the conve…

I can't help but feel on-device storage is still safer than cloud storage. Sure, can use cryptomator or similar to encrypt on cloud, but that's same with local. Only with cloud you're opening up a much bigger attack vector space than having it on-device/"at home". Cloud definitely gives better resiliency and redundancy, but data replication is also something to be cautious with if privacy is a concern.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#103
post #92
post #88

I have the weirdest calendar problem: if someone sends an invite to my Fastmail account, it gets swallowed up by Gmail. It never shows up in Fastmail, and in the calendar invite it appears as if it was sent to my Gmail address even though it wasn’t. It’s the strangest thing and I don’t know how to stop it or even what’s causing it (Fastmail support also had no idea).

Does this always happen or only sometimes? In Google calendar, if the event is modified through the API, there is an option to suppress change notifications, and this can prevent non-google calendars from getting invites. Also did you create a Google account using your fastmail address? I haven't tested it, but it's possible this causes a hairpin route where Google supresses the outbound email since it thinks it can…

It's very reliable, but only on ONE of my fastmail addresses. My Google account predates the fastmail one by a long time.

I had a theory that maybe at some point I set up iCloud with both of these accounts (fastmail + gmail) and it's somehow intercepting these and rewriting them. It's not a super strong theory. Another thought is maybe it's a DNS setting somewhere?

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#104

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 t…

I 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…

WebDAV 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.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#105
post #15
post #4

> I’d imagine you can set this up and run it easily from a NAS at home if you want, but I opt to keep my data safely protected in Switzerland, so I subscribe to about $100 monthly of server time to run my websites and all my integrations This part confused me a bit. Wouldn't running the NAS at home be more safe and secure? Or are they talking about backup safety?

I'm not quite sure what their point is there. Everything they mention can also be accomplished on a home NAS or something with plenty of security. I don't think anything is really justified here besides simplicity? Which..this isn't that much simpler. Which..$100/month is pretty expensive for what's basically an N100 with support.

Yeah, I came here to comment on those $100/month. Is that server gold-plated? It shouldn't cost more than $5.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#106

I know this is not what people want to hear, but your data will never be safer than it is in the cloud. No setup you can dream up at home with in a reasonable budget will ever come close to the resilience and redundancy you have in the cloud. Ownership is not about storing everything at home (or well, it's part of it), but having control over your data, which you can easily have while at the same time using the conve…

> your data will never be safer than it is in the cloud

Unless you use Google Timelines. Then you’re out of luck.

https://mjtsai.com/blog/2025/03/24/google-maps-timeline-data...

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#107

If you are on NixOS for your home server, take a look at my project that does most of the work for you. Bundles router, DDNS, firewall, vpn, ad blocking, and all the apps into a single integrated service if your machine has two ethernet ports. Even if you don't use it directly, the services are broken out into modules which can be referenced for your own setup: https://homefree.host

> most of the work for you

To be fair, I think the author's main work was spent on tailoring those calendar import/export scripts. :)

As for your setup, what do you use for calendar & contacts hosting? I couldn't find any details about that on your website.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#109

I know this is not what people want to hear, but your data will never be safer than it is in the cloud. No setup you can dream up at home with in a reasonable budget will ever come close to the resilience and redundancy you have in the cloud. Ownership is not about storing everything at home (or well, it's part of it), but having control over your data, which you can easily have while at the same time using the conve…

> Ownership is not about storing everything at home (or well, it's part of it), but having control over your data, which you can easily have while at the same time using the convenience that the cloud offers.

Ownership is not just about r/w control of your data but also over what software gets access to it and what that software does. Not just about privacy, but knowing the process and being able to alter it to your desires. There is no way to control that unless you run your own servers.

Re: Owning my own data, part 1: Integrating a self-hosted calendar solution

#110
post #30

Nice!. I would like to do something like this but for Photos. I want to get off Dropbox and Google for a while. At the top of my list are: 1. Create a memories like feature from my photos to send on my cell phone, grouping by different features I like: anniversaries, similar activities, A `Me an X(X is Spouse, family, friends etc)`, Over the years(how x has evolved over the years). 2. Be able to save photos taken fro…

I just did this with Immich. I have 2TB of photos in it and I backup my phone automatically. Using cloudflare tunnels to access remotely.

same. super convenient to be able to go to photos.[domain].com for my photos. the immich android app is great too.

cloudflare tunnels is a game changer, I can't believe it's free.

Post reply on HN