Open Source

Get your schedule together with a daily dose of Calcium

From the cold arctic nights of Alaska comes a new calendaring application that caught the eye of Jack Wallen, Jr. Read on to see how this efficient and reliable centralized calendaring application made its way to Jack's Linux box and his Linux heart.

I've been on a mission for some time now, born of my own stubborn, bullheaded desire to integrate Linux with this Windows world in which I work. So far, I’ve encountered many hurdles, some of which I’ve overcome with ease. One hurdle, however, I have yet to overcome: calendaring. MS Outlook lovers all bask in their ability to look at each other’s schedules, force meetings into a coworker’s day, request rendezvous, and do just about anything their calendar-centric hearts desire.

Linux, on the other hand, still struggles on this plane. Sure, tons of calendar applications are out there, but do any of them have calendar functionality that compares to Outlook’s? Some are on their way to achieving it. Ximian, for instance, is working to get Evolution up and running with Outlook interoperability. Brown Bear Software has its own version of the ever-popular calendaring application, and this is what I’m going to examine in this Daily Drill Down. I'll take a look at an amazingly simple-to-use and reliable interactive Web calendaring program from Brown Bear Software and show you that Linux is nowhere near out of the game as far as the enterprise is concerned.

What Calcium does
Calcium does one thing and does it very well. It serves as a centralized Web-based calendar system with which users can log on, enter events, edit events, send reminders, customize, search, and filter.

Being Web-based gives Calcium the advantage of platform independence. Not only can the Calcium application be used by any platform with a browser, but the Calcium server runs on any platform that runs Perl. The benefits should be obvious going into this examination: portability, portability, portability. If you need to quickly set up a solid calendaring application that anyone can use, read on.

Installing Calcium
Installation of Calcium is quite simple. You’ll first need to download either the tarr'd and zipp'd (UNIX), the rpm (Linux), or the zipfile (Windows) from the Calcium site.

Now, with the proper file downloaded, you are ready to work a bit of magic. (But you're a Linux admin so you're used to working magic, right?) We'll start out with the Linux/UNIX installation and work our way out the Window.

