Version 14 (modified by anonymous, 5 years ago) (diff)


Calendar view of Milestones and Tickets



Macro for the Trac Wiki Ticketing system to display Milestones and Tickets in a calendar view.

This Macro is hosted here

No image "Picture2.jpg" attached to WikiTicketCalendarMacro

Port to Trac 0.11.1

Hi there, I ported this macro to work with version 0.11.1 along the lines of WikiCalendarMacro. Unfortunately I'm familiar with java, php or c but didn't do any python coding yet. It's up and running on my production system for about a week and I didn't experience any problems yet ... but that doesn't count much. If anyone could do a little quality assurance, I would be very thankful.

Thanks in advance.

Greets, Alex (alex [at] goldstift [dot] de)


Simply download the attached to your projects "wiki-macros"-folder and reload your webserver.

For Trac 0.11, this macro should also be copied into the "plugins" folder. Then enable it in trac.ini or the "Manage Plugins" page under the "Admin" tab.

Afterwards you should be able to use the macro in your wiki


Excerpt of the source documentation:

  Activate it in 'trac.ini'

  WikiTicketCalendarMacro.* = enabled


    displays a calendar, the days link to:
     - milestones (day in bold) if there is one on that day
     - a wiki page that has wiki_page_format (if exist)
     - create that wiki page if it does not exist

    year, month = display calendar for month in year ('*' for current year/month)
    showbuttons = true/false, show prev/next buttons
    wiki_page_format = strftime format for wiki pages to display as link
                       (if there is not a milestone placed on that day)
                       (if exist, otherwise link to create page)
                       default is "%Y-%m-%d", '*' for default
    show_ticket_open_dates = true/false, show also when a ticket was opened



To fix encoding problems for e.g. german users add the following code to the script:

import locale

def expand_macro(self, formatter, name, arguments):

  loc = locale.setlocale(locale.LC_ALL)
  locale.setlocale(locale.LC_TIME, 'english')
  locale.setlocale(locale.LC_ALL, loc)
  return Markup(table)

If you want to use one of the latest patches be sure to fix the daylight saving problem and change:

  duedatestamp = time.mktime((year, month, day, 0, 0, 0, 0, 0, -1))
  duedatestamp_eod = time.mktime((year, month, day, 23, 59, 0, 0, 0, -1))


  duedatestamp = time.mktime((year, month, day, 0, 0, 0, 0, 0, 0))
  duedatestamp_eod = time.mktime((year, month, day, 23, 59, 0, 0, 0, 0))

I can not offer any patch here because the maximum count of external links is reached for this ticket.

Recent Changes

[9668] by hasienda on 2010-12-13 00:55:10
WikiCalendarMacro: Pulling trunk in from WikiTicketCalendarMacro, refs #7564.

After separate development for some years lines of these plugins
are crossing again, as I do aim at bundling both to join the best
from both branches.

[9637] by hasienda on 2010-12-08 00:40:35
WikiTicketCalendarMacro: Split plugin/macro code into several modules, refs #7564.
[9615] by hasienda on 2010-12-06 23:08:54
WikiTicketCalendarMacro: Improve my quite historical i18n implementation.

An optional i18n implementation with backwards-compatibility to Trac 0.11
could be done, and much more elegant using a dedicated translation method
for Trac plugins from trac.util.dist, correcting [8264] once more.


Author: mcomb

Attachments (2)

Download all attachments as: .zip