gcalcli HowTo (taken from gcalcli wiki) How to use gcalcli... Login Information You can provide gcalcli with your Google Calendar login information either by editing the top of the script itself, using the --user and --pw arguments, or using the config file. In any case make sure you protect the information. HTTP Proxy Support gcalcli will automatically work with an HTTP Proxy simply by setting up some environment variables: http_proxy https_proxy proxy-username proxy-password Note that these environment variables must be lowercase and beware the usage of the dashes vs underscores. Config File gcalcli is able to read default configuration information from a config file. This file is location at '~/.gcalclirc' and must be formatted as follows: [gcalcli] <config-item>: <value> <config-item>: <value> ... The available config items are the same as those that can be specified on the command line. Note that any value specified on the command line overrides the config file. user: <username> pw: <password> cals: <type> details: <true|false> ignore-started: <true|false> width: <width> cal-owner-color: <color> cal-editor-color: <color> cal-contributor-color: <color> cal-read-color: <color> cal-freebusy-color: <color> date-color: <color> border-color: <color> 'gcalcli' event popup reminders using cron Run gcalcli using cron and generate xmessage-like popups for reminders. % crontab -e Then add the following line: */10 * * * * gcalcli remind 'gcalcli' agenda on your root desktop Put your agenda on your desktop using Conky. Add the following to your .conkyrc: ${execi 300 gcalcli --nc agenda} To also get a graphical calendar that shows the next three weeks add: ${execi 300 gcalcli --nc --cals=owner calw 3} 'gcalcli' agenda integration with 'screen' Put your next event in your 'screen' hardstatus line. First add a cron job that will dump you agenda to a text file: % crontab -e Then add the following line: */5 * * * * gcalcli --nc --ignore-started agenda "`date`" > /tmp/gcalcli_agenda.txt Next create a simple shell script that will extract the first agenda line. Let's call this script 'screen_agenda': #!/bin/bash head -2 /tmp/gcalcli_agenda.txt | tail -1 Next configure screen's hardstatus line to gather data from a backtick command. Of course your hardstatus line is most likely very different than this (Mine is!): backtick 1 60 60 screen_agenda hardstatus "[ %1` ]" 'gcalcli' Usage Usage: gcalcli [options] command [command args] Options: --help this usage text --config <file> config file to read (default is '~/.gcalclirc') --user <username> google username --pw <password> password --cals=[all, 'calendars' to work with (default is all calendars) default, - default (your default main calendar) owner, - owner (your owned calendars) editor, - editor (editable calendar) contributor, - contributor (non-owner but able to edit) read, - read (read only calendars) freebusy] - freebusy (only free/busy info visible) --cal=<name> 'calendar' to work with (default is all calendars) - you can specify a calendar by name or by using a regular expression to match multiple calendars - you can use multiple '--cal' arguments on the command line --details show all event details (i.e. length, location, reminders, contents) --ignore-started ignore old or already started events - when used with the 'agenda' command, ignore events that have already started and are in-progress with respect to the specified [start] time - when used with the 'search' command, ignore events that have already occurred and only show future events --width the number of characters to use for each column in the 'cal' command output (default is 10) --nc don't use colors --cal-owner-color specify the colors used for the calendars and dates --cal-editor-color each of these argument requires a <color> argument --cal-contributor-color which must be one of [ default, black, brightblack, --cal-read-color red, brightred, green, brightgreen, yellow, --cal-freebusy-color brightyellow, blue, brightblue, magenta, --date-color brightmagenta, cyan, brightcyan, white, --border-color brightwhite ] Commands: list list all calendars search <text> search for events - only matches whole words agenda [start] [end] get an agenda for a time period - start time default is 12am today - end time default is 5 days from start - example time strings: '9/24/2007' 'Sep 24 2007 3:30pm' '2007-09-24T15:30' '2007-09-24T15:30-8:00' '20070924T15' '8am' calw <weeks> [start] get a week based agenda in a nice calendar format - weeks is the number of weeks to display - start time default is beginning of this week - note that all events for the week(s) are displayed calm [start] get a month agenda in a nice calendar format - start time default is the beginning of this month - note that all events for the month are displayed and only one month will be displayed quick <text> quick add an event to default calendar - example: 'Dinner with Eric 7pm tomorrow' '5pm 10/31 Trick or Treat' remind <mins> <command> execute command if event occurs within <mins> minutes time ('%s' in <command> is replaced with event start time and title text) - <minutes> default is 10 - default command: 'gxmessage -display :0 -center \ -title "Ding, Ding, Ding!" %s'