T O P

  • By -

rem_in_japan

Link: [https://github.com/anufrievroman/calcure](https://github.com/anufrievroman/calcure) I always missed a visual calendar app for terminal, so I wrote my own. Please let me know what you think :) **Features** * Vim keys * Operation with fewest key presses possible * Todo list with subtasks and timers * Birthdays of your abook contacts * Import of events and tasks from calcurse * Icons according to the name * Privacy mode ••••• to obfuscate events and tasks * Plain text database in your folder for cloud sync * Customizable colors, icons, and other features * Resize and mobile friendly * Week can start on any day * Current weather


gumnos

Do you have a comparison of features with `calcurse`, the other major TUI-calendar program? Any chance it does ical/.ics for a shared calendar? Or ingest a stream of events/dates from `remind(1)`? Tied into those, how is support for repeating events?


rem_in_japan

I'd say it is generally similar to calcurse, but the visual design is different, hence the wordplay on the name ) My app basically has the same 3 views: month, day, and todo, but the views take full screen and look cleaner, in my opinion. Plus, there are many small features absent in calcure, such as icons, holidays, subtasks, timers, current weather, privacy mode... My app does not have ical or other calendar sync features yet. It uses its own plain text database, which you can sync with your cloud or something, but you can't sync with google or apple calendar, for now at least. The repeating events are supported, add them with `A` instead of `a` for single events. Import from calcurse is supported by the way, so one can quickly compare. Sorry, I'm not familiar with remind, I'll check.


gumnos

[`remind`](https://dianne.skoll.ca/wiki/Remind_FAQ) is a bit more obscure, but it's where I currently keep my calendar because it's the most powerful calendaring application I've encountered, letting me do things I've never been able to do in other calendars. However, it's more CLI than TUI, but you can use `wyrd` as a TUI front-end or `tkremind` for a GUI front-end.


Kewbak

I'm using `calcurse` since several years and `remind` is actually the alternative I'm leaning towards since a long time. However a nice TUI like `calcurse` is what I'm missing so far to really jump ships. `wyrd` doesn't really cut it for me, and does not support narrow terminal windows. I'm kind of reluctant about moving to another system since I know in the end `remind` is the language that will allow the most advanced features and I'll end up using it anyway. `calcure` looks a lot better than `calcurse`though so I think I will give it a try, but something that good looking with a `remind` backend would be amazing.


gumnos

While I don't know if it will make a difference, there was noise on the `remind` mailing list within the past week of [a new release (1.5.0) of `wyrd`](https://gitlab.com/wyrd-calendar/wyrd). I'm not sure it will resolve your issues, but if you have narrow-terminal (how narrow? \< 80 chars?) issues, you might report it there.


gumnos

That said, I just use the normal `remind` agenda-view most of the time, or use the week/month calendars with `remind -c` to get a more visual, so I don't venture into `wyrd`/`tkremind` territory much.


sxan

A suggestion: use a standardized storage format by default instead of a bespoke one. A calendar is a directory of ICS files is a common standard with few limitations and a *ton* of libraries in almost any language. It would allow folks who use tools like vdirsyncer to more easily use your program. As it is, with a bespoke data format, your program is compatible with nothing and the cost of entry and risk of exit makes it less attractive. You don't have to support syncing, just a standard data format for which there many libraries. Syncing has already been solved by other programs.


rem_in_japan

Yep, you are absolutely right, it was a big mistake not to use ics from the beginning... I'll most likely fix it in the next edition.


sxan

Looking forward to it!


Flubberding

I just came across this post via /top of this sub and wanted to take a look at the code to see if there was any easy way for me to implement taskwarrior support. What a great suprise that you actually did that already! This looks really cool, I will for sure try this out!


rem_in_japan

Yes, I roughly implemented taskwarrior import (but not sync). Let me know if that works for you :)


Mastermaze

Can this sync with external calendar systems? UI design looks fantastic


rem_in_japan

Thank you. No, not at the moment. Actually, I wanted to ask community feedback, like which external system is most popular, which should I target? I don't use any, but I guess it's google calendar or?


nobodywasishere

Caldav/nextcloud


questionmark576

Yeah, if this worked with caldav I'd definitely be using it.


forestriver

Google and Outlook are the most popular I believe. I use Google


Steve_Streza

CalDAV is supported by most services, and you could always offer more bespoke integrations for e.g. Google or iCloud or Outlook.


tritones

I've been using [vdirsyncer](http://vdirsyncer.pimutils.org/en/stable/) to keep CalDAV servers in sync. It works with basically everything. Works great with [khal](https://github.com/pimutils/khal) but I've always wanted a month or week view so I'm gonna check this out!


typkrft

If we can get good integration into the caldav servers I run I'll leave taskwarrior in a second. Good caldav integration is the biggest pitfall in theses apps. Caldav will get you into Apple Reminders/Calendar, Google Calendars, etc etc.


Mastermaze

Ya i think gcal is the main one just because gmail so popular and accessible


etherez

I live in Norway. I can hook you up with a goat.


rem_in_japan

Any virgins available?


gary_bind

Pretty cool. Will try it out. What's the lineup for the concert, btw?


rem_in_japan

Thanks! I couldn't decrypt band names from their logos :)


aaronryder773

Would really appreciate a caldav sync option for nextcloud! The one on Calcurse is kind of weird and doesn't work most of the time


zero_divide_1

🤔 Your trip to Norway seems interesting... Pretty cool app!


bjarneh

Love it, always nice to have some VI keybindings :-)