rpm installation
It would be great if the rpm package itself would install properly, but it doesn’t. In order to run with the rpm installation, you will have to tweak and prod a few sections. To install Calcium via rpms, you’ll do the following:
  1. su to root.
  2. Run the command: rpm -ivh Calcium-3.5-1.noarch.rpm.
  3. Run the command: mv /usr/local/Calcium-3.5 /var/www/cgi-bin.
  4. Run the command: mv /var/www/cgi-bin/Calcium-3.5/Calcium35 /var/www/cgi-bin/.
  5. Open the /var/www/cgi-bin/Calcium35 file in your favorite text editor and change the first line from BEGIN {$Defines::calendar_root = '/usr/local/Calcium3.5'; to BEGIN {$Defines::calendar_root = 'Calcium3.5';.
  6. Make sure httpd is running with the command /etc/rc.d/init.d/httpd restart.
  7. Open a browser and enter http://localhost/cgi-bin/Calcium35. You will be greeted with the Login screen (see Figure A).

Figure A
Although there is a Login option in this screen, you have to set up users before anyone can log in.

Now, Calcium is installed and running.

Installing from source
We'll depart from the rpm-type installation and move to a more generic Linux/UNIX installation. After you've downloaded the Calcium-3.5.tar.Z, do the following:
  1. First, su to root and then untar the file with the command tar xvfz Calcium-3.5.tar.Z.
  2. Remove the .Z file with the command rm Calcium-3.5.tar.Z.
  3. Move the Calcium3.5 directory and the Calcium35 file to/var/www/cgi-bin/ with the command mv Calcium3.5 Calcium35 /var/www/cgi-bin/.
  4. Make sure you have an instance of httpd running (as in step 6 of the rpm installation).
  5. Open a browser (as in step 7 of the rpm installation).

Windows installation
Next, we’ll install the same application within a Windows environment. Hold onto your hats; this might be a rough ride. After you've downloaded the .exe file, do the following:
  1. Unzip the file.
  2. Double-click on the icalv35.exe file to start the installation process.
  3. Once installed, you’ll find a new submenu within Start | Programs | iCal 3.5 Web Calendar. Inside that submenu, you will find the iCal executable file. Select the iCal executable and the iCal console will open (see Figure B).
  4. After the iCal console has opened, change the port number from 80 to 8080 on the Listener tab.
  5. Click Start Server on the Status tab. You're done and ready to schedule.
  6. Open your browser (as in step 7 of the rpm installation).

Figure B
Uncheck all but Auto Start Listener to avoid suffering from "new window pop-up syndrome."

Logging in
Remember that for the purposes of this review, I used the full-blown purchased copy of Calcium, which adds the ability to add new calendars, custom patches, and modifications; removes the links to Brown Bear Software from your calendars; and provides full, unlimited tech support. So as you’re examining this review, keep those perks in mind.

During my testing of Calcium, I made a point of using every browser I could, including Opera, Konqueror, Netscape, Lynx, Mozilla, Amaya, IE 5, OpenOffice, StarOffice, and Zen. The browsers that had issues were Amaya (couldn't log in due to JavaScript issues), OpenOffice (couldn't log in due to JavaScript issues), StarOffice (pop-ups would not appear due to JavaScript issues), Zen (couldn't handle JavaScript), and Lynx (pop-ups would not appear due to JavaScript issues). The other browsers worked perfectly with the application.

As stated before, using Calcium is as simple as pointing your browser to http://calcium_server_address/cgi-bin/Calcium35, which will bring you to the Login screen (see Figure A). For this example, the Calcium server is on

Setting the administrator
If you’re using a demo version (and not the purchased version), once you've logged in, you’ll have only one calendar to deal with: the Default calendar. If you’re using a purchased copy, you’ll have unlimited calendars. From the opening screen, click to the System Administration page (shown in Figure C) and then click Users to add users to the system.

Figure C
Use caution when first administering Calcium because no user has been assigned as administrator.

Figure D
Remember that giving a user system admin permissions doesn’t mean he or she will be able to administer individual user accounts.

From the Users page, you’ll have the ability to create users, delete users, and reset the users’ passwords. Once you've added all the necessary users, click Done and you’ll be taken back to the Calcium System Administration page. Now, it's finally time to set up administrator permissions. One of the nice things about the way Brown Bear has set up Calcium is that you’re allowed to give admin permissions to as few or as many users as you wish. From the System Administration page (Figure C), click System Security to reveal the Security For System Administration page (Figure D). The created users will be available for selection as administrators.

Once you've selected your administrator(s), click Set Permissions. The Current Settings Allow Anyone To Perform System Administration message will change to Current Settings Allow Only These Users To Perform System Administration, and the selected user names will be displayed below that. With the proper administration permissions set, click Done and you’ll be zipped back to the System Administration page. Now, we're ready to work within our calendar.

Working with the calendar
From the Links To Existing Calendars section of the System Administration page, click Default and you’ll see the Default Calcium Calendar (see Figures E and F).

Figure E
The top half of the Default calendar (and all calendars) includes the Navigate bar, which allows you to navigate through months, weeks, or nothing (depending on your configuration).

Figure F
The bottom section of the Default calendar (and all calendars) includes the configuration, administration, and search functions, and login/logout links.

Let's create a new event, shall we? On the Default calendar page, select August (Aug) from the Navigate bar and then click on the link in the upper-left corner of the second of August’s box. When the Edit Event window opens, do the following:
  1. Enter text in the Modify The Text For This Event area.
  2. Select a start and end time.
  3. Enter a URL or text for the pop-up window. (In our example, we're going to add the TechRepublic URL.)
  4. Select Draw Border. (This is purely aesthetic.)
  5. Click Create Event.

Figure G
You can click Close to get rid of the pop-up window or, in this example, you can click the link to open a new pop-up window.

Now that you've created the event, click on the View Calendar link at the top left of the page and you will find yourself back at the Default calendar. Take a look at August 2nd again. The Test Event will now show up, as shown in Figure G. If you (or anyone viewing the calendar, registered user or not) click on the Test Event link, a new pop-up window will open, revealing whatever you entered in the URL Or Text For A Pop-Up Window area (see Figure G). For this example, I entered the HTML tags for the TechRepublic site so the pop-up window would include a link. Click on the link within the pop-up window and another pop-up window will open to the included link.

Including e-mail and reminders
As you may have already noticed, you can send a courtesy e-mail to those users affected by an event. You do this, during the creation of that event, in the Email Notification section of the Add Event window by adding the recipient’s e-mail address and any note you wish the recipient to see. What is a bit tricky is that under each section of the Add Event window (Add New Event, Repeat Information, and Email Notification) are two clickable buttons: Create Event and Reset. If you’re adding an event without repeats or e-mail notification, you’ll click Create Event under the Add New Event section. If you’re creating an event with repeats, you’ll click Create Event under the Repeat Information section. And if you’re creating an event with all three elements, you’ll click Create Event under the Email Notification section. As soon as you click Create Event, the e-mail notification will be sent and, when it arrives, it will look like the one shown in Figure H.

Figure H
A Calcium e-mail notification as seen through Ximian's Evolution

Brown Bear also offers, for $100 U.S., the ability to add e-mail reminders. This is a simple downloadable file, SendReminders, that is placed in the /var/www/cgi-bin/Calcium3.5 (in the case of Red Hat 7.x) directory. After the file is relocated to /var/www/cgi-bin/Calcium3.5, you can open the System Administration page and click the Email Reminder Process link. On the Email Reminder Process page (see Figure I), select from the drop-down list how often you want the e-mail reminder daemon to run and then start the daemon by clicking Start Script.

Figure I
The drop-down list allows you to make a selection ranging from Once Only to Every Five Minutes.

Searching and selecting calendars
Two very helpful tools in the Calcium calendar system are the searching and selecting functions. At the bottom of the actual calendar view, you’ll find the Search link. Click this link and a new pop-up window will appear (see Figure J) that allows you to enter the text to be used in the search, as well as a number of options. Figure J shows a user running a search on the Cycling calendar. To narrow the search results, you could select Case Sensitive. You can also choose to use a regular expression (Regex) (for example, match “gear” followed by “Giant” with anything in between by entering gear.*Giant in the text area), and you can narrow the search further by specifying the dates for the search.

Figure J
You can search event text, pop-up text, or both from the In drop-down menu.

The results of a search will come up as a list of matched entries in the regular browser window. The Search pop-up will remain open until you close it. If you find the listing that you’re looking for within the search results, click on the link included in that result to open that specific pop-up window.

The Select Calendar link, also located in the Calendar view, will pop up a new window (see Figure K) that will allow you to select among all currently created calendars. As you select each calendar, the Select Calendar pop-up window will remain open until you click the Close button at the bottom of that window.

Figure K
With the purchased version of Calcium, you can create as many calendars as you need.

After using Calcium for a while, I reflected on my earlier statement about Linux being nowhere near out of the game. The conclusion? It all depends on how many self-starting users your enterprise employs. One of the nice things about Outlook (and Ximian’s Evolution) is that you don't have to depend on users actually taking action. You set up a meeting, and Outlook takes care of the rest. All the users have to do is click to accept or decline the request when the e-mail arrives. This is not so with Calcium.

Unfortunately, the Calcium calendar does require the user to take action and actually look at the calendar. Outlook also has the ability to keep the users apprised of the status and availability of individuals. This is not so with Calcium. Within the Calcium calendar, you do not see users’ availability. Because of this, Calcium falls short of the level of either Evolution or Outlook. Is this a weakness if your enterprise is made up of reliable, proactive employees? Not at all.

All in all, if you're looking for a tool to use, not as a groupware scheduling tool but as a general company-wide schedule, you really can't go wrong with this little gem. The stability, the portability, and the simplicity make Calcium a welcome addition to any corporation looking to shy away from the current standard.

About Jack Wallen

Jack Wallen is an award-winning writer for TechRepublic and He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website

Editor's Picks

Free Newsletters, In your Inbox