šŸ’¾ Archived View for gemini.ctrl-c.club ā€ŗ ~dhruva ā€ŗ 2021-08-20_010631.gmi captured on 2022-04-28 at 18:12:56. Gemini links have been rewritten to link to archived content

View Raw

More Information

ā¬…ļø Previous capture (2021-12-03)

āž”ļø Next capture (2022-06-03)

šŸš§ View Differences

-=-=-=-=-=-=-

My calendar setup

The Problem

I love TUIs. Being able to use just keys to do a lot of things without touching your mouse is pretty awesome. But I canā€™t constantly be on my laptop. I mean sure, with the pandemic, thatā€™s all Iā€™ve done, but ~~if~~ when it gets over, Iā€™ll be on the move. I canā€™t turn on my laptop for every damn thing. I need to have the things I am working with on my phone too, especially things like the calendar. Now you get to read about the things Iā€™ve tried to set up a TUI calendar which also syncs to my phone.

On my laptop

Conclusion: Calcurse. Beautiful.

I first tried

remind

with

wyrd

, but it just seemed tooā€¦ much. Itā€™s pretty cool, but it seems to have a very condensed UI, and I prefer more open UIs

Then I tried

calcurse

. With a pretty light UI and sensible (read vim-like) key bindings, itā€™s super easy to get a hang of. Creating, editing and other stuff is pretty easy. Also, the notes feature is pretty awesome as it allows me to add pesky zoom links which have a tendency to get mixed up. Zoom should just give a random name to their meetings, like yellow-monkey-poop or something. It might even bring some joy into a dreary life of pointless Zoom meetings. Anywho, I pretty much stuck to calcurse.

But then I read about khal in

hundā€™s blog

and decided to try it. The interface is a bit different, with way too many months shown at once, and the key bindings are weird too. It seemed like there were 3 layers to the UI- the month layer, the day layer and the event layer. Calcurse on the other hand uses a single layer with 3 parallel sections, the to-do, appointments and the month. Calcurse just looked better, but khal isnā€™t far behind.

Syncing with other laptops

Now comes the real issue. Syncing. Sure I could set up a CalDav server, but I donā€™t have a static IP, and if I go back to my institute, I will not be able to access my laptop. Also, my laptop has to always be up, which is not the case. Plus, implementing my own set up would be a pretty painful task.

I could use some online server, but I couldnā€™t find any services which were not self-hosting. Also, I wouldnā€™t be able to store the calcurse format, instead store an ical which I convert on opening calcurse, which seems dumb.

My solution was git. Git is device and OS-agnostic, and I already know how to use it. Plus I get a change history for free, though I assume that at some point the history will get too large, and Iā€™ll have to squash previous commits, but thatā€™s like a once in a year thing. Putting it on a remote server also ensures that it is backed up, so even if my beauty of a laptop dies, Iā€™d still have my calendar.

You can make the calcurse directory a git repo and add

hooks

to commit and push in post-save and pull in pre-load. I used GitHub as the remote repo, but you could use anything of your choice. Now in another device, all I had to do was clone the calcurse directory, and Iā€™d be done. Since literally everything from settings to hooks was in the same place, it would work exactly the same in all devices.

Calcurse on Android

The final issue. Phone syncing.

My first attempt was to simply try to extend the same set up to android via

termux

. While that worked, calcurse was pretty hopeless on such a tiny screen with a soft keyboard. TUIs are not made for touch screens. I tried wyrd and khal too, but they werenā€™t easy to use either.

I knew I could get the calcurse data onto the phone, it was the UI that was a problem. I briefly thought about making an app which could parse and display calcurse data, but then remembered the painful thing that is Android development. Plus I would basically have to rewrite the calcurse parser which itself is in constant development, which would mean my thing would have to be in constant development. No, thanks.

I then dabbled with exporting an ical file from calcurse on exit, which worked fine, and I was able to import it into my calendar(

Simple Calendar

) too. At first, it would import the data multiple times, but then I found out that adding --export-uid while exporting from calcurse prevented that from happening, so that was fine. But the major issue was that I would have to run the git pull myself and then open the ics file with the calendar. Then too, events which were deleted from calcurse wouldnā€™t be deleted from the calendar, as events would be imported and merged to the default calendar.

I needed a calendar app which would basically only display the ics file, thatā€™s all. Not knowing any apps, I just typed ics into Aurora Droid and I found

ICSxāµ

. This was perfect. I could sync a CalDav server, and it would work perfectly.

But this cycled back to the first issue. I donā€™t want to set up CalDav. Then I thought of just trying to ā€œsyncā€ a URL which was just the link to an ics file. I used the raw link of the exported ics in my calcurse repo, and it worked!

Now, any time I edit the calendar on my laptop, it exports the calendar to an ics, commits it the repo, pushes to GitHub. From there, ICSxāµ syncs the changes to my calendar when I refresh in the app.

Success!

Still not the best

This set up is still not perfect. I cannot make changes on my calendar app which propagate to the laptop. I have to fall back to the calcurse CLI or TUI to add an event via termux. Itā€™s not a dealbreaker, especially since I donā€™t have too many updates anyway, but a person can dream.

Links

Home

Other Posts