New Foswiki release 2.1.6 is available with important security fixes.
Sourceforge foswiki email lists being discontinued. Subscribe to the new Foswiki announce and discuss lists at MailingLists
TIP TimeTablePlugin is not installed on


The TimeTablePlugin handles the tag %TIMETABLE% and creates a weekly timetable. The timetable is rendered with HTML tables and should work with all modern web browsers. Please take a look at the feature list for more information.

It also handles the tag %TTCM% (TimeTable Compatibilty Mode). The compatibility mode allows the usage of all Foswiki:Extensions.CalendarPlugin event types. The %TTCM% tag should be placed into the description field of an event and must contain a time range and optional colors in a comma separated list (<time range>[[','<foreground color>][','<background color>]]), e.g:
you type:
   * 22 May 2006 - %TTCM{"7:00-1:00pm,white,black"}% Meeting
   * 23 May 2006 - 24 May 2006 - %TTCM{"7am-4pm,yellow"}% Conference
you get:
  • 22 May 2006 - 07:00am-01:00pm Meeting
  • 23 May 2006 - 24 May 2006 - 07:00am-04:00pm Conference

The %TTTOPICSETUP% (TimeTable Topic Setup) tag allows you to define default foreground/background colors (eventfgcolor/eventbgcolor attributes) and a time zone (timezone attribute) for all events on a topic. Please use it only once on a topic.

Examples: (png images):

timetable example 1

timetable example 2


