top | item 14008085

Ask HN: Is there a powerful open-source Google Calendar replacement?

219 points| kfrzcode | 9 years ago | reply

I realize calendars are not a simple tool to build well, but for such a basic standby of time management, I strive for a better, developer friendly, open source calendar system. Like what Atom did for text editors, to bring a powerful, well built basic toolset ready for modular extensibility and can run anywhere Node can.

(I use emacs, but you get my drift).

I would love to work on a project like this, if anyone is hiring or already pushing code to an open source repo I haven't found.

I have a 98% coverage of my time for the past two years and it's all in Google Calendar. I suspect there are many out there with dense calendars that would love to hack around in a friendlier environment.

Please advise.

Peace love and prosperity to the world.

101 comments

order
[+] grinich|9 years ago|reply
We have a prototype at Nylas which is pretty awesome, but haven't had the time to really finish it. (Focus is important!)

Calendar apps are deceptively hard. Very tricky UI problems alongside super complicated data transformations you need to do across a fragmented ecosystem of ICS/etc. Making something "just work" takes an incredible amount of focused time from an entire engineering team.

But here's a peek anyway if you're curious: https://www.dropbox.com/s/j1ry3qar45ozj7m/nylas-calendar.png...

PS: we are hiring ;) feel free to ping me directly

[+] isaiahg|9 years ago|reply
I used to use nylas and I loved it, but the neverending upgrade to premium emails were bonkers. I still get the emails long after I've stopped using it and asked for them to stop on. ON EVERY SINGLE ACCOUNT I USED WITH NYLAS! The same email for every account. Accounts I'm fairly sure I never gave permission to be emailed at. I loved your product but tell your marketing/sales people to calm down, it drove this customer away.
[+] AndrewUnmuted|9 years ago|reply
I would really prefer that you guys went away. Nothing you do is any good and the incessant spam I received for ever daring to try you out was completely unacceptable, as was the time it took to stop that spam after deleting my account.
[+] mbesto|9 years ago|reply
This looks like a Sunrise replacement and that's awesome. How can I get notified when it's ready?
[+] yitchelle|9 years ago|reply
Is Nylas open source? The OP was looking for an open source alternative. It is not clear from you website whether Nylas is open source or not?
[+] barryhand|9 years ago|reply
Beautiful, I'm a big fan of Nylas and feel that calendar integration is the last piece for a really nice workflow.
[+] owenwil|9 years ago|reply
I had been REALLY hoping this might happen. Goodness, even if it's rough I would love love love to use this
[+] kxyvr|9 years ago|reply
I'm actually a little curious as to what sort of workflow others are using for their calendars. Personally, I use a terminal/text based program named khal:

https://lostpackets.de/khal/

to view and edit calendar events and vdirsyncer:

https://vdirsyncer.pimutils.org/en/stable/

to sync this with my email provider, which supports CalDAV and CardDAV. I'm asking about others workflow because this simple setup allows easy access to calendars across multiple devices. Although I don't often do it because I don't have a need, vdirsyncer just dumps the CalDAV events into a folder in text format, so it's pretty easy just to write a shell script to modify, automate, or maintain calendar events. I also like it because it allows me to backup my calendars for record keeping sake.

Now, I don't claim that this setup is for everyone, but are there useful, interesting tricks that this workflow doesn't allow?

[+] MarcScott|9 years ago|reply
I use org mode for my calendar, which is great as it seamlessly integrates my ToDo with my Appointments.

At work we use Google Calendar extensively, which means other people often make appointments for me. To pull in and push items from my schedule.org, I use org-gcal - https://github.com/myuhe/org-gcal.el

[+] 1_player|9 years ago|reply
[I am sorry if this is slightly off topic but]

