# WebCalendar User Manual

WebCalendar Version: 1.9.13

## Table of Contents

- Introduction
- Users and Events
- Repeating Events
- Public Access
- Remote Subscriptions
- External Users
- NonUser Calendars
- Categories
- Views
- Groups
- Layers
- Assistant/Boss
- User Access Control
- Preferences
- FAQ
- Licensing
- Getting Help
- Glossary
- History

## Introduction

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.

↑ 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:

Notes:

- If you did not create the event, then you can only delete the event from your own calendar. Other users will still have the event on their calendar.
- If you did not create the event, you will not be able to edit the event. Only the user who created the event can edit it.
- If you see an event on another user's calendar that is not on your calendar, the event details page will provide a link to add the event to your calendar.
- All changes to an event (accepting/rejecting, updating, deleting) are logged and are viewable by the system administrator.

↑ top

## Repeating Events

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.

### Ending

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

### Frequency

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.).

### Daily

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.

### Weekly

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.

### Yearly

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

### Exclusions/Inclusions

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

↑ 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 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 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.

↑ 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

## Categories

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

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

## Groups

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 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.

↑ top

## Layers

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 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.

↑ top

## Assistant/Boss

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

## Preferences

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

### Settings

Language
  Specify the language you would like to use in WebCalendar
Timezone Selection
  Specify your local timezone.
Fonts
  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:45) 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

### Email

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.

### Subscribe/Publish

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.

### Colors

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

## FAQ

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

## Licensing

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 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

## Glossary

Activity Log
  A summary of recent updates to calendar data
Assistant
  A calendar user that has been designated by another calendar user (the Boss) to help manage their calendar
Boss
  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
Group
  A mechanism of dividing up a large set of users into smaller sets of users
Layer
  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
Notification
  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)
Reminder
  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)
View
  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