jaret calendar

The jaret calendar is an eclipse plugin using the jaret timebars showing a google(tm) calendar synchronized to the local eclipse or rcp. An additional view shows a classical gantt view of the configured calendars and (optional) of mylyn tasks present. Additionally a very simple locally saved calendar is shown.

If you like you can comment and rate the jaret calendar at Eclipse Plugin Central.

IMPORTANT / License

The development is experiemental (reflected by the version number!) This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. The plugin is tested, but there is no guarantee that your calendar data will not be harmed! If you use the plugin you do so on your own risk!

It is not sure whether this plugin gets *really* completed. It is published in the hope that it might be useful for someone in some sense. If someone is interested in contributing to the development: contact me at peter.kliem@jaret.de. You might also report bugs to this mail adress.

The jaret calendar plugin is licensed under the GPL (GNU Public license) with a link exception allowing the use with other freely available code under several licenses. If someone is interested in another license (i.e. for a commercial use) for the plugin, feel free to contact me. Please note that the plugin contains parts licensed under other licenses:

  • the google gdata api for java (Apache License), version 1.14
  • the jaret timebars component that is licensed under the GPL with a link exception allowing the use with freely available EPL code. For the detailed licensing of the timebars component see the components page
  • other jaret components licensed under the CPL (Common Public License)

Changelog

  • 2008-03-30: (V 0.0.2): added the month view
  • 2007-12-27 (V 0.0.1): initial public release

Architecture, Installation, Tips

The jaret calendar plugin itself contributes two extension points for defining calendar providers and gantt providers. The google calendar provider acts as a calendar provider and a gantt provider while the mylyn adapter (see below) is a gantt provider only. The simple local calender is a calendar and gantt provider with a simple local storage. The plugin has been developed using eclipse 3.3 and Mylyn 2.1. It has been tested on Win XP only, but should work on other platforms as well. The google client APIs do need the activation framework for java. This is included in the base JDK since Java 6. So the prerequisite to use the plugin is either using Java 6 or downloading the activation framework (http://java.sun.com/products/javabeans/jaf/downloads/index.html), wrap it as a plugin and add the dependencies for the gdata plugin (basically this means: build it yourself from source, chnage the prerequisites in the plugin). (It's far better to switch to Java 6 of course, if you can!) To install the plugin simply copy the contents of the supplied binary zip(s) in your eclipse plugin directory. After starting check the preferences for the jaret calendar and configure your google calendars. You get the feed url by looking at the properties of the calendar via it's web interface. Use the private feed URL. The link provided ends with "/basic" which you should alter to "/full". IMPORTANT: remove the magic token. This is the hexadecimal crap after "private" (".../private-156119a3ccaaea460390fc37a510846c/basic" -> ".../private/full"). Now you can open the jaret calendar view (--> open view). If you are behind a http proxy you might also want to check your general eclipse proxy settings! Please note that the preferences will be used once to build the connection. So the effect of changes becomes visible after restarting eclipse.

Changes made to appointments will be saved with the "synchronize" button in the toolbar of the calendar view. This will also save changes made to appointments in the gantt view. A synchronization will also be done when a date is selected in the calendar month panel.

  • Use the box in the upper right corner to drag appointments from one day to another day
  • Use ctrl+mouse wheel to zoom in and out
  • Some preferences explained:
    • Time beetween synchronizations: The plugin requests synchronizations whenever a date is changed in the month panel. The requests will only be performed after the specified time (minutes). Operating the "synchronize" button will force an immediate complete synchronization
    • Compress non-working times: If activated the non working time will be scaled different from the working time.
    • A special option for the google calendar provider allows tracking of all update operations (can be deactivated when first displayed as a popup)

Mylyn integration

If you are using mylyn for organizing your tasks you can add the mylyn gantt provider to include your tasks in the gantt view of the jaret calendar. Things to notice:
  • the sorting order of the tasks is *random*. Need to check how mylyn sorts the tasks and categories.
  • the milestones in the gantt view can be dragged and can be activated/deactivated in the gantt preferences
  • tasks are simply shown at their scheduled starttime durating the estimated time. (I might add a projection using the defined work time later)
  • in the initial release (0.0.1) only local tasks are displayed (might be extended to repository tasks in the future)

Limitations and shortcomings

There are some limitations listed right here:
  • recurring events from the google calendar are read-only
  • the editable fields for the google calendar are the bare minimum
  • some changes to preferences and connections are only taken into account after restarting the workbench
  • dragging of appointments that span a whole day or more than a day is not possible
  • the plugin has a poor error handling ... some errors will be logged in the eclipse log
  • coding has been done quite quick and has not been completed - some parts are a bit messy

Download

de.jaret.calendar_0.0.2.zip Zip containing the base calendar plugin jars including the google calendar synchronizer ready build to be included in eclipse 3.3 (copy jars to the plugin directory). The source for the calendar plugins (base, gc, slc) is included. The source for the other components can be found at http://jaret.de. If you do not need the google calendar integration you can simply delete the de.jaret.calendar.gc JAR.
de.jaret.calendar.mylyn_0.0.1.zip Zip containing the mylyn gantt provider for the jaret calendar (depends on the base). Source is included in the plugin.

Screenshots



jaret calendar view



jaret calendar view, month view



coresponding google calendar



gantt view including mylyn tasks