Oh god, talk about good timing. I just got a literal headache spending the last hour searching for a good cross-platform calendar AND todo app that would work on my Mac, and perhaps on Android (although that's bonus). And ideally I'd like to have integration with Trello, so I can schedule my work tasks into the day.

That would be the bee's knees, and improve my productivity noticeably. But alas, such magical software does not exist yet. This is probably the wrong thread as I would pay top dollar for such an app.

The problem with all todo and calendar apps is that nobody has managed to successfully combine the two. A calendar to list only events is of very limited utility if you need a separate app to remind you your todos and tasks for the day.

Yeah, I've tried Fantastical, Todoist, Informant, BusyCal, and a plethora others, but none seem to fit nicely into the workflow of somebody that needs to keep track of their personal and work life without being too strict in their methods.

So for now I'll make do with the basic Calendar app on my OSes, and pen and paper to jot down my reminders as soon as they pop to my mind.

[+] jmeistrich|9 years ago|reply
I'm actually making exactly what you're looking for: https://moo.do

It does to-do lists, calendar, and email all in one. The only caveat is it only supports Google Calendar and Gmail so far.

Let me know if this solves your problem or if there's anything I can do to make it better for you.

[+] dublin|9 years ago|reply
Now that Microsoft has finally integrated at least some of the good parts of Sunrise into Outlook (which I've historically hated, but this is enough to make me give it a look, especially on my phone), I expect they'll be doing the same with Wunderlist for ToDo integration. If, by some miracle, they also manage to integrate great contact management in with the new LinkedIn, they'd really have something... (Aside: They'd have to undo the recent brain damage to LinkedIn first - the value of LI was it's contact info, not the feeds - the last damn thing I want and need is another Facebook-like vanity stream - there are reasons I refuse to do Facebook...)
[+] dilemma|9 years ago|reply
>Oh god, talk about good timing. I just got a literal headache spending the last hour searching for a good cross-platform calendar AND todo app that would work on my Mac, and perhaps on Android (although that's bonus). And ideally I'd like to have integration with Trello, so I can schedule my work tasks into the day.

I've been looking for the same, and now I use OneNote for note taking and to do lists. You can easily make kanban boards, you can link tasks to emails or notes in OneNote with more information, and tasks show up in your calendar or tasks in Outlook.

[+] seveneightn9ne|9 years ago|reply
I ended up setting up a Nextcloud server. It has a calendar service that suits my needs, coming from Google calendar. It is open source, and the nextcloud platform is basically built to be extensible, but I don't know how developer friendly is the calendar app itself. Check it out though!
[+] mi100hael|9 years ago|reply
Agreed. Important to point out that Nextcloud (and most other calendar implementations) is actually a client and a server. The server half is just a standard CalDAV[0] server, same as Google or Apple or anyone else would host. The client is a web app with a similar feel to Google's calendar web app.

[0] https://en.wikipedia.org/wiki/CalDAV

[+] kowdermeister|9 years ago|reply
I was recently forced into being a power Google calendar user. A new job demanded me to use it, previously I added maybe 2 events / year. Now I have to schedule a whole class's daily activity.

My brief experience was a total disaster, it's one of Google's horrible products, I sadly have to live with. I rarely hit my desk with my fist but it has happened. I'd be really really happy if any alternative would exist, I don't even care about not being open source.

[+] slinger|9 years ago|reply
Could you elaborate why google calendar is horrible for you?
[+] IgorPartola|9 years ago|reply
Since we are talking about calendars, I will ask a mildly related calendar server question. Is there a solution out there that would allow me to automatically prefix events in calendars that are shared with me? For example, I see my girlfriend's calendar with an event called "Work". I don't want to think it applies to me, so I would like to see it as "Princess Peach: Work". Can I do this without hacking an existing CalDAV server to use as an intermediary?

I did try a script that takes a URL to an iCal file and adds the desired prefix, then spits out a new iCal file. Alas Google Calendar has a years old issue where it has no way to force it to pull updates to iCal files with any reasonable frequency. And of course I want the solution to work on phones as well as desktop browsers so a Chrome extension is not a solution.

Bonus points for a solution that would let me munge event names arbitrarily according to regex rules, and to combine multiple shared calendars into one.

[+] edent|9 years ago|reply
The default Google Calendar does this on Android and Web. It allows you to assign different colours to the calendars you have.

So my work is blue, my personal is green, my wife is purple.

[+] hawski|9 years ago|reply
I lately started thinking about a calendar system and a bit experimenting.

Mainly I want a continuous calendar. Just a table of weeks. My thought is to tie calendar with e-mail (what a novel idea) and todo list. I would like to enter new events just writing down with some kind of simple language and auto-completion. I feel that most calendars have too much friction comparing to paper calendar.

Todos should jump to the next day until they are done or deadline is met.

I would like to tie it with e-mail so I could pin the e-mail to specific day or to a todo item as described in previous paragraph. It would be a calendar first and e-mail second.

I wanted at first have it running as a server on a tablet that I would stick to the fridge. It would only need a thin proxy, but thanks to Let's Encrypt it would run with end to end encryption. Also running SMTP server on a tablet. But it is a bit too complicated to do at first.

[+] parfe|9 years ago|reply
Check out org-mode. Handles todos, scheduling tasks, timers, you can link directly to a file or an email (not a copy, but a link emacs follows into your mail reader, such as mu4e/gnus/wanderlust, for that specific email). It will auto generate an agenda from multiple todo files spread across your filesystem.

http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html

There are some mobile apps but I've never used them.

[+] jmeistrich|9 years ago|reply
Check out https://moo.do. It's a to-do list, outliner, calendar, and email all in one. It sounds like it would work well for what you're looking for. If not, let me know and I'll try to make it better for your use case.
[+] paulcole|9 years ago|reply
> better, developer friendly, open source calendar system

Just curious what about Google Calendar isn't developer-friendly? I've found it pretty easy to use the Apps Script Calendar service:

https://developers.google.com/apps-script/reference/calendar...

[+] kfrzcode|9 years ago|reply
1. I can't run it locally, or on my own servers to keep my data to myself. Not that this is everyone's concern but it's one I'm thinking of. API access is great, but I'd love to self-host data. In fact, that's becoming more of a priority, security is in the zeitgeist etc.

2. I'd like to create hyper-specific views or add calendar layers/groups (As a PM, I want a report, or calendar view, of all time spent on client tasks but not meetings, etc. ).

3. As a User I'd like to track habits I'm trying to manage/modify/track (ie. runs, food intake, smoking cessation, bedtimes, pages read/week).

4. As a Freelancer I want to integrate time trackers like Rescuetime and Harvest. (this I could actually do with GCal but my question isn't "what can I do with Gcal," rather an exploration of "why isn't there a great alternative and what can we do about it"

I don't want to sign up for Yet Another App Account, I have a dashboard for my life and that's it. I've been thinking about a "continuous integration/dashboard" for awhile.

The Quantified Self (https://trends.google.com/trends/explore?q=quantified%20self) movement hasn't picked up any steam, however, I still see the value in capturing data about our daily actions and then using that data.

I've learned a lot from my meticulous time tracking, and it's not perfect. Maybe this is time to explore a side project!

[+] Arathorn|9 years ago|reply
https://sogo.nu/ has been working pretty well as a CalDAV server and web UI for the last 5-6 years for me...
[+] kfrzcode|9 years ago|reply
Thank you, I haven't used SoGo in quite some time (v1) nice to see they've come along.
[+] tga|9 years ago|reply
Here are two projects to look at:

Citadel, (http://www.citadel.org) -- A lot of features, but the UI is somewhat dated. It would be interesting to see a revival.

OpenXchange, (https://www.open-xchange.com) -- Commercial project with an open source core. Much nicer UI, I'd be worried about long term support if/when the original company stops developing it.

[+] steaminghacker|9 years ago|reply
A while back i wanted to write my own calendar to support custom recurrence rules, as well as the usual ones you always get. Custom rules would include things like calculation of Easter and other holidays and events that move about like moon phases.

So the idea was to build a translator that turns something like iCal into a "program". and if you're a hacker, you can write directly in this program :-)

I chose LUA for this because it's compact and sufficient for this requirement.

The other thing i wanted is to be able to write a date and/or a time as words on the end of any event and have the calendar figure it out for. There are so many times that i want to specify, for example, a relative event.

I might extend a cloud payment for 6 months. so i type cloud XYZ expires, 1 day before 6 months from today.

and things like: Radisson Hotel, May 27th at 2pm for 3 nights.

Also then terms like "Easter" and "xmas" can be part of the word parser. And stuff just like "beer friday with Pete."

One thing i still need to do is have it set up recurrences automatically for stuff like "Dave's Birthday, next Friday". So it puts in in the calendar, and adds annual recurrence automatically. would be nice.

I'm thinking of open sourcing what i have.

[+] joshuaheard|9 years ago|reply
I've previously written a calendar app for attorneys that was an add-on to Outlook and I recently had an idea for a new type of calendar interface. Time is continuous, so instead of a square grid, a circle would better represent time measurement. Think of the wheel in Wheel of Fortune. There is a circle with squares around the edge. Initially, there are 12 squares with each square representing one month. Inside each square is the name of the month, with the year labelled in the middle of the circle.

In a touch interface, you could vertically swipe the circle and it would spin so you could select your month. If you spun it one complete circle, you would iterate the year, forward or backwards. Double-tap the month, or two finger swipe outwards, and the circle becomes the days of the month, with the day of the week and the number date inside each square, with the name of the month in the middle of the circle. Vertically swipe the circle one complete turn, and you go to the next month. Expand the circle again and you have hours of the day. Two-finger pinch to back out to a higher level.

You could put a symbol or different color to denote existence of an event. If the event is double tapped, the key information appears in the center of the circle, or you could two-finger swipe the event so it took up the whole screen.

In a phone size interface, you would only have to show the center of the circle, and an arc portion of the circle, say 100 degrees on the right side of the circle, like between 1 o'clock and 5 o'clock.

I see that there are some round calendar apps out there, but I don't think anyone has this sort of interactivity. However, I really haven't looked at this idea too closely.

[+] wuschel|9 years ago|reply
Our R&D institute used HORDE [1] back then. However, I was always on the lookout for something that resembles Google Calendar in functionality and usability (and possibly even looks). The same can be said for GMail and its Google Task integration.

[1] https://www.horde.org/apps/groupware

[+] mandeepj|9 years ago|reply
Have you looked into this? https://fullcalendar.io/
[+] swrobel|9 years ago|reply
"Disclaimer: FullCalendar is great for displaying events, but it isn't a complete solution for event content-management. Beyond dragging an event to a different time/day, you cannot change an event's name or other associated data. It is up to you to add this functionality through FullCalendar's event hooks."
[+] tixocloud|9 years ago|reply
Not on Node but I use Radicale (http://radicale.org/) which runs on Python. Works well for me and have it synced across multiple Macs and iPhones.
[+] shanepo|9 years ago|reply
I know it's not necessarily something you can build on but we use teamup (teamup.com). Set up properly for our needs, it's pretty awesome. It integrates with other tools like slack, etc. Hope that helps.