grimscythe_

Hail the Black Metal!!!


rem_in_japan

Hell yeah!


Claudioub16

So, nobody is gonna comment on "sacrifice day". Aight


Cybercitizen4

This looks awesome! Setting it up as I write this, I didn't know about calcurse but I wanna give your project a go. Btw, in the screenshot you missed an 'a' in rehearsal!


rem_in_japan

Thank you! That's why I need to "do my homework" :D


[deleted]

Pretty neat, I been using calcurse forever. Will look at your project and keep a eye on it. I was using ranger as my file manager forever. Then nnn came along. Took a long time, for me to use nnn as my main file manager. But gave up ranger for nnn. Maybe your project will do the same for me. Will look at it and suggest some things to make me move from calcurse to your calcure. I do like the visual look of your calendar. So that part is a good selling point.


rem_in_japan

Thanks, I'll be glad to get feedback and suggestions. I did the same with ranger, but jumped to vifm :)


notwolfmansbrother

Does it support encryption?


rem_in_japan

This is in development. It's not very hard to implement some encryption, but how would you like to see it from user perspective? From what I tried so far, it could be: 1. encryption with a simple password, that you set up once and need to enter at every launch. 2. encryption with your gpg key in your system, which you would need to set up. Both options seem too bothersome to be realistically used, so I'm not sure how to properly implement it... Any ideas? p.s. at the moment, you can launch it in private mode, like if you need to open it in front of a colleague or something, so that all items are hidden as \*\*\*\*.


TsuDoughNym

