Tag Archives: calendar

gcalcli: An interface to the cloud

I am not a big fan of cloud technology; I am quite sure that, at some point in the future, the rush to dump information in the hands of offsite corporate hosts is going to backfire. (If it hasn’t already.)

On the other hand, my current job relies a lot on Google Calendar, to synchronize schedules between staff members.

So I use it, but do my best to insulate my personal life from the stuff on the web. Call me paranoid; I don’t mind.

gcalcli is one way to interact with the calendar service, and it’s not as cumbersome as it might appear at first.


In the lower right corner you can see the output of gcalcli, showing a list of calendars. (And yes, that is tmux and not screen running. I am trying to widen my horizons. πŸ™‚ )

Most of the features and protocol for gcalcli are easy to figure out, from the help page. My only suggestion is to use gpg to store your password locally, and set up the gcalcli configuration file to decrypt it on access.

The -help flag gives a little information about that, in short:

  1. type your password into a text file,
  2. encrypt it with gpg -c passwd.txt,
  3. adjust your .gcalclirc file to
user: kmandla
pw: `gpg --decrypt passwd.txt.gpg`

In my case, because I run without X, I had to add this to .gnupg/gpg-agent.conf:

pinentry-program /usr/bin/pinentry-curses

and --use-agent to the gpg commands, both before and in .gcalclirc.

I’ll say after all, that while this is useful, I still prefer to simply export the calendar through Google’s interface, and convert them with ical2rem.py. Remember that one? πŸ˜‰

pal: By contrast, a step up

Yesterday I mentioned cal specifically because, in a manner of speaking, it’s as straightforward and simple a calendar application as you will see, console or not.

Now let’s step it up a notch. Here’s pal.


I first looked at pal more than three years ago, alongside cal and a couple other little utilities that I’ll probably revisit at some point.

pal hasn’t changed in that time, with no revisions since about 2008. It’s still a step up from cal though, with an interactive mode for adding and editing events, as well as a cal-style calendar output.

And of course, this-day-in-history, world events and some “standard” holidays. And colors. I do like colors.

pal is not the be-all, end-all console calendar application, but it does a good job. It’s obvious that it was never really finished, what with a short list of unimplemented features on the help page.

But, of course, after pal there are a few other options. … 😈

cal: Hiding in plain view

I have a couple of calendar programs on my list — not scheduling or appointment tools, but calendars — and I want to be able to show slight differences between each.

So today I want to start with cal, the one you have installed already, so long as you’re not running your machine from inside busybox (hey, don’t laugh, I tried that once a long time ago).


I can’t remember meeting a distribution that didn’t include cal, and I probably never will. In Arch it’s part of util-linux, but I’m not sure about Debian (it doesn’t show up in the list of files for util-linux for squeeze).

cal is probably a good example of a Unix-ish program — it’s small, it only does one thing, it is easily filtered and redirected, etc.

On the other hand, what you see above is about 98 percent of what cal does. Not inadequate, just the bare minimum.

So I suppose if you need to know when the next month with a Friday the 13th, or what day of the week your birthday was, cal will do the job with gusto.

But after that … ?

And by the way, this is not an error.



ical2rem.pl: Bridging the graphical and the textual

I use wyrd on a daily basis, the fantastic frontend to the planet-crushing power of remind.

But I also rely on a Google calendar for work-related stuff. Occasionally it becomes necessary to splice calendars together, and that’s when the fun starts.

Google allows you to export calendars into ics format, though a calendar’s Settings page. And ical2rem.pl converts them quickly into reminder format.

There’s nothing to see when this happens, so I don’t have a screenshot for you today.

But this wiki page will give you an idea how to set it up.

Personally I don’t bother with the cron job, like it suggests. It’s not often that I have to convert between them, and so once a month probably works for me.

The script is also in AUR, but it might be quicker just to download it. Have fun. πŸ™‚

P.S.: Apparently the script has either been rewritten or converted to ruby. I haven’t tried that. Let me know how it works. πŸ˜‰