Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Modern TUI calendar and task manager with customizable interface (github.com/anufrievroman)
211 points by gballan on June 1, 2022 | hide | past | favorite | 47 comments


Having more than one calender app is very problematic to me. My life maps only to one real calendar. And since my employer is dictating Outlook for my work life, I am stuck with it for the rest also. I would love to use other solutions though (have looked into calcurse and remind so far) but the hassle of importing/exporting/syncing with other calendar implementations is not worth the effort and has never really worked for me.


The greatest gift Palm's WebOS gave us was the unified calendar (and the greatest curse was those ads with the lady on the rock). I agree that having too many calendars is problematic, but I think a handful of calendars, shown together, and shared as necessary, is the answer. I also am troubled by putting personal stuff on a work calendar, because I think that's a line that should be rarely, if ever, crossed. If you were unsatisfied with your employer and interviewing, would you put interviews on your work calendar?

Another commenter mentioned it, and I agree, there is something to running a calendar server of one's own, if one is capable of doing it. I've been trying to scratch this itch for years to little success, but feel like it gets closer all the time. Things like NextCloud make it even easier still, but lack the way I want to deal with groupware (service accounts). I'm hopeful that Apple Family Sharing can solve some of this for me and my partner as we both use iCloud calendars today, but haven't set it up yet.

Over all, I agree, and wish I knew the answer, but I don't.


Android does have a unified calendar that every app push into.

