GcalInfo
GcalInfo (Google Calendar Info) is a Linux GUI - program, written in Python and based on the wxWidgets
cross-platform Gui-library.
With this software you can watch your nearest events, merge information
from any calendar, define individual colors for each calendar and more. You can run the app as a
window on the desktop or banish it as an icon to the system tray. The icon will indicate how many
events occur today.
Contents
To run GcalInfo, you need Python 2.5.x or better (not 3.x) and wxPython 2.8.x.x or better to be installed on your computer. In addition it would be wise to install the following modules:
- PIL: Python Imaging Library. Necessary to display digits (event count for today) in the systray icon (package 'python-imaging' on Ubuntu / Kubuntu). On Windows avoid installing PIL 1.1.7 because there is a problem with font-loading. Install PIL 1.1.6 instead.
- Psyco: hot spot compiler. Not necessary but good to speed up various things (only on 32 bit systems), Psyco website
GcalInfo has been tested on computers running Kubuntu Linux (KDE), Ubuntu Linux (Gnome) and Windows XP SP3.
Introduction
At the very first start of GcalInfo, three files will be created in your
home directory:
- GcalInfo.ini, which holds all program setting information (i.e. window size and position, calendar urls, colors, refresh interval and so on)
- GcalInfo.icf, which holds in compressed form (tar.gz) all downloaded calendar infos from the last connection to the Google calendar service
- GcalInfo-Action.log, which logs relevant program steps if logging is enabled.
You can decide to store these files elsewhere on your computer. This is possible
by starting the application with the command line switch -i=/path_to_files.
Example: gcalinfo.pyw -i=/opt/GcalInfo. Now the above mentioned files are stored in the
directory '/opt/GcalInfo'.
The GUI
GcalInfo GUI has a main window with two columns for event start time and event summary information.
Events from different calendars are grouped at the day of occurrence. Events of today
have a highlighted background (configurable via 'Preferences').
The main window includes a menubar, a listcontrol with 2 columns and finally, the main window contains a statusbar
divided into 2 fields. From left to right they are:
- quick help
- status led
The status led is implemented to help you to know what's going on with the app (see table below).
led color | meaning |
---|---|
yellow | the app tries to connect to the Google calendar service |
green | downloading calendar information was successfull |
blue | downloading calendar information was not successfull - using locally stored calendar information is used instead. |
red | a connection to the Google calendar service could not be established nor were there locally stored calendar information from previous connections |
The screenshot above shows the connection summary ('File', 'Connection summary' or CTRL-S). Here you can see the last update from the Google calendar service date and time, the total event count registered for each calendar and the assigned color.
Preferences
Common program setup is done via the Preferences menu. To get to the
menu, use 'Options', 'Preferences' or type CTRL-P. The Preferences notebook dialog has 2 tabs.
In this dialog you enter the calendar urls you want to monitor. A new url is entered by pressing Add. Then you can copy or type the url in the now enabled edit box. The color button is now enabled too, so you can choose via a color picker your desired calendar color.
So how do you get the urls of your calendars? This is not so hard - follow the below described 7 steps:
- connect to your Google calendar page
- click on 'Settings' link
- click on 'Calendar settings' link
- click on the second notetab link labeled 'Calendars'
- click on a link with the name of the calendar you want to monitor. A screen similar to the screenshot below will appear.
- click on the green button labeled 'ICAL' (in your private calendars, there are two green buttons. In this case use the lower one). A popup with a url will show up (see screenshot below).
- copy the url (in the example below it is http://www.google.com/calendar/ical/de.german%23holiday%40group.v.calendar.google.com/public/basic.ics) and paste it into the edit box of the preferences dialog.
Item | Default | Explanation |
---|---|---|
Max time frame | 30 | This is the time frame in days (starting today), your calendars will be evaluated. You can choose a value between 1 and 365 days. |
Refresh interval | 15 | Refresh interval is the time in minutes, the app will wait until the Google calendar service is contacted again for downloading the (eventually changed) calendars. |
Max disp events | 10 | If you don't like vertical scrollbars or if you want to speed up things, you can limit the count of shown events to any number between 1 and 250. |
Font family | System Ansi Font | Here you can choose the font for the information in the main window. All fonts, installed on your machine are offered. |
Font size | 10 | The fontsize in points for the main window font can be any value between 6 and 16. |
Highlight color | (242,221,202) | The highlight color for the events of today. |
Reminder popup | Enabled | If there are events for today and you have enabled Reminder popup, a popup window will show up to inform you. You can decide not to be reminded again (Cancel) or to be reminded in 5, 15 or 30 minutes or in 1, 3 or 6 hours again if you press 'Remind me again'. The app remembers your selection for future offers. For this feature it doesn't matter if you are running the app with a window or as an icon in the systen tray. |
Update check | Disabled | GcalInfo can automatically check the website on startup. If a new program release is available, a popup window appears. |
Action log | Disabled | If Action log is enabled, relevant program actions are written to a logfile. The logfile is placed in the users homedir or in a directory of your choice (command line option). The name of the logfile is GcalInfo-Action.log (see Logfile remark below). |
Start minimized | Disabled | If enabled, the application will start as a systray icon without a main window. If you hover over the icon, a popup listing today's events appears. If you click on the icon, the main window shows up. |
Logfile remark:
Logfiles are written by a RotatingFileHandler with a maxBytes size of 64 / 512
kB and a backupCount of 4 backups. Rollover occurs whenever the current
log file is nearly maxBytes in length. If backupCount is >= 1, the
system will successively create new files with the same pathname as the
base file, but with extensions ".1", ".2" etc. appended to it. For
example, with a backupCount of 4 and a base file name of "app.log", you
would get "app.log", "app.log.1", "app.log.2", ... through to
"app.log.4". The file being written to is always "app.log" - when it
gets filled up, it is closed and renamed to "app.log.1", and if files
"app.log.1", "app.log.2" etc. exist, then they are renamed to
"app.log.2", "app.log.3" etc. respectively. This is the same technique
as you might have seen in the /var/log dir of Linux systems.
The format of a logfile line is: date time -- message i.e.
Action-log (64 kB)
2011-01-02 18:36:29 -- Calendars - calendar #1 sucessfully fetched
2011-01-02 18:44:47 -- Update check - the installed version of GcalInfo is up to date
Note for Windows users:
The GcalInfo application does not put any
values in the Windows registry.
Final note
All screenshots shown in this document, are taken from GcalInfo 0.2x and 0.3x running on Linux (Kubuntu 10.10, KDE 4.5.x).
If you like the software, use it (at your own risk). If you have
suggestions or encounter bugs - please send me an email. If you do not
like the software - throw it away.
- Guido van Rossum for the great Python programming language
- the wxWidget team for their cross-platform GUI Library
- the wxPython team for their Python wx wrapper, used to create the GUI of GcalInfo
- Jiva DeVoe, Wolfgang Arlt and others for their iCal module, used to read and analyze the calendar information
- Michael Foord and Nicola Larosa for their excellent configobj module, used to read / write the program settings
- Wolfgang Bredow and Klaus Reese for their contributing work
GcalInfo was designed and coded by Frank Mersmann (frank.mersmann@gmail.com).
Beta tests and artworks were made by Wolfgang Bredow (bredow.w@googlemail.com).
Beta tests and hints were made by Klaus Reese (kldreese@googlemail.com).
0.30.20110211