Team calendar


This plugin adds a new navigation tab, "Team calendar", that can be used to keep track of team availability in a project. The data is stored in the database, which means it can be used in reports and queries.

See also: GoogleCalendarPlugin, GanttCalendarPlugin

Bugs/Feature Requests

Existing bugs and feature requests for TeamCalendarPlugin are here.

If you have any issues, create a new ticket.


1 / 4


3 / 6


2 / 2


Download the zipped source from here.


You can check out TeamCalendarPlugin from here using Subversion, or browse the source with Trac.


Note that the plugin is currently tied to MySQL. Updates to make it more database agnostic would be welcome. See #4243, MySQL Testers needed!

General instructions on installing Trac plugins can be found on the TracPlugins page.

For MySQL, the table can be created as follows:

CREATE TABLE `team_availability` (
  `username` VARCHAR(255) NOT NULL DEFAULT '',
  `ondate` DATE NOT NULL DEFAULT '0000-00-00',
  PRIMARY KEY (`username`, `ondate`)

For PostgreSQL 8.3, the table can be created as follows:

CREATE TABLE team_availability (
   username VARCHAR(255) NOT NULL DEFAULT '',
   ondate DATE NOT NULL,
   availability FLOAT DEFAULT NULL,
   PRIMARY KEY (username, ondate)

For Sqlite3, the database and table can be created as follows:

sqlite3 trac.db

CREATE TABLE team_availability (
   username TEXT NOT NULL DEFAULT '', 
   availability FLOAT DEFAULT NULL, 
   PRIMARY KEY (username, ondate)

Technical notes

This plugin adds a new tab, Team Calendar, to users with the TEAMCALENDAR_VIEW permission. This shows a simple table with dates running down the rows and team members across the columns. Users with TEAMCALENDAR_UPDATE_OWN permissions can change the state of the tick boxes under their own name, and save the results. Users with TEAMCALENDAR_UPDATE_OTHERS permission can update everyone's.

The table is populated form the team_availability table in the database.

The 'availability' column will contain 0 or 1 if populated through the GUI. It is left as a float to make it possible to store more granular availability, eg half-day, but there is no business logic for this at present.

The calendar does not do anything else by itself. However, the team_availability table can be used in reports.

Recent Changes

14017 by rjollos on 2014-07-23 21:33:05
Removed empty directories that were not removed when moving files using Git.
14015 by rjollos on 2014-07-23 21:28:21
Removed unneeded intermediate directory.
14014 by rjollos on 2014-07-23 21:28:04
Added license headers and text. Tidied up indentation. Refs #11871.


Author: optilude
Maintainer: Chris Nelson

Last modified 7 weeks ago Last modified on Sep 3, 2016, 11:49:43 AM