A weekend calendar

By Abhijit Menon-Sen <>

There's a file named 2006.pdf that has been in my ~/TODO directory for so long that I've forgotten where I found it. It's a very nice calendar: one line per month, with the (dates shifted left or right so as to have the) weekends vertically aligned, and coloured red. I thought it was useful, clever, and attractive.

The PDF meta-data says it was created by "Brad", and a faint memory tells me that his site had many other interesting examples of design, both visual and electronic, but I have not been able to find it again. Here's a copy of the file.

The file was in my TODO directory because I wanted to write a program to print a similar calendar for a given year; and this I have now done. wcal produces cal(1)-style output on the console, using ANSI escape sequences to colour the weekends red (and the current date green).

One problem with this calendar is that it breaks up weekends that span month boundaries. If January 31 is a Saturday, both it and the first of February become red stragglers at the edge of the calendar, even though they constitute a perfectly ordinary weekend in practice.

I wrote wcal-compact to address this. Instead of giving each month its own line of dates, this program takes all 365 days of the year, colours the weekends red, and splits them up into lines such that all full weekends are vertically aligned. That left one special case I could do nothing about: if the first of January is a Sunday (as it was in 2006), it becomes a straggler.

Since the compact output makes the months run together, I changed the background colour of every alternate month to white (and most of the added complexity in the new program deals with the proper resetting of the background colour on continued lines), but I'm not especially fond of this hack.

I haven't been able to make up my mind about which form of weekend-aligned calendar is more useful.