TIP FullCalendarPlugin is not installed on Foswiki.org.

Full Calendar Plugin

Web 2.0 Calendar application.

Adam Shaw has produced a great Web 2.0 Calendar UI, the jQuery FullCalendar Plugin. This Foswiki plugin provides the backend calendar management code and the js/html interface ontop of the calendar UI for the creation and editing of calendar events.


As well as one-off events, repeating events can be created - daily, weekly, monthly, yearly, every n, every dow, until end-date or no end-date. And exceptions can be created in repeating events.


You can have multiple calendars per page and the macro can be called with or without parameters.
Parameter Description Default
"..." or calendartopic="..." Optional. This is the topic where created events will be stored and where they will be searched for when displaying events. The format is "[<web>.]<topic>". WebCalendar
reltopic="..." Optional. All objects managed by the ObjectPlugin can have a reltopic parameter that points to a related <web>.<topic>, this is so that a single topic can act as the cache for all objects with the aim of helping performance. The FullCalendarPlugin uses this feature. If the current topic matches the specification of the calendartopic, then there is no specified reltopic. Else, reltopic is the current topic.
viewall="..." Optional. 1 or 0. Depending on the setting of reltopic, all events stored in the calendartopic can be viewed or just the ones that match the reltopic setting.  

The Calendar Event Object

The event attributes are defined in the EventObject topic. The default definition is in the %SYSTEMWEB%, but can be overridden by a new EventObject in the %USERSWEB% and finally by one defined in the current web.

Creating and Editing Calendar Events

Just click on a day in the calendar to create a new event via the input form. Click on an existing event to edit its properties via the input form. If the selected event is part of a repeating sequence, the options are to:
  • Change this instance only (Create a new event)
  • Change all instances (Update the original event record)
  • Change all instances from this point onwards (Create a new event record)

Note that all newly created events will be done so with the matching reltopic setting.

Other Event Sources

All Foswiki Macros defined in the calendartopic topic are expanded. If they produce suitably formatted event records, these are then included in the displayed event set. Note that a dynamic search could have a significant impact on performance when browsing the calendar. The format should be as follows:
Parameter Description
type="event" Required to be recognised as an event object.
uid="..." Required. A unique ID of the event or event group.
category="external" Required as these events will not be editable.
allDay="..." Required. 0 or 1. All day event or not.
durationDays="..." Required. The number of days the event lasts for. Starts at 0.
startDate="..." Required. ISO8601 date format, YYYY-MM-DD.
startTime="..." Required. ISO8601 time format, HH:MM:SS.
endTime="..." Required. ISO8601 time format, HH:MM:SS.
title="..." Required.
url="..." Optional. A URL to launch in a new tab/window if the event is clicked on the calendar.
eventSource="..." Optional. A text string defining the source of the event.


The EventObject and FullCalendarEventTemplate topics are provided as the default installation. View WebCalendar to see the result. As indicated above, you can create your own EventObject with attributes relevant to your installation and in UserCalEventTemplate you can customise the userFormElements TMPL to match your new event object.

ALERT! Note, the default FullCalendarEventTemplate expects the %USERGROUP% variable to be set to a Group topic that gets parsed to provide a multi-select list of attendees. You can, off course, change this to be a free text field with auto-complete.

Future Improvements

Integration with ActionTrackerPlugin

This feature is already coded but currently commented out because it should be configurable via configure .

Multiple event edit forms per page/web

Currently only one event form is ever loaded per page so if you load different calendars from different webs (which can have different edit forms) it's first come, first served.

User Specific Calendars

Each user can have their own calendar on which they can view the events of other calendars they are subscribed to.

Agenda List View

The events displayed on the calendar will also be displayed in a chronological list.

Plugin Installation Instructions

You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.

Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".

If you have any problems, or if the extension isn't available in configure, then you can still install manually from the command-line. See http://foswiki.org/Support/ManuallyInstallingExtensions for more help.

Plugin Info

Plugin Author: Foswiki:Main/DavidPatterson
License: GPL (Gnu General Public License)
Release: 1.1
Version: (2010-11-17)
Change History:  
17 Nov 2010: quick update to make it compatible with FW 1.1.x and the latest ZonePlugin on 1.0.9
06 Aug 2010 First release
15 Apr 2010 Demo version
Home: Foswiki:Extensions/FullCalendarPlugin
Support: Foswiki:Support/FullCalendarPlugin

PackageForm edit

ExtensionClassification Interface and Visualisation, User interactivity
ExtensionType PluginPackage
Compatibility Does not work with Foswiki 1.1.9 due to JQuery changes. (curCSS has been removed).
DemoUrl http://
SupportUrl FullCalendarPlugin
ModificationPolicy CoordinateWithAuthor
Topic attachments
I Attachment Action Size Date Who Comment
FullCalendarPlugin.md5md5 FullCalendarPlugin.md5 manage 177 bytes 11 Aug 2010 - 16:21 DavidPatterson  
FullCalendarPlugin.zipzip FullCalendarPlugin.zip manage 66 K 17 Nov 2010 - 09:01 DavidPatterson quick update so it can also work with FW 1.1.x
FullCalendarPlugin_installerEXT FullCalendarPlugin_installer manage 4 K 11 Aug 2010 - 16:21 DavidPatterson  
Topic revision: r8 - 11 Aug 2015, GeorgeClark - This page was cached on 15 Jan 2020 - 18:54.

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