WebCalendar User Manual

WebCalendar Version: 1.3.0

Table of Contents


WebCalendar is a calendar system. It is intended to be easy to setup and use while still providing advanced features and flexibility to serve the purposes of a widely varied user base. It can also be used as an events calendar for an organization or as a scheduling system for an intranet.

WebCalendar is an open source application. What does this mean for you? You get to use the application free of charge. (See the licensing section for more information on licensing.) Additionally, you have access to the WebCalendar developer community. You can post questions to various forums and have knowledgeable developers respond.

The primary site for WebCalendar development is at SourceForge.net:


The first public release of WebCalendar was in December of 1999.

↑ top

Users and Events

WebCalendar can be configured to operate in either single-user or multi-user mode.
Note: If your WebCalendar is a single-user configuration, a large portion of this document will not apply.

All events in WebCalendar must be associated with one or more users. There is no limit to the number of users that can use WebCalendar (aside from system resources such as database space). Each participant will have a status for the event: "Waiting for Approval," "Approved" or "Rejected."
Note: If your WebCalendar is configured to not require approvals, then participants will always appear as "Approved" for all events.

If you add an event with yourself as a participant, your status will be "Approved" by default. If you include any other users, then their status will be "Waiting for Approval" until they either approve or reject the event. If configured to do so, WebCalendar will email participants notifying them that there is a new event waiting for approval on his/her calendar.
Note: As the creator of the event, you will not receive this email notification because your status for the event is automatically set to "Approved."

When viewing the details of an event, the status of event participants will be designated as shown below:

Event Status Screenshot

↑ top

Repeating Events

Repeating events may be used to create recurring event entries on your calendar. This version of WebCalendar has adding many new features for specifying repeating events in an attempt to become more compliant with RFC2445 (ical). There are two mode of operation, Normal and Expert Mode. These modes are selectable when creating and event, but will be automatically selected based on the values of existing events. Please refer to RFC2445 for a detailed discussion of complex recurrence rules.


You may elect to have an event repeat Forever, Use end date or have the event repeat a set Number of times.


The "Frequency" field allows you to specify how often the event occurs. Typing "0" or "1" in the "Frequency" field tells WebCalendar the event occurs every time (every day for daily, every month for monthly, etc.). Typing "2" in the "Frequency" field will indicate the event should occur every other time (i.e. every other day for daily, every other month for monthly, etc.).


If you select "Daily", the event will repeat at the same time every day until the end date (if specified) or the Number of times is reached. You can also select Weekdays Only to cause the event to skip weekends.
Expert Mode: Adds the option to specify individual days of the week (ByDay) as well as selecting specific months (ByMonth) that the event will repeat.


If you select "Weekly", the event will repeat every week on the day(s) selected until the end date (if specified) or until the End. You may select specific ByDay values to have your event repeat more than one day per week.
Expert Mode: Adds the option to specify specific months (ByMonth) that the event will repeat.

Monthly (by day)

If you select "Monthly (by day)", the event will repeat on the same weekday of the month every month until the specified End. For example, if the initial date is the second Monday of the month, the event will repeat on the second Monday of each month.
Expert Mode: Adds the option to specify individual days of the month (ByDay) as well as selecting specific months that the event will repeat. You have the option to select any combination of days within the month using the triple-state buttons, for example, you could select the the 1st Sunday (1SA), 3rd Thursday (3TH), and 5th Friday (5FR) of the month. You can also select days from the end of the month, for example -2SA would be the next to the last Saturday of the month. Any value that doesn't exist within the month will be ignored, like in the example above, not every month has a fifth Friday. In addition, specific months (ByMonth) within the year can be specified.

Monthly (by day (from end))

This option is no longer valid, as it is now rolled into Monthly ( by Day) using negative day (ByDay) values.

Monthly (by date)

If you select "Monthly (by date)", the event will repeat on the same date of the month every month until the End. For example, if you the initial date is May 12th, then the event will repeat on June 12th and so on.
Expert Mode: Adds the options to select days of the week (ByDay), specific months ByMonthDay to repeat and an option to select specific dates within the month (ByMonthDay). With this option you can select any combination of dates within the month, for example, the 3rd of each month (3), the 31st (31), the second from the end of the month (-2) using the triple-state buttons.