It has two problems (that are both dealbreakers to me): it's not easy to make it push the complete schedule into any other calendar (if it's possible at all, I never managed to), and the apps are often not reliable (probably because they don't want to allow a centralized calendar, the MS ones are serious offenders here).


I agree with your overall sentiments in this matter. I am planning to setup a NextCloud server since I have a synology NAS that is under utilized. Partnering that with an RPi running CF Argo Tunnels would securely get it remotely accessible. SO..... I am just lazy.

EDIT: lazy mostly because of the hassle of importing data from my work Google Calendar, and my Apple personal/family calendars.


I feel you, but to me it was worth the effort and now I have a setup that works.

I run a calendar server[0] that is my main calendar repository. And I use vdirsyncer[1] to sync to my laptop to use khal[3]. On the Android side I sync with davx5[4].

This allows me to subscribe to webcal calendars, which outlook365 offers, and syncs them to my two main devices.

Not perfect because that means I can't edit my outlook calendar from within this system ( and a reminder why open standards and interoperability are important ), but it means that my private calendars and addressbooks are self hosted.

You are right though, that takes effort. And I want to snark at microsoft for not supporting caldav, but then I am waiting for gnome-calendar to support it as well. It doesn't seme to and that feels a bit strange to me.

[0] https://radicale.org/ [1] https://github.com/pimutils/vdirsyncer [2] https://github.com/pimutils/khal [3] https://github.com/pimutils/khal [4] https://www.davx5.com/


> but then I am waiting for gnome-calendar to support it as well. It doesn't seme to and that feels a bit strange to me.

So I looked this up now (have not tried it myself, though).

So looks like gnome-calendar should support CalDAV calendars since some time now?

https://gitlab.gnome.org/GNOME/gnome-calendar/-/merge_reques...

However, according to this issue calendars work once added but the only GUI-way to add them right now still seems to be Evolution, after which they will show up in gnome-calendar as well (also some workarounds here):

https://gitlab.gnome.org/GNOME/gnome-contacts/-/issues/70

There's a PR for proper support here but maintainers seem MIA:

https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/merge...


This is my setup, but additiinal I use davmail to get exchange support. Only problem is that right now importing events into outlook automatically sends mails to all participants.

Had some FUBAR situations where vdirsyncer tried to fix "something" (which is necessary from time to time since davmail does only rudimentary checks of events) and got im a situation where I send confirmations for 5 year old events to a few dozend people


I haven't tried this[0], just found it through a quick search but it looks like it should be possible to get a CalDAV interface to Outlook.

Both calcurse and remind support CalDAV sync (experimental in the case of calcurse). calcure does not seem to support it; just opened an issue for it.

[0]: https://caldavsynchronizer.org/

EDIT: Several mentions of Outlook on software listed under https://devguide.calconnect.org/CalDAV/introduction/, maybe there is something that works for you


Exchange has an API that could be used for syncronising. I always wanted to build this into vdirsyncer [1] (so that I can use khal with my work Office 365 account) but haven't found the time.

https://github.com/pimutils/vdirsyncer.


I use Davmail to talk to O365 and present standard interfaces like imap/caldav/smtp/etc and then use vdirsyncer to pull down my work calender to use with khal. It works pretty good for me, especially now that Davmail does MFA internally so no account changes are needed in O365


Interesting. Does DavMail support creating new calendar events or modifying existing ones and syncing them back to Office 365?


interesting, thanks for the information, I'll give that a go.


If you use iOS/macOS, FantastiCAL brings my SSO Outlook and my personal Google calendar together very neatly. The only thing that bugs me about it is setting up meetings at work, I still need to route through Outlook directly - but all other integrations work well.

Since I'm an IC and never ever schedule meetings unless I really must, this hasn't been much of a pain for me.


It brings joy to my cold fingers to know that TUI's are still being developed.


Brings joy to my semi-warm fingers too. I'm developing something that will interop with some spreadsheet software for basic CSV editing, and I'm thrilled that there's a host of TUI tabular editors for that.



This looks very interesting. As the original author of khal (another terminal calendar) [1] I love some more competition in this space.

[1] https://github.com/pimutils/khal


I just set up khal recently with vdirsyncer to read my NextCloud calendar on the CLI. It took all of ten minutes, very easy to set up, configure to my liking, and use. Thank you very much!


I just set up khal recently with vdirsyncer too! But to read my Fastmail Calendar. I was a little surprised that the default khal config was not at all to my liking. Here's what I ended up with:

     [calendars]
       [[main]]
         path = ~/caldav/xxx/

       [default]
         highlight_event_days = true

       [highlight_days]
         color = "dark green"
         multiple = "dark red"

       [view]
         agenda_event_format={calendar-color}{cancelled}{start-end-time-style} {title}{repeat-symbol}{alarm-symbol}{description-separator}{reset}

       [locale]
       timeformat=%H:%M
I'd like a bit more colour diversity in the calendar, like different colours for birthdays. And maybe emoji markers (like for brithdays) in the view list.


Yes, I also modified timeformat and highlight_event_days (and highlight_days). In fact, I did quite a bit of other configurations as well. But the point I was making is that the system is usable after just a few minutes. If VIM is precedent, then we'll be configuring the poor thing for decades!


I love to see such a great looking piece and I really want to use it. But then I think about portability, mobility and unify usage across environments and come to the conclusion that I don't want to have two or three tools for the same data.


Not related to this particular tool: It strikes me as extremely odd that nowadays „modern“ has become a desirable software feature. For me, „modern“ is the opposite of „durable“, which seems to be a rather bad thing.


Here, by "modern" I mean that it uses modern terminal features like unicode icons, and it is scalable for mobile phone screen.


Hey, developer here! Thank you for posting about my app! To answer a few questions: - At the moment, you can't sync it with other calendars. If anyone has expertise in .ics format and python, please take a look at the issues on github, I've got some questions. - "Modern" in the app description means that it uses unicode icons and scales to phone screens.


I love how long event titles can stretch across days. This is how I used to use calendars back in the days they were on paper.

In fact my ideal calendar software would dynamically grow/shrink dates to fit instead of making them all a uniform grid.


Yeah srsly, can this be SO hard to add to the typical calendaring app ?


I love TUIs and I'm looking for a TUI calendar. But there's one feature they all lack: sending availability to someone. Using grep or rg would be great. That's where Calendly and Vimcal shine.


> Birthdays of your abook contacts

For stuff like this, why not make it scriptable?

if this / then that style. Let users define attributes such as "birthday" on day objects, then let them define what to do with it.


There's any TUI calendar with support for Google Calendar?


I use khal with vdirsyncer.


I didn't see mention of textual, another python tui library. But it's also great for good tui programs


This is an application (a calendar), not a TUI library. It uses straight up curses for the console-poking.


Thanks for fixing what I did not say.


I didn't see any mention of the SAAB 900 Turbo, another Swedish car.


Can it integrate with Gmail and/or $ms Outlook?


Here is a guide to set up vdirsyncer with Google Calendar:

https://vdirsyncer.pimutils.org/en/stable/config.html#google

The Khal CLI calendar reads from vdirsyncer. I just recently set this up, took 10 minutes from "I've never heard of it" to having it set up and running. Highly recommended. It supports setting the first day of the week, using ISO-8601 date format, and even my Right-to-Left Hebrew text entries. Seems very well developed.


Doesn't look like it; the issue discussion about importing .ics files is blocked on finding a library that doesn't suck.


I would love to use a terminal based calendar so much, but with my whole organisation using MS Office for scheduling meetings I guess I'm stuck :(


> I would love to use a terminal based calendar so much

Why? I practically live in my terminal, yet see no need to have my calendar there.


Mostly for better responsiveness and configurability, and focus on keyboard rather than mouse interaction.


"Modern." What about this was impossible in 1996? 1986? 1976?


TUI frameworks are a lot nicer and terminal emulators are a lot more featureful. If you could write something like this that far back it'd be like pulling teeth compared to now.


It would not be like pulling teeth.

This TUI only use Python's curses module. The first curses support was added in 1994, and the current incarnation added in 2000. I spot checked a few curses calls and they were available in the 2000 version.

Now, there's all sort of things that make Python programming easier now than 22 years ago (f-strings, datetime, pathlib, subprocess, enum, and @decorators).

Plus, the Unicode/emoji support didn't really exist (so other characters would need to be used).

And probably it wouldn't support the Persian calendar, which it does using the "jdatetime" calender.

But other than the emoji substitution, none of that is related to modern TUI frameworks or terminal emulators.


Modern here means that it uses Unicode icons for the interface, which makes it much cleaner than many TUI programs, and that it adopts to mobile phone screen size.


emoji


It's awesome in visual terms, but please consider a thing: CLI is very effective to combine different simple software together, witch is the classic UNIX paradigm. We know from the history that such paradigm is a FAIL, but it still have some points.

The need of visual stuff is UNIX fail. That's why older system, like Xerox Smalltalk workstations, was graphical by default, networked before unix was born. Long story short: we MUST recover such model in FLOSS, since this is a FLOSS game, no proprietary software can last longer in a classic desktop.

Witch means we need integrated tools. Emacs so far offer the best integration simply because is the sole living vestige of such classic past, Pharo (Smalltalk recover some visual aspects). That's what we need. Surely it's a hyper-long shot seen actual IT involution, but can be done if taken by a large community and CAN'T be parasited by any corporate move behind chasing to sell open-hardware platforms witch can't happen so quick.

That's is.

It's a very nice tool, but what if I want contacts merged? What if I want mail merged? Neomutt is another nice MUA, coupled with notmuch to search/access messages, but there is not much room to integrate both. What if I want to link files? ... That's the point of a unique OS-as-a-framework/apps-as-functions-of-such-framework vs UNIX KISS logic or worst modern GUI-as-self-contained-world.


Minor quibble - Smalltalk and the Xerox Alto started in 1972. Unix started in 1969 and was in use before 1972.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: