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")