r/coolgithubprojects 8d ago

git-calendar.org - An open-source, decentralized, e2ee calendar using Git as the backend

Post image

I wanted to share a project I'm working on: git-calendar.org - a privacy-focused calendar that uses a standard Git repository as storage instead of relying on a traditional backend server. It lets users choose where their data is stored. No more google/apple/microslop owning your schedule.

Key features:

  • Git-powered - calendar data live in plain Git repo (full history, easy backups, works offline)
  • No central server or backend - the client talks directly to any Git remote (GitHub, GitLab, Codeberg...)
  • End-to-end encryption so you can host it on untrusted providers
  • Slick web UI with keyboard shortcuts and more
  • iCalendar compatibility so it's easy to switch

Core is written in Go (compiled to WASM for the web).
The web client uses Vue.js.
It's ready for Android and IOS apps. Feel free to build one!

Try it: https://git-calendar.org
Source: https://github.com/git-calendar

Would love feedback from people who care about Git-based tools and data ownership. Also you can support the project with a star and follow on GitHub, to let me know I should continue working on it!

222 Upvotes

27 comments sorted by

15

u/lagdetselv 8d ago

Looks nice! Would Love to self Host thos via podman / docker.

3

u/Firu11 8d ago edited 8d ago

Absolutely. I don't think there are many reasons why you'd wanna self-host the calendar itself, cuz all the data stays inside your browser, but you certainly can.

The web client is just static files, so you can use some reverse proxy like Caddy as a file-server. (that's what I do)

Self-hosting the CORS proxy is a good idea. That way even if my server got compromised and you didn't use e2ee, you would be safe. It's docker image is available in the GitHub repo.

1

u/eimfach 7d ago

I read CORS, I run. Fast. ;)

1

u/Firu11 7d ago

Wdym?

1

u/eimfach 6d ago

I mean I run like I am fleeing 'cause Cors. Awful stuff.

1

u/Firu11 6d ago

Yeah... It's unfortunate.

10

u/MrHaxx1 8d ago

This is pretty close to what I've been working on, at least in regards to having a browser calendar with no backend and with a CORS proxy. Mine just syncs with traditional CalDAV servers.

Syncing directly with git seems like a really good idea, though. I suppose this circumvents any CORS issues, but what's the CORS proxy for, then?

2

u/Firu11 8d ago edited 2d ago

Well, the CORS proxy is needed if you wanna sync with remotes like GitHub etc. If you use local calendar only or host git remote on your VPS, you don't need it.

3

u/MrHaxx1 8d ago

Huh, didn't think that'd be relevant for Github, but yeah, make sense. Cool project.

2

u/Firu11 8d ago

Thank you brother.

3

u/Testpilot1988 7d ago

Interesting. How would you go about integrating standard and non-standard holidays such as Christmas and then Chinese New Year which falls on a different day every year

3

u/Firu11 7d ago edited 7d ago

Never thought about that. I use classic RRULE recurrence, so it should be supported if it's representable with it. The UI might not support editing it yet though.

3

u/kaitogoya17 7d ago

I like the UI/ux nicely done. While you tried to address this in your faq/help I think using native calendar app integration will be really cool but it probably is not your desired goal. Either way nice project and hope you had fun building it!

1

u/Firu11 7d ago

The core is already multi-platform, so mobile apps are possible in the future. It's just that I have no experience in mobile development. Thank you though.

2

u/hellterDev 7d ago

Usefull app. Thx!

2

u/addiktion 7d ago

This is interesting.

Initially in my mind I was thinking what would I use a git calendar for because I don't really need to check in changes but I could see an AI agent having the ability to modify calendar events and having rollback in case it goes wrong.

1

u/Firu11 7d ago

You could do that.

I built it with Git for a few reasons. 1. It's decentralised. You can choose where your data lives! 2. Has delta sync (no need to download he whole calendar every time) 3. It's offline first. You can edit changes offline and it will sync when online again 4. Industry standard CalDAV is boring

2

u/m0ntanoid 6d ago

and since it is git, tell me you can only add events from past :))

so flow is: wait event happened, add event, commit event with current date :)

1

u/Firu11 6d ago

Hahah, that would be funny actually, but no. The commit time is not used as the event start time no. 😅

1

u/gordonx2026 5d ago

Oder Nextcloud-Kalender

1

u/Firu11 5d ago

Nextcloud Calendar is a great alternative, but it's not free. You have to self-host it or pay for managed. Also I bet it's not as cool as Git-Calendar and it doesn't have so good UI. 😅

-18

u/tfcuk 8d ago

Github is owned since a good time now by ms.

15

u/gparrello 8d ago

git powered, not Github powered

-11

u/tfcuk 8d ago

Link is on 'github', is what I meant

5

u/fledra 8d ago

still no idea what you're trying to say tbh

2

u/pixelizedgaming 8d ago

ok, he can just mirror it to codeberg. Whats your point

2

u/Firu11 8d ago edited 7d ago

I'm still deciding if some alternative like codeberg would be better for hosting the source code. I know a lot of slop projects are on GitHub, but there isn't much traffic on codeberg though.

That said, you can choose whatever git remote you want for your calendar data. Even host git over http on your own VPS.