I use Google Calendar. I really like the Google Calendar command-line interface called gcalcli. It's a python script that you can get here: https://github.com/insanum/gcalcli The screenshots there look OK, but it is improved now and uses line characters to create the week and month calendars, so it looks a little better. To make it easier for me to use gcalcli, in the ways I usually use it, I wrote some scripts and put them here: http://genetsim.org/gcalcli/ Example commands: myday show an ANSI-color-coded list of calendar events for all calendars for today myday tomorrow show an ANSI-color-coded list of calendar events for all calendars for tomorrow myday 7/27 myday "July 27" myday "Jul 27" myday "27 July" myday "27 Jul" All show an ANSI-color-coded list of calendar events for all calendars for July 27 (current year) myday today 5 show an ANSI-color-coded list of calendar events for all calendars for 5 days starting today myday 8/1/2014 10 owner myday "August 1, 2014" 10 owner myday "1 August 2014" 10 owner myday "1 Aug 2014" 10 owner myday 2014-08-01 10 owner All show a plain list (no color) of calendar events for the owner's calendar for 10 days starting August 1, 2014 myweek show an ANSI-color-coded calendar for all calendars for the Sun-Sat week that includes today myweek 6/1 4 myweek "June 1" 4 myweek "1 June" 4 All show an ANSI-color-coded calendar for all calendars for the 4 Sun-Sat weeks beginning with the week that includes June 1 of this year myweek 6/1 4 owner myweek "June 1" 4 owner myweek "1 June" 4 owner All show a plain calendar (no color) for the owner's calendar (or those specified) for the 4 Sun-Sat weeks beginning with the week that includes June 1 of this year mymonth show an ANSI-color-coded calendar for all calendars for the calendar month that includes today mymonth 6/12 mymonth "June 12" mymonth "Jun 12" mymonth "12 June" mymonth "12 Jun" All show an ANSI-color-coded calendar for all calendars for the calendar month that includes June 12 of this year (we get the same calendar for 6/1 as for 6/12 or 6/30 or "June 25") mymonth 6/12 owner mymonth "June 12" owner mymonth "12 Jun" owner All show a plain calendar (no color) for the owner's calendar (or specified calendars) for the calendar month that includes June 12 of this year (again, we get the same calendar for 6/1 as for 6/12 or 6/30 or "June 25")