Calcium is an interactive web calendar application which
allows you to share event information via the Internet or your
intranet. The software is installed on your web server (or
hosted on ours), and you can use it with any web browser - no
other software is needed. One installation can provide as many
calendars as you like, and everyone (or just anyone you allow)
can use their favorite web browser to view, edit, and add
Calcium will work with any web server, on any platform that runs Perl -
that means it will run on just about any modern computer. It produces
plain HTML so you can use any browser; even text-only ones. (It does use
interaction, including calendar and system administration, is done with a
browser; once installed, you never need to touch the web server again.
Dynamic Calendar Merging
A calendar can include events from one or more other calendars. This
allows you to do things such as have a department-level calendar that
shows events from a group of employees' calendars. All included data are
"live", so when an included calendar is modified, the group calendar
will reflect the changes automatically. Calendar security lets you prevent
entire calendars from being included, or you can mark specific events on a
calendar as private. You can also choose to include only events from
specific Event Categories.
Calendar Views and Formats
There are a number of different ways you can view your calendars. There's
the traditional calendar grid format, as well as a list format and a Time
Plan format. There are also special "Planner" views of multiple calendars,
for calendars using the Dynamic Include features. You can choose to
display a day, week, month, quarter, or year at a time, and opt to display
only dates that have events. Different users viewing the same calendar can
pick whatever format they prefer without affecting other users.
Calcium provides a number of built-in email capabilities:
Email Aliases can be defined, so you can send mail to a list of addresses
with a simple alias (e.g. "Managers") instead of repeatedly entering a
long list of addresses.
- Notification When you create an event, you can specify
addresses to automatically email a notification to. For example,
when you schedule a meeting you can have Calcium send email to
whoever should attend.
- Reminders Calcium can automatically send email Reminders
before an event occurs. You can select how long before the event
the email should be sent; e.g. 1 hour before, and 5 minutes
before. These are scheduled at the time an event is created or
edited.(Note: requires purchase of "Email Reminders"
- Subscriptions You can let any user who can view a calendar
sign up to receive email about an event before it occurs. Users
can choose to receive mail about all events in a calendar, events
in particular categories, or just specific events of their choice.
Users can sign up for any event that is scheduled to occur in the
future. (Note: requires purchase of "Email Reminders"
- Auditing Calcium can be configured to send email to the
calendar administrator (or anyone else) for any calendar
activity. (See Auditing below.)
You have many options for controlling how calendars look; some of the
items you can specify:
In addition, Calcium has very good CSS support. Advanced users can have
complete control over the styles in calendars; most items have their own
class names defined, making it easier to refer to particular items in the
display. Each calendar can be configured to refer to its own external style
sheet, or style definitions can be included directly in the page.
- the foreground and background color of almost every display feature;
each event can use the default color for the calendar it's in, the
category it belongs to, or you can specify colors when the event is
created or edited
- the font and size of event text, calendar labels, and controls
- the sorting order for events in the same day
- which menus to display below calendars
- the headers and footers for calendars; text, images, forms, or any
valid HTML code can be used. This makes it easy to have your
calendars fit in with the rest of your web pages.
- whether or not to display weekend days
- whether or not to display the repeat controls on the event edit
- an image for the background of the calendar page
Custom Event Fields
You can define your own additional fields for events, and each of your
calendars can have its own set of custom fields definitions. The input
type can be customized for each field; for example, you might want to
specify a list of options for a field, and let the user select one of
those when adding an event. You can also define custom input and
output Templates to use when displaying your
custom fields.(Note: requires purchase of "Custom Fields" option.)
Simple templates can be defined, to customize the event input form,
event popup windows, mail messages, the List View details column, and
Each calendar can provide an RSS feed of upcoming events. Feeds can be
in RSS (0.9, 1.0, 2.0), RDF, and Atom formats.
Searching and Filtering
You can specify a Filter string, so that only events which match the
string will appear on your calendar. Or, you can search for and display a
list of all events matching a string in a given date range. Full Perl
regular expression matching is supported. In addition to matching text,
you can also search and filter on Event Categories.
For adding events, it's also possible to search for an open time
slot in multiple calendars.
Security and Users
Four levels of calendar security can be assigned to a user:
The permission levels are incremental, so someone with Edit permission can
also Add and View events. Security at each level is optional, so you could
allow anyone to View a calendar without supplying a name and password, and
still require a name and password for editing. Different security levels
can be set for each calendar you create. Calcium provides built-in user
login capabilities, or it can use your web server's authentication (e.g.
htaccess files), or an external LDAP directory. There is no limit to the
number of different users you can create, and you can define User Groups,
to more easily manage large numbers of users.
- Administer allows users to configure the calendar
- Edit allows users to modify and delete existing events
- Add allows users to create new events
- View allows users to view calendars
You can choose to
authenticate users against your existing LDAP directory; you still
have the option to create and use Calcium's built-in user logins at
the same time.
A calendar can be
configured so that newly submitted events require approval before
they appear. Users with "Add" permission will be allowed to add
events, but they won't actually show up in the calendar for all users
until a user with "Edit" or "Admin" permission approves them.
Calcium supports the standard iCalendar data format. This makes it
easy to share data with other calendar products, like Apple iCal,
Microsoft Outlook, and Google's calendar. You can:
You can also use the iCalendar format for Calcium
Dynamic Add-In Files.
- Subscribe to external iCalendar files from a Calcium calendar
- Publish from an external application to a Calcium calendar
- Subscribe to a Calcium calendar from an external application
- Import and Export events using iCalendar text files
You can define any number of Categories for events. They can be used to:
Any number of categories can be assigned to each event. Categories can be
defined System-wide for all calendars, and each calendar can also have it's
- define default color settings for events
- restrict which events are included via
Dynamic Calendar Merging
- specify criteria for Searching and Filtering
- select events for email subscription notification
- select events for bulk deleting, or exporting
Defined Time Periods
Pre-defined Time Periods can be used when entering and displaying events.
For example, a school might want to define "Period 1", "Period 2", etc.
Then, instead of having to enter "8:00 - 8:50" for an event, you could just
select "Period 1". You can choose whether to have the Period name, actual
times, both, or neither display with the event text.
Calcium can display calendars using Fiscal Years. You can use a Fixed
Year, which always starts on the same date, or a Floating Year, which
is always 364 days/52 weeks long. You can (of course) specify the
start of your year, and view by Fiscal Period, Fiscal Quarter, or
Event Editing Restrictions and Validation
You can choose to specify that:
- Only the user that created an event can edit or delete it
- Events that have a time conflict with existing events cannot be
- "Historical" events cannot be added; no events which occur before
the current date are allowed to be added.
- Events that are "too far in the future" cannot be added. You
specify the future limit.
- No "last minute" changes are allowed; you can configure the size of
of the allowable time window
- Events must meet maximum or minimum duration criteria
- Certain fields - like category - are required
Flexible and Powerful Calendar Entries
A simple form is used to create new events, making it easy to specify
times, colors, etc. If you like, you can enter extra text that will appear
in a separate pop-up window, or have the event text be a link to another
web page. Calcium will automatically detect web links and email addresses
in event text, and automatically make them active hyperlinks. Event and
popup text can also include any valid HTML, including images, animations,
or even sounds. (An administration option can be used if you want to
prevent users from including HTML in events.)
Events can occur just once, or you can enter repeating events in a variety
of ways. An event can repeat every day, every other day, every 3rd week on
Tuesdays, the First and Third Saturday and Sunday of Every Other Month,
etc. Simple pull-down menus on the event entry form make it easy.
Dynamic Add-In Files
Add-In files provide another way to add events to your calendars. These
files can define events such as phases of the moon, holidays, birthdays,
paydays, or anything else. Add-Ins work like dynamically included
calendars, and you can choose which Add-Ins to use for each calendar; you
can also specify colors and labels to use for events from each Add-In.
Add-In files are plain ASCII text - they can be in a simple
Calcium-specific format, or you can use the Internet standard iCalendar format. An Admin screen is
available to automatically retrieve Add-Ins from anywhere on the Internet,
such as sites like
iCalShare. There are also a few available from this
Headers and Footers
Customized header and footer text, images, forms, or any valid HTML code
can be assigned for each calendar. This makes it easy to have your
calendars fit in with the rest of your web pages.
Easy Calendar Navigation
Simple links provide easy navigation to other months, to other calendars,
to alternate views of the calendar, to event editing forms, and to
A language can be specified for each calendar, so users can see all text,
including the days of the week, names of months, and the various prompts
and labels in their native language. If a language you want isn't
included, it's easy to add your own translations; all the strings are in
You can define Calendar Groups, and assign any calendar to one or more
groups. You can then restrict calendar inclusion by group, and limit which
groups are displayed in the Calendar Select list.
You can keep track of who is doing what with your calendars; notification
of operations can be logged to a file, or emailed to an administrator. You
can choose to audit any combination of View, Add, Edit, or Administration
Event data can be imported and exported in various ASCII formats,
including iCalendar and
Microsoft Outlook CSV files. Data can be imported from an ASCII
file on your local machine, just using your browser - there is no need to
copy files to the machine Calcium is running on.
Calcium comes with the complete Perl source code; if you have the
expertise, you're free to make customizations and add features for
your own use. While we can't provide support for your modifications,
we're happy to do our best to help answer questions about the
We also provide consulting services and custom programming. If you have
specialized needs or require certain features which are missing,
please drop us a note.