Monthly (by position)

If you select "Monthly (by position)", the event repeats will be calculated for the month using the End and ByDay, then the option (BySetPos) will be applied. For example, if you selected MO,TU,WE the normal habit would be to repeat every Monday, Tuesday, and Wednesday within the month. Specifying (BySetPos) 7 would narrow the final selection to the 7th element of the original set of dates. It's sounds confusing I know...just try programming it :)
Expert Mode: Adds the option to specify specific months to repeat. Please note that (BySetPos) is applied after all other ByXXX values, so selecting (ByMonth) may yield unexpected results.


If you select "Yearly", the event will repeat on the same date every year until the End.
Expert Mode: Adds the (ByDay), (ByMonth), and (ByMonthDay) as described above. These settings are applied to each month specified by the (ByMonth)...basically like the Monthly (by Day/Date) options. Also, two user entered values are available. ByWeekNo allows one or more week numbers to be entered separated by commas (1,2...53,-53,-52...-1). ByYearDay allows the user to enter days of the year to repeat separated by commas (1,2,...366,-366,-365...-1).

Please Note: All ByXXX values are evaluated by ANDing the values together with the following precedence. BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY, and BYSETPOS


This option allows the exclusion or inclusion of dates for the repeat sequence. This setting is applied after all ByXXX values are evaluated.


Available Repeat Option Matrix
Repeat / Repeat
  Type   / Options
Ending Frequency Weekdays
ByDay ByMonth ByMonthDay BySetPos ByWeekNo ByYearDay Exclusions/
Daily X X                 X
Daily ( Expert ) X X     X X         X
Weekly X X     X           X
Weekly (Expert ) X X   X X X         X
Monthly by Day X X                 X
Monthly by Day
(Expert )
X X   X X* X         X
Monthly by Date X X                 X
Monthly by Date
(Expert )
X X     X X X       X
Monthly by
X X           X     X
Monthly by
( Expert )
X X     X X   X     X
Yearly X X                 X
Yearly ( Expert ) X X     X* X X   X X X
Manual                     X
* Expanded ByDay Option allowing more granular selection
↑ top

Public Access

If your system is not configured to allow Public Access, you may skip this section.

Public Access is useful if you want to publish part of the calendar to a larger user base that isn't allowed to edit it.

If Public Access is enabled, an extra user will show up when creating a new event: the 'Public Access' user. To make an event visible to users that aren't logged in, simply select the 'Public Access' user as a participant for the event(s).

↑ top

Remote Subscriptions

If your system is not configured to allow Remote Subscriptions, you may skip this section.

If your administrator has enabled Remote Subscriptions, you may enable it for your personal account by clicking 'Admin' => 'Preferences' => 'Subscribe/Publish' and selecting 'Yes' & save.

