WebCalendar Version: 1.9.9
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 first public release of WebCalendar was in December of 1999.
↑ topWebCalendar 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:
Repeating events may be used to create recurring event entries on your calendar. This version of WebCalendar has added many new features for specifying repeating events in an attempt to become more compliant with RFC2445 (ical). There are two modes of operation; Normal and Expert. These modes are selectable when creating an event, but can 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.
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.
This option is no longer valid, as it is now rolled into Monthly ( by Day) using negative day (ByDay) values.
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.
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 Only |
Week Start |
ByDay | ByMonth | ByMonthDay | BySetPos | ByWeekNo | ByYearDay | Exclusions/ Inclusions |
None | |||||||||||
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 Position |
X | X | X | X | |||||||
Monthly by Position (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 |
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).
↑ topIf 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 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.
↑ topIf 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 can be notified via email when the event is created, and updated. In addition, external users can 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 an ics file as an attachment for inclusion in their own calendar client.
External Participants should be specified one name per line (email address required for email communication). All of the following would be legal entries:
Joe Smith Smith, Joe Joe Smith <jsmith@xxx.com> <jsmith@xxx.com>
Email addresses within '<' and '>' characters will receive email notifications and reminders.
↑ topNonUser 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.
↑ topIf 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.
↑ topViews* 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.
↑ topIf you system is not configured to use Groups*, you may skip this section.
Groups allow systems with many users to divide users into smaller sets. 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.
↑ topLayers* 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 text color to be used when that event is displayed on your calendar.
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.
↑ topIf 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.
↑ topIf 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.
↑ topVarious components of WebCalendar can be customized by modifying your user preferences.
TIP: WebCalendar setup and configuration issues are documented in the "WebCalendar System Administrator's Guide".
↑ topWebCalendar is distributed under the open source GNU General Public License. If you have questions about this license, please read their GPL FAQ.
↑ topTry the Help/Troubleshooting forum for WebCalendar, hosted at github.com:
https://github.com/craigk5n/webcalendar/issues
If you encounter a bug, please check the list of open and pending "patches". If you do not see anything similar, submit a new pull request.
↑ top