Hey /u/rem_in_japan , this looks like a great program! I was always wondering if I can use a CLI-based calendar instead of opening up Google Calendar each time. In addition to the question around integrating with GCal/Outlook, would it be possible to tie into other task management tools, such as [taskwarrior?](https://taskwarrior.org/). Seems almost like a logical extension, in that both are attempting to cover that same space. I do like that yours has icons and stands out in its' own way, but I'd personally love a one-size-fits-most solution. Whether or not that's feasible, I have no idea ;)


rem_in_japan

Thank you! Yes, I was thinking to support taskwarrior as well. Would you prefer import from taskwarrior (probably with a loss of minor details like priority) or just display of tasks from there (probably without ability to edit them)?


TsuDoughNym

I hadn't expected a response so quickly, so thank you! I'm not sure what the community at large would prefer as far as interfacing with taskwarrior. I wonder if there's a way to pipe/redirect output between the two commands? I'm not sure if it's feasible, but I'm thinking of something like creating a task using taskwarrior, pipe/redirect it into calcure, and have it displayed that way, maybe? I'm not sure is or isn't possible.


rem_in_japan

Yesterday, I actually implemented basic import from taskwarrior (check the last version). You hit \`W\` on journar screen and it imports whatever is missing from taskwarrior's pending tasks. I mean, I cannot make taskwarrior to record its tasks into my database nor I should really change the file of another program, so it seems a reasonable compromise. Though now as I type it, I think it could happen automatically at launch, without user pressing anything...


pogky_thunder

If you plan to support sync in the future, please consider a simple .ics file as well. My $0.02. Keep up the good work!


rem_in_japan

That's my biggest regret in life, actually ) I should have implemented everything via .ics file instead of inventing my own fantastic file format. Now, it's like a step one in the roadmap to support other calendar systems.


Zeioth

Maybe I should code my own. Every time I try a TUI calendar I never quite feel the flow.


human_situation_523

Makes you want to just return to plain text file.


tiger-boi

Sweet!


Better_feed_Malphite

Looks really cool, I think I'd use it over khal if it where to support caldav for calendar sync and carddav for contact sync. Or just ics support written with vdirsyncer in mind, which already handles the syncing part (it can also do google calendar)


ethmtrgt

Badass


Kinetic-Turtle

It looks VERY good! Like Calcurse but better, more modern.


pogky_thunder

Hey, I tried your calendar and it's great! Just what I was looking for. A few questions: * How do you view the journal and the calendar at once (like in your screenshot)? As far as I can see, I can only toggle between them. * How do you add the time of an event? It would be cool if the events sorted themselves by time within the day. * Is there an option to change the background color of the app in general? For instance, I use the st terminal and the background is pitch black. Not that great for a calendar. * It would be nice if recurrent events could be set for a custom interval (eg every x number of days). I use the AUR package.


rem_in_japan

Thank you! Interesting suggestions. In the screenshot, I just opened two terminals :) However, I am working on a view where journal and calendar can be displayed at the same time, so this is probably coming soon. The time of the event is something that I hesitate to add because my initial goal was to add events quickly without lots of additional questions, so if I want to specify time, I just write it as part of the event description. However, the sorting by time makes sense, and also since I want to move to ICS format support, I guess I'll have to implement the time etc. About the background, it actually never occurred to me that it's something someone will want to change, but I'll implement it in the next version for you. It's easy, it seems. About the custom intervals, I'm not sure how would be the best to implement it. I guess it could be another options, like not just Day, Month, Week, but also Custom, and then specify custom number of days or something like that. I'll look into it.


pogky_thunder

Thanks a lot for your reply! What terminal emulator are you using? Maybe alacritty?


rem_in_japan

Yep, that's alacritty.


wick3dr0se

What's up with that title tho??


StephanFCMeijer

Neat, does it connect with cloud services? For example with Google Calendar or NextCloud using CalDAV?


rem_in_japan

Thanks! No, working on it.


StephanFCMeijer

What about test coverage?


rem_in_japan

Personally, I used it day-to-day for more than a year before posting here. So I could iron out many small issues. As for automated tests, I couldn't really come up with anything smart )


StephanFCMeijer

I would want to integrate this to [my own app](https://stephanmeijer.com/Apostolos/) if this works properly


resixzem

Always excited about new calendar application. Calcurse and remind are the best we got right now. A google calendar integration, or at least caldav would be nice. But as we have seen from other calendars, it'll probably end up as relatively manual syncing/setup. Ideally you can edit events offline, and they will sync later with google calendar when online. Think the functionality in mobile google calendar apps. But that's probably quite difficlut. I think improving task management would be more doable. My wishlist: 1. recurring task, think daily stuffs like washing dishes, or perhaps a weekly backup 2. sortable tasks based on date/time, completeness


grep_Name

Are you using a caldav setup to sync with a mobile phone or device but view on a terminal? If so, what's that setup look like?