If a user has this option enabled, the URL for accessing the calendar via an external iCalendar-aware application (such as Mozilla Calendar or Apple's iCal) will be displayed.

If the 'Public Access' calendar is enabled, the Remote Subscriptions service can be enabled by following the same procedure as above in the Public Access preferences panel.

↑ top

External Users

If your system is not configured to allow External Users, you may skip this section.

External Users* allow you to add participants to an event that are not WebCalendar users. When adding or editing an event, you will see a free text area titled "External Participants." In this area you can enter names of participants. If your system is configured to allow it, the External Participants will be notified via email when the event is created, and updated. In addition, external users will be reminded of an upcoming event via email, if the event has a reminder set. They will not be provided a URL to access the calendar but will receive and ics file as an attachment for inclusion in their own calendar client.

External Participants should be specified one name per line (email address optional). All of the following would be legal entries:

Joe Smith
Smith, Joe
Joe Smith <jsmith@xxx.com>

Email addresses within '<' and '>' characters will receive email notifications and reminders.

↑ top

NonUser Calendars

NonUser Calendars* allow you to maintain a calendar that is not associated with a user. Users can then either view the NonUser Calendar (if the system settings allow it) or add the NonUser Calendar as a layer to their own calendar. For additional information on layers, see the layers documentation.

This can be used for resource management such as scheduling usage of a conference room. If used in combination with views, you can quickly & easily view the availability of multiple conference rooms on the same page.

↑ top


If your system is not configured to use categories, you may skip this section.

Events may be associated with one or more categories, but it is not required. Categories can be user-level or global. Each user maintains his/her own list of user-level categories, while the system administrator maintains the list of global categories.

When creating or editing event, you may specify the categories for the event. If the category you select isn't a global category, and you select participants other than yourself for that event, other users will see "None" as the category. If you selected a global category, all users will be able to see the same category.

When viewing the calendar (month, week or day), a selection box is displayed near the top of the page that allows you to filter events based on a category. When you select a category from this menu, only events associated with that category will appear on your calendar.

If enabled, icons can also be uploaded and assigned to categories to be displayed before the event name. You will also be able to choose an icon from existing icons that have already been uploaded. This requires that a folder named icons exist in the WebCalendar directory.

↑ top


Views* allow you to look at the calendar of one or more users (or NonUser Calendars) at the same time. You can create a new view by clicking "Views" in the admin panel.

↑ top


If you system is not configured to use Groups*, you may skip this section.

Groups allow systems with many users to divide users into smaller groups of users. Additionally, if configured to do so, users can only access calendars of users in the same group(s) (both when viewing the list of available calendars or when selecting participants for an event.

When adding or editing events, a "Select..." button will be available. This button will popup a user selection window that will allow event participants to be selected by group.

↑ top


Layers* allow you to overlay one or more calendars on top of your own. You can add a new layer to your calendar by clicking "Layers" in the admin panel.

When adding the layer, you can choose a color. When an event from that layer is displayed on your calendar, the text of the event will appear in the specified color.

TIP: On slow servers, you may find that layers cause the month view to be considerably slower. Set your default view to "Week" rather than "Month" in your Preferences.

TIP: If you have more than one configuration of users that you would like to use with layers, you can create more than one "Daily" View.

↑ top


If your system is not configured to allow Assistant Mode, then you may skip this section.

Assistant Mode allows one user (the Assistant*) to help manage the calendar of another user (the Boss*). The Boss creates the relationship in the calendar by clicking "Assistants" in the admin panel.

When the Boss has selected one or more assistants, each assistant will see a new "Manage Calendar of" link at the bottom of the page. This link will quickly bring the Assistant to a view of the Boss' calendar. When adding an event from this page, the default participant will be only the Boss.

↑ top

User Access Control

If your system is not configured to use User Access Control, then you may skip this section.

If enabled, you may now set very detailed access controls to your calendar for other WebCalendar users. You can specify their access view,edit, and approve entries on your calendar and can further specify access to events, tasks, and journals (coming soon).

Access can also be granted/restricted to allow invitations, emails, and a very restrictive setting Can See Time Only that prevents the other user from viewing any details of your events.

The DEFAULT CONFIGURATION selection will set the access for all users not otherwise granted/restricted access to your calendar.

↑ top


Various components of WebCalendar can be customized by modifying your user preferences.


Specify the language you would like to use in WebCalendar
Timezone Selection
Specify your local timezone.
Your preferred font family.
Preferred View
Select the view you wish to see after logging in. Available options include day view, week view, month view, or year view.
Display weekends in view
Specify whether you want Saturdays and Sundays to appear in month and week views, as well as in mini-calendars.
Display description in printer day view
Specify whether you want to see descriptions in printer day view.
Date format
Specify how you would like dates to be displayed
Time format
Specify either 12-hour (3:45pm) or 24-hour (15:14) time format
Time interval
Specify how many minutes each time block represents in the day and week display
Auto-refresh calendars
If set to "yes," the day, week, and month views will automatically reload after the duration specified in the Auto-refresh time textbox.
Auto-refresh time
Specify the number of minutes WebCalendar will wait before automatically refreshing pages.
Display unapproved
Specify whether events that have been added to your calendar but not yet approved should display on your calendar (in a different color)
Display week number
Specify whether the week number should be displayed in month and week views, as well as mini-calendars
Week starts on
Specify whether you want the week to start on Sunday or Monday
Work hours
Specify the default time range to display in day and week views
Specify timed event length by
Specify the preferred event end time format, Duration or End Time.
Display small task list
Specify whether small Tasks windows are visible in calendars.
Display tasks in Calendars
Specify whether Tasks are displayed in-line with events. The task will be displayed on the due date. If the due date has passed without task completion, the task will move to the current day until completed.
Export VTIMEZONE in ics files
Specify whether VTIMEZONE elements are exported with ics files. This can have a negative impact on performance, so it's recommended that this option only be enabled if needed.
Default Category
Specify the default category that should be selected when adding a new event


Event reminders
Specify if you wish to receive an email reminder for events that specify a reminder should be sent
Events added to my calendar
Specify if you wish to receive email when another user adds an event to your calendar
Events updated on my calendar
Specify if you wish to receive an email when another user updates an event on your calendar
Events removed from my calendar
Specify if you wish to receive an email when another user removes an event from your calendar
Event rejected by participant
Specify if you with to be notified if a participant of an event on your calendar has rejected the event

When I am the boss

Email me event notifications
Specify if you wish to receive email when one of your assistants adds an event to your calendar
I want to approve events
Specify if you want to approve events added by any or your assistants
Display if created by Assistant
If enabled, the 'Created By' field in view_entry will include assistant's name in addition to the Boss' name.


Allow remote subscriptions
If enabled, allows users to publish their calendars out to an external Calendar client such as Sunbird or Apple Ical using the URL displayed.
Allow remote publishing
If enabled, allows users to two-way synchronize their calendars with an external Calendar client such as Sunbird or Apple Ical using the URL displayed.
Enable FreeBusy publishing
If enabled, allows users to publish their FreeBusy schedule using the URL displayed.


Document background
Specify the page background color
Document title
Specify the color of the page title
Table cell background
Specify the default background color for table cells
Table cell background for current day
Specify the background color for the table cell containing the current date
Table cell background for weekends
Specify the background color for table cells that represent a Saturday or Sunday
↑ top


Why do weeks start with Sunday instead of Monday?
The default setup of WebCalendar is to start weeks on Sunday. Your system administrator can change the system default setting. You can change the setting just for you in your Preferences.
Can I sync events with Palm/PocketPC/Outlook/iCal?
Export support is available for Palm and anything that supports iCal or vCal. Use the "Export" link at the bottom of each page.
Why can't I edit an event that another user added to my calendar?
If another user adds an event to your calendar, you cannot edit the event. This is a security restriction. You can reject the event rather than approve it, or you can delete the event from your calendar.
I'm trying to add a user as a participant to an event, but they do not show up in the list of users.
Your system administrator has enabled a feature that only allows you to view users that are in the same group(s) that you are in. Make sure the user is in one of the same groups that you are in.

TIP: WebCalendar setup and configuration issues are documented in the "WebCalendar System Administrator's Guide".

↑ top


WebCalendar is distributed under the open source GNU General Public License. If you have questions about this license, please read their GPL FAQ.

↑ top

Getting Help

Try the Help/Troubleshooting forum for WebCalendar, hosted at SourceForge.net:


If you encounter a bug, please check the list of open and pending bugs. If you do not see anything similar, submit a new bug.

↑ top


Activity Log
A summary of recent updates to calendar data
A calendar user that has been designated by another calendar user (the Boss) to help manage their calendar
A calendar user that has designated another calendar user (the Assistant) to help manage his calendar
External User
A calendar participant that does not have a calendar user account
A mechanism of dividing up a large set of users into smaller sets of users
A function that allows a user to overlay another user's calendar on top of his own calendar so that the standard day, week and month pages show both his own and the layered user's events
NonUser Calendar
A participant to a calendar event that is not a user
An email message that is sent when an event is added, removed or updated in the user's calendar by another user
Preferred View
The standard page (day, week, month or year) that will be presented to the user after logging in (set in user Preferences)
An email message that is sent before an event to remind the participant
Time Interval
The amount of time each "block" will represent in either the day or week view (set in user Preferences)
A customized page that presents the events of selected users
Work Hours
The default hours to show in the week and day view where events are displayed in blocks of time (set in user Preferences)
↑ top

Valid HTML5!