Version 1 (modified by lucid, 3 years ago) (diff)

New hack WeekPlanPlugin, created by lucid

Multi-week calendar for planning


A new macro [[WeekPlan(...)]] can be used to show calendars / week plans. Clicking on that calendar allows interactively adding events to days. Moving or resizing events is possible by drag-and-drop. Clicking an event allows editing or deleting.

A "plan" is a named set of events. Multiple plans can be shown and edited in the same calendar in different colors.

The calendar data can be accessed as an iCalendar feed at /weekplan?format=ics&plan=xyz.

The FullCalendar library is used for the UI. The data is stored in a new table in the Trac database.


[[WeekPlan(plan=vacations|parties)]] Example screenshot


  • There is no history or undo functionality.
  • There is no tracking of users. Everyone with WEEK_PLAN permission can freely edit any plan.
  • There is no support for collaborative editing. Changes only become visible when the page is manually refreshed. There is no conflict detection or resolution mechanism.
  • Timezones and daylight-saving-time might not yet be handled correctly.


  • plan: Id of the shown collection of events. (required)
    • Can be a |-separated list of multiple plans.
  • start: A date in the first week shown. (Defaults to today.)
  • weeks: Number of weeks shown. (Defaults to one.)
  • width: Width of the calendar. (Defaults to 400)
  • rowheight: Height of one row of the calendar. (Defaults to 100)
  • showweekends: Show Saturdays and Sundays (Default is hidden)
  • color: Color of the events. (Defaults to #3A87AD|#39AC60|#D7A388|#88BDD7|#9939AC|#AC9939)
    • Can be a |-separated list of multiple colors. Each plan uses a different colors if multiple plans are specified.
  • format: One of the following formatting modes:
    • multiweek: A multi-week calendar. (The default)
    • count: A simple count of events.
  • matchtitle: A regexp that matches event titles. (Defaults to match all events.)

Bugs/Feature Requests

Existing bugs and feature requests for WeekPlanPlugin are here.

If you have any issues, create a new ticket.


Download the zipped source from here.


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


Installation of the plugin requires the usual step, e.g. easy_install and enable it in Trac's plugin admin page or by adding weekplan.* = enabled to the [components] section in trac.ini.

A database upgrade will be required as usual (trac-admin path-to-your-trac-environment upgrade).

Assign the new WEEK_PLAN permission to the appropriate Trac groups / users (e.g. in Trac's permission admin page).

Recent Changes

14780 by lucid on 2015-07-02 22:00:31
WeekPlanPlugin: PostgreSQL compatibility: quote "end" table name
Avoid SQL injection
Bump version to 1.2
(fix #12423)
14175 by lucid on 2014-09-25 22:03:05
WeekPlanPlugin: Define IWeekPlanEventProvider extension point. (fix #11615)
Bump version to 1.1.

Parse as UTC so localtimezone is ignored.
Update drop / resize event arguments.
Only hook up the enter key to submit dialogs of this plugin.
Tweak default colors.

14089 by lucid on 2014-08-16 13:48:42

WeekPlanPlugin: Upgrade to DB schema v2, FullCalendar v2.0.2 and use event sources.

  • Upgrade to DB schema 2: Add index for start/end and adjust old start/end values.
  • Update to FullCalendar v2.0.2
  • Fix timezone / summertime ambiguities
  • Use $(window).load() event instead of $(document).ready() to avoid a race condition between CSS loading and JS execution of FullCalendar.
  • Query events via event sources for more predictable performance with old plans and many events.
  • Removed support for format=count and matchtitle features. (These features don't work well and are incompatible with event sources.)


Author: lucid
Maintainer: lucid

Attachments (1)

Download all attachments as: .zip