The TimeTablePlugin supports
  • two time formats: 12 and 24 hour format (attribute: timeformat)
  • (self-defined) time zones (attributes: timezone, timezoneabbr)
  • all HolidaylistPlugin and CalendarPlugin event types if the compatibility mode is enabled (compatmode="on")
  • navigation to other weeks (only if compatibility mode is enabled: compatmode="on")
  • own colors for every event (add the foreground/background colors to a event definition or use the %TTCM% tag of the compatibility mode)
  • event definitions from other topics (attribute: topic) - including override of the time zone (e.g. topic="EvenTopic2:-3)
  • customization of
    • all text outputs and colors (attributes: name, headerformat, ...)
    • the table rendering (attributes: days, startdate, timeinterval, showtimeline, ...)
  • a default setup for foreground/background colors and time zone on a topic (%TTTOPICSETUP% tag)
  • URL parameters: all attribute settings can be overwritten by URL parameters (ttp_<attribute>=<value>), e.g. TimeTablePlugin?ttp_days=14;ttp_tableborder=10;ttp_descrlimit=7
  • ...

Syntax Rules

Events are defined with bullets. Following event types are supported to define entries for the timetable:

Event Type Syntax Example(s)
Single  * DDD - HH:MM - HH:MM - description  * Mon - 09:00 - 11:00 - Meeting
 * DDD - HH:MM - HH:MM - description - background color  * Mon - 09:00 - 11:00 - Meeting - green
 * DDD - HH:MM - HH:MM - description - foreground color, background color  * Mon - 09:00 - 11:00 - Meeting - white,black
List  * DDD, DDD,... - HH:MM - HH:MM - description  * Mon,Tue - 08:00 - 8:15 - Breakfast
 * DDD, DDD,... - HH:MM - HH:MM - description - background color  * Mon,Tue - 08:00 - 8:15 - Breakfast - yellow
 * DDD, DDD,... - HH:MM - HH:MM - description - foreground color, background color  * Mon,Tue - 08:00 - 8:15 - Breakfast - white,black
Interval  * DDD - DDD - HH:MM - HH:MM - description  * Mon - Fri - 12:15 - 13:00 - Lunch
 * DDD - DDD - HH:MM - HH:MM - description - background color  * Mon - Fri - 12:15 - 13:00 - Lunch - green
 * DDD - DDD - HH:MM - HH:MM - description - foreground color, background color  * Mon - Fri - 12:15 - 13:00 - Lunch - white,black
Duration instead of an end time (HH:MM) in a time range of a single/list/interval event you can define an event duration in days (d), hours (h) and/or minutes (m), e.g. one day: 1d ; one day and two hours: 1:2d ; one day, two hours and 30 minutes: 1:2:30d ; two hours: 2h ; two yours and 30 minutes: 2:30h ; 30 minutes: 30m  * Mon - 10:00 - 2h - every Monday 2 hours at 10 o'clock

If you enable the compatibility mode (see Attributes or Plugins Settings sections) you can also use all Foswiki:Extensions.CalendarPlugin event types. Examples:
%TIMETABLE{compatmode="1" startdate="12 Jun 2006"}%

   * 12 Jun - %TTCM{"10am-5pm,yellow"}% Every 12th of June between 10am and 5pm
   * E Wed - Every Wednesday (whole-time)
   * 12 Jun 2006 - 19 Jun 2006 - %TTCM{"12:15pm-1pm,white,black"}% Lunch with Mary
   * 13 Jun 2006 - 10:00-12:00 Meeting 
   * 14 Jun 2006 - Meeting - 01pm-03pm,green
  • The parameter of the %TTCM% tag must not contain any whitespaces.
  • Time ranges in a description field must not contain any whitespaces.
  • If no %TTCM% tag or no time range was specified in a description of a Foswiki:Extensions.CalendarPlugin event the event gets a full-time event (12:01am-11:59pm o'clock, 0-24h).


Usage: %TIMETABLE{attribute1="value1" attribute2="value2" ...}%

Example: %TIMETABLE{lang="Deutsch" timeinterval="15" }%

Attribute Comment Default/Example
clicktooltip if enabled JavaScript tooltips are only shown with a mouse click to the table cell instead of 'mouse over' (related: clicktooltiptext) clicktooltip="off"
compatmode if set to "1" all Foswiki:Extensions.CalendarPlugin event types are supported (related: compatibility mode attributes); ALERT! the description field can contain a time range (without any whitespaces, e.g. 1pm-2pm) or a %TTCM%-Tag (e.g. %TTCM{"7:00-1:00pm,white,black"}% ) with a time range and optional foreground and background color and without any whitespaces compatmode="0"
days days to show days="7"
endtime a end time, e.g. 18:00, 6:00pm, ... endtime="8:00pm"
lang Language used for weekdays in the table header and for event entries (e.g: English, Deutsch, Français, Español, Nederlands, Dansk, suomi, ...) lang="English"
rotatetable enables/disables table rotation rotatetable="off"
showweekend show weekend if set to '1' showweekend="1"
starttime a start time, e.g. 7:00, 8a.m., 9:15a.m. ... starttime="7:00am"
textwrapper sets the text wrapper for the event entry text (default: browser); plugin: text is wrapped by the TimeTablePlugin (old behavior but stable); browser: text is wrapped by the web browser textwrapper="plugin"
timeformat time format; allowed values: 12, 12am, 12p.m., 12a.m, 12p.m. and 24 timeformat="24"
timeinterval interval steps in minutes for the timeline timeinterval="30"
timezone a hour offset (allowed values: -12 ... 0 ... +12) for time correction or a time zone abbreviation (e.g. UTC, CET ...) timezone="0"
timezoneabbr a comma separated list of time zone abbreviations with UTC offsets; the standard time zone abbreviations will be extended with this user defined abbreviations timezoneabbr="CET:+1, MEST:+2"
topic a comma separated list of source topics; you can add a time zone to any source topic name by adding a ':' and a hour offset (-12 ... +12) or a time zone abbreviation, e.g: topic="MySourceTopic:-2" ALERT! this time zone feature overrides the timezone attribute of a %TTTOPICSETUP% tag topic="%TOPIC%"
wholetimerow enables/disables a whole-time event row (related attributes: wholetimerowtext, wholetimerowtitle) wholetimerow="0"
workingendtime working hours end time workingendtime="5:00pm"
workingstarttime working hours start time workingstarttime="9:00am"
Compatibility Mode:
(ALERT! compatmode="on" is required ALERT!)
cmheaderformat table header format of a day; a subset of strftime conversion specifiers is supported (only date not time specifiers; see manual page or Foswiki:Development.ConvergeDateTimeFormattingModels) cmheaderformat="<font title=\"%A - %d %b %Y\" size=\"-2\">%a<br/>%e</font>"
daynames custom day names (a list separated by a '¦' and starting on Monday; overrides lang attribute) daynames="M¦T¦W¦T¦F¦S¦S"
forcestartdate if set to 1 the timetable starts with the given startdate ('0' means: the timetable view starts with Monday') forcestartdate="0"
month set a month (e.g. Jan, Feb ... or 01, 02, ... 12 ) or a month offset (e.g. +0, +1, -2,...) month="+1"
monthnames custom month names (a list separated by '¦' and starting on January; overrides lang attribute) monthnames="J¦F¦M¦A¦M¦J¦J¦A¦S¦O¦N¦D"
navnext navigation button to the next n days navnext="&gt;&gt;"
navnexttitle title text (tooltip text) for the navigation button to the next n days navnexttitle="Next %n day(s)"
navprev navigation button to the previous n days navprev="&lt;&lt;"
navprevtitle title text (tooltip text) for the navigation button to the previous n days navprevtitle="Previous %n day(s)"
startdate a start date (e.g. '1 Oct 2005') or a day offset (e.g. '10', '+30' or '-30') startdate="+0"
year set a year (e.g. 2005, 2006 ...) or a year offset (e.g. +0, +1, -1, ...) year="+0"
Table formatting:
clicktooltiptext tooltip text of table entries if clicktooltip is enabled clicktooltiptext="Click me for more information"
descrlimit per line character limit for the description (ALERT! depends on the textwrapper attribute: if textwrapper="plugin" this limit is a character limit; if textwrapper="browser" the width of a event entry table cell is set to <descrlimit>em) descrlimit="10"
displaytime display time in the event description of the timetable displaytime="0"
eventbgcolor default background color of an event cell (you can override this with an event entry) eventbgcolor = "#AAAAAA"
eventfgcolor default text color of an event cell (you can override this with an event entry) eventfgcolor = "black"
fontsize default font size (see Known Issues and Bugs) fontsize="xx-small"
headerformat table header format of a day; a subset of strftime conversion specifiers is supported (only date not time specifiers; see manual page or Foswiki:Development.ConvergeDateTimeFormattingModels) headerformat="<font title=\"%A - %d %b %Y\" size=\"-2\">%a</font>"
monthheaderbgcolor month header background color (default: tableheadercolor) monthheaderbgcolor="%WEBBGCOLOR%"
monthheaderfgcolor month header text (foreground) color (default: black) monthheaderfgcolor="black"
monthheaderformat month header format (related: showmonthheader) monthheaderformat="%B"
name header content of the first column name = "&nbsp;"
nowbgcolor highlight current time in the timeline with a background color nowbgcolor="black"
nowfgcolor highlight current time in the timeline with a forgeround color nowfgcolor="white"
showmonthheader enables/disables monthheader; if compatmode=on the montheader is shown by default showmonthheader="off"
showtimeline show timeline left, right, or on both sides showtimeline="both"
tablebgcolor table background color tablebgcolor="white"
tableborder table border (default: undefined) tableborder="1"
tablecellpadding table cell padding (default: 0) tablecellpadding="5"
tablecellspacing table cell spacing (default: 1) tablecellspacing="1"
tablecaption table caption shown above the timetable tablecaption="Timetable"
tablecolumnwidth width of a table column (default: undefined) tablecolumnwidth="80px"
tabledatacellwidth width of an entry cell (default:undefined); ALERT! it has no effect if a tablecolumnwidth was set tabledatacellwidth="80px"
tableheadercolor color of the table header tableheadercolor="%WEBBGCOLOR%"
tablewidth table width (default: undefined) tablewidth="100%"
todaybgcolor highlight today column with a background color todaybgcolor="black"
todayfgcolor highlight today column with a foreground color todayfgcolor="white"
tooltipdateformat tooltip date format (for %DATE% substition of tooltipformat); a subset of strftime conversion specifiers is supported (only date not time specifiers; see manual page or Foswiki:Development.ConvergeDateTimeFormattingModels) tooltipdateformat="%y/%d/%m"
tooltipfixleft positive or negative offset from the left to fix tooltip position tooltipfixleft="-163"
tooltipfixtop positive or negative offset from the top to fix tooltip position tooltipfixtop="0"
tooltipformat format of a tooltip (substituted variables: %DATE% - date (see tooltipdateformat attribute), %TIMERANGE% - time range, %DESCRIPTION% - description field, %LONGDESCRIPTION% - complete entry) tooltipformat="%DATE%<br/>%TIMERANGE%<br/> %DESCRIPTION% "
weekendbgcolor highlight weekends with a column background color weekendbgcolor="%WEBBGCOLOR%"
weekendfgcolor highlight weekends with a column foreground color weekendfgcolor="black"
wholetimerowpos whole-time event row position (default: top), allowed values: top, bottom, both wholetimerowpos="top"
wholetimerowtext text in the time line of the whole-time event row wholetimerowtext="24h"
wholetimerowtitle alternate text for the wholetimerowtext wholetimerowtitle="whole-time events"
workingbgcolor highlight working hours in the timeline with a background color workingbgcolor="white"
workingfgcolor highlight working hours in the timeline with a foreground color workingfgcolor="black"

  • You can use TextFormattingRules for some attribute values: tablecaption, name, navnext, navprev, wholetimerowtext.
  • Every attribute of %TIMETABLE% can also be used as plugin setting. You only have to use capital letters.
  • Every attribute setting can be overwritten by URL parameters (ttp_<attribute>=<value>), e.g. if you add a ?ttp_days=30 to the topic URL the TimeTablePlugin shows 30 days.


%TIMETABLE{compatmode="on" wholetimerow="on"}% %TIMETABLE{compatmode="1" startdate="12 Jun 2006" rotatetable="on" days="1" forcestartdate="on" timeinterval="60"}%
  • Mon,Tue - 9 - 14 - MONTEST1 - green
  • Mon - 9 - 11 - MONTEST2 - yellow
  • Mon - 10 - 13 - MONTEST3 - white,black
  • Mon - 12 - 15 - MONTEST4

  • Tue - 9 - 9:30 - TUETEST1
  • Tue - 9 - 10:00 - TUETEST2
  • Tue - 10:00 - 11:00 - TUETESTFO
  • Tue - 9 - 11:30 - TUETEST3
  • Tue - 12 - 15 - TUETEST4

  • Wed - 7 - 9 - WEDTEST1
  • Wed - 9 - 11 - WEDTEST2
  • Wed - 11 - 13 - WEDTEST3
  • Wed - 13 - 17 - WEDTEST4

  • Thu - 7 - 20:30 - THUTEST1
  • E Thu - THUTEST2 %TTCM{,green}%

  • Fri - 7 - 10 - FRITEST1
  • Fri - 12 - 15 - FRITEST2
  • E Fri - FRITEST3 %TTCM{10-10:30,cyan}%

  • Sat - 5 - 10 - SATTEST1 - white,blue
  • Sat - 6 - 21 - SATTEST2 - yellow
  • Sat - 11 - 22 - SATTEST3 - green

  • Sun - 9:18 - 17:35 - SUNTEST1 - red
  • Sun - 18:00 - 18:15 - SUNTEST2 - yellow

Plugin Settings

Plugin settings are stored as preferences variables. To reference a plugin setting write %<plugin>_<setting>%, i.e. %NEWPLUGIN_SHORTDESCRIPTION%

  • One line description, is shown in the TextFormattingRules topic:
    • Set SHORTDESCRIPTION = Render a weekly timetable

  • Debug plugin: (See output in data/debug.txt)
    • Set DEBUG = 0

  • Time format (default: 24, allowed: 12, 12pm, 12am, 12a.m.,12p.m., 12PM, 12AM, or 24):
    • # Set TIMEFORMAT = 12

  • Timetable start time (default: 7:00am):
    • # Set STARTTIME = 7am

  • Timetable end time (default: 8:00pm):
    • # Set ENDTIME = 8pm

  • Enable/Disable whole-time event row (default: disabled):
    • # Set WHOLETIMEROW = 1
    • # Set WHOLETIMEROWPOS = top
    • # Set WHOLETIMEROWTEXT = 24h
    • # Set WHOLETIMEROWTITLE = whole-time events

  • Character limitation of a description in a table cell line (default: 10):
    • # Set DESCRLIMIT = 15

  • Show timeline on the left, right or both sides (default: both):
    • # Set SHOWTIMELINE = left

  • Language (default: English - see manual page of Date::Calc perl module, e.g: English, Deutsch, Français, Español, Nederlands, Dansk, suomi, ...):
    • # Set LANG = Deutsch

  • Set tooltip offsets (depends on your Skins):
    • # Set TOOLTIPFIXLEFT = -163
    • # Set TOOLTIPFIXTOP = 0

  • Set unknown parameter message (default: %RED% Sorry, some parameters are unknown: %UNKNOWNPARAMSLIST% %ENDCOLOR% <br/> Allowed parameters are (see %SYSTEMWEB%.TimeTablePlugin topic for more details): %KNOWNPARAMSLIST%)
    • # Set UNKNOWNPARAMSMSG = Following parameter(s) is/are unknown: %UNKNOWNPARAMSLIST%

Note: Every attribute of %TIMETABLE% can also be used as plugin setting. You only have to use capital letters.

Known Issues and Bugs

  • font sizes larger than default font size (1em) may cause non matching timelines (browser dependent);
    workaround: don't use fontsizes larger than 1em; or use px units; or set textwrapper to plugin (e.g. %TIMETABLE{textwrapper="plugin" fontsize="18pt"}%)
  • some browsers (known: IE7) cut text lines of table cells with a row count equal 1 if textwrapper="browser" (default)
    workaround: use textwrapper="plugin" attribute

Plugin Installation Instructions

Note: You do not need to install anything on the browser to use this plugin. The following instructions are for the administrator who installs the plugin on the Foswiki server.

  • Download the ZIP file from the Plugin web (see below)
  • Install the required Perl modules (Date::Calc and POSIX), e.g: perl -MCPAN -e "install Date::Calc"
  • Unzip in your Foswiki installation directory. Do not forget to change file permissions. Content:
    File: Description:
    data/System/TimeTablePlugin.txt Plugin topic
    data/System/VarTIMETABLE.txt Documentation
    data/System/VarTTCM.txt Documentation
    data/System/VarTTTOPICSETUP.txt Documentation
    lib/Foswiki/Plugins/ Plugin Perl module
    lib/Foswiki/Plugins/TimeTablePlugin/ Plugin Perl library
    pub/System/TimeTablePlugin/timetabletooltips.js JavaScript library
    pub/System/TimeTablePlugin/example.png example image 1
    pub/System/TimeTablePlugin/example2.png example image 2
  • Configure the Plugin:
    • Run the configure script to enable the Plugin
    • Change the Plugin settings as needed
  • Test if the installation was successful:
    • see Examples section

Plugin Info

Plugin Author: Foswiki:Main.DanielRohde
Copyright: © 2006, Foswiki:Main.DanielRohde
License: GPL (GNU General Public License)
Plugin Version: V1.017 (23 Oct 2009)
Change History:  
V1.017 (23 Oct 2009) Foswiki:Main.DanielRohde: added hidettcm attribute requested by TWiki:Main.StevenCorfman; fixed line breakes in rotated tables;
V1.016 (14 Nov 2008) Foswiki:Main.DanielRohde: added overflow:auto style; fixed unknownparamsmsg bug;
V1.015 (29 Jul 2008) Foswiki:Main.DanielRohde: fixed rotated table bugs (tooltips, showweekend="off")
V1.014 (10 Jul 2008) Foswiki:Main.DanielRohde: added documentation requested by TWiki:Main.PeterThoeny; added rotated table feature requested by TWiki:Main.VickiBrown; fixed doc bug reported by TWiki:Main.JoeGainey
V1.013 (24 May 2007) Foswiki:Main.DanielRohde: fixed major time parsing bug reported by Foswiki:Main.LarsEik; fixed major bug: events with a time range before start time should not be displayed; fixed major TTCM bug reported by Foswiki:Main.ArthurClemens; added URL parameter feature; added new attributes (textwrapper, tableborder, tablewidth, tablecell...); added browser based text wrapping feature requested by Foswiki:Main.ArthurClemens
V1.012 (14 May 2007) Foswiki:Main.DanielRohde: fixed readTopicText bug reported TWiki:Main.JoachimRahn; added month header feature (attributes: showmonthheader, monthheader...); added new tooltip feature (clicktooltip...)
V1.011 (1 Mar 2007) Foswiki:Main.DanielRohde: added fontsize attribute; fixed HTML bug (validation);
V1.010 (19 Feb 2007) Foswiki:Main.DanielRohde: added tablecolumnwidth and tabledatacellwidth attributes requested by TWiki:Main.VickiBrown; added tooltip feature (tooltip... attributes);
V1.009 (7 Aug 2006) Foswiki:Main.DanielRohde: added duration feature; added time zone abbreviations; improved performance; fixed conflict rendering bug; fixed time zone bugs (whole-time event handling, topic include)
V1.008 (2 Aug 2006) Foswiki:Main.DanielRohde: added timezone feature requested by TWiki:Main.BenWatts; fixed major midday/midnight (12pm/12am) bug reported by TWiki:Main.BenWatts; fixed overlapping day bug; fixed periodic event bug; fixed minor bugs (stylesheet bug: annoying JavaScript errors; empty event row)
V1.007 (23 Jun 2006) Foswiki:Main.DanielRohde: fixed major bug (wholetimerow: empty column)
V1.006 (23 Jun 2006) Foswiki:Main.DanielRohde: fixed major mod_perl bug (paging in compatmode); added whole-time row feature; fixed minor bugs (empty column color; cutted text)
V1.005 (8 Jun 2006) Foswiki:Main.DanielRohde: fixed typos (documentation); added new features (compatmode only): inline time range feature and navigation; minor improvements (table header, ...)
V1.004 (31 May 2006) Foswiki:Main.DanielRohde: fixed typos (documentation, timeformat); added new attributes (days, forcestartdate, nowfgcolor, nowbgcolor); fixed minor bug (periodic repeater); added new event type (list)
V1.003 (24 May 2006) Foswiki:Main.DanielRohde: added compatibility mode (Foswiki:Extensions.CalendarPlugin event types); added documentation and new attributes; fixed bugs (bgcolor bug; conflict rendering; documentation; error logs; warnings);
V1.002 (22 May 2006): Foswiki:Main.DanielRohde: fixed major bugs (conflict handling, preferences); added documentation;
V1.001 (19 May 2006): Foswiki:Main.DanielRohde: fixed some major bugs (conflict entries, parameter handling, long descriptions); added documentation;
V1.000 (16 May 2006): Foswiki:Main.DanielRohde: Initial version
Foswiki Dependency: $Foswiki::Plugins::VERSION 1.021
CPAN Dependencies: CPAN:Date::Calc
Other Dependencies: none
Perl Version: 5.005
Plugin Home:

Related Topics: Plugins, DeveloperDocumentationCategory, AdminDocumentationCategory, DefaultPreferences, SitePreferences

-- Foswiki:Main.DanielRohde - 16 May 2006
Topic attachments
I Attachment Action Size Date Who Comment
TimeTablePlugin.md5md5 TimeTablePlugin.md5 manage 168 bytes 23 Oct 2009 - 12:29 DanielRohde  
TimeTablePlugin.sha1sha1 TimeTablePlugin.sha1 manage 192 bytes 23 Oct 2009 - 12:29 DanielRohde  
TimeTablePlugin.tgztgz TimeTablePlugin.tgz manage 79 K 23 Oct 2009 - 12:28 DanielRohde  
TimeTablePlugin.zipzip manage 81 K 23 Oct 2009 - 12:28 DanielRohde  
TimeTablePlugin_installerEXT TimeTablePlugin_installer manage 4 K 23 Oct 2009 - 12:28 DanielRohde  
example.pngpng example.png manage 32 K 13 Jan 2009 - 05:11 CraigBowers  
example2.pngpng example2.png manage 13 K 13 Jan 2009 - 05:11 CraigBowers  
Topic revision: r5 - 23 Oct 2009, DanielRohde - This page was cached on 20 Mar 2018 - 15:38.

The copyright of the content on this website is held by the contributing authors, except where stated elsewhere. See Copyright Statement. Creative Commons License