160 lines
6.6 KiB
Plaintext
160 lines
6.6 KiB
Plaintext
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'
|
|
|