SolutionBase: Publishing calendars in Linux
Takeaway: Trying to find a cost-effective, reliable way to publish calendars using the Linux platform? Jack Wallen shows you how to do it using Firefox, an Apache module, and the Firefox Lightning plug-in.
Many corporate environments already deploy a published calendar system with Exchange. From the end-user perspective, it's simple to use. From an IT perspective, it's oftentimes riddled with problems, forcing the department to baby-sit the Exchange server on a daily (or nightly) basis. As for the smaller business, it's just not cost-effective.
What if I told you there is a cost-effective, reliable way to publish calendars using the Linux platform? Well, there is, and I'm going to show you how to do it using Firefox, an Apache module, and the Firefox Lightning plug-in. Here's how it works.
What's a published calendar?
A published calendar is a calendar that can be viewed from a remote location. This enables, for example, on administrator to create and manage a calendar for, say, an entire company and everyone within the company would have access to viewing said calendar. This makes life easy when scheduling such things as company-wide meetings and events.
Getting and installing the components
Here's what you need:
The environment I'm installing on is Fedora Core 6. For Fedora 7, the installment will be virtually the same. For other distributions, the installation will need to be modified based on the type of distributions and the architecture of the hardware.
Typically, with an installation of Linux, the Apache Web server will be installed. If, however, you have installed a desktop-only installation, you will need to install Apache as well. This can be done with the yum installation tool with the yum install httpd command (run as root). Once this is installed, you will have the /var/www/html directory, which you will use later.
The next pieces of the puzzle will be installed in different ways. Let's get mod_dav installed now. The easiest way to install mod_dav is with rpm. Get the rpm file from rpmfind.net and run the command (as root, from the directory the file downloaded into): rpm -ivh mod_dav-XXX.rpm where XXX is the release number and architecture.
Now let's get Thunderbird and Lightning installed. These are very straightforward. Download the files Thunderbird and Lightning. You must next move Thunderbird to a different directory. Where exactly this is depends on how you want to manage it. If you have all users on a system to be able to run Thunderbird, move Thunderbird to the /opt directory. If this is a system where only a single user works from, you can install Thunderbird into the users ~/ directory. To be safe, we'll install into /opt.
Once the Thunderbird file is in /opt, issue the command tar xvzf thunderbird-XXX.tgz where XXX is the release number. Now Thunderbird can be started by issuing the /opt/thunderbird/thunderbird command.
The final installation step will require you to get through the initial set up of Thunderbird. So go ahead and run through setting up your mail account. Once that is complete go to the Tools menu and select Extensions. A new window will open (Figure A) that allows you to install new extensions. Unlike Firefox, installing extensions in Thunderbird is a bit different. In Thunderbird, save the extension to your hard drive and press the Install button (from the Thunderbird extensions window), navigate to the saved file (the file extension will be .xpi), and press Open; once the count-down completes, press Install.
Figure A

You can press the Get More Extensions link to open up a new browser window and find more Thunderbird extensions.
Now you're installed, but you're not quite done.
Configuring Apache's mod_dav
Open /etc/httpd/conf/httpd.conf (as root) in your favorite text editor. Scroll to the bottom of the file and add the following lines:
<Location
/webdav>
Order Allow,Deny
Allow from all
Dav On
AuthType Basic
AuthName DAV
AuthUserFile
user.passwd
<LimitExcept GET
OPTIONS>
require user admin
</LimitExcept>
</Location>
<IfModule
mod_dav_fs.c>
# Location of the
WebDAV lock database.
DAVLockDB
/var/lib/dav/lockdb
</IfModule>
<Location
/webdav/>
DAV On
AuthType Basic
AuthName "WebDAV
Restricted"
AuthUserFile
/etc/httpd/passwd/passwords
require user webdav
</Location>
Now you need to create the webdav user and a password for that user. Do so with the command:
htpasswd -c
/etc/httpd/passwd/passwords webdav
You will be prompted to enter a password for the user (twice). This password will be the password users will need to know in order to gain access to the published calendar.
The final steps will be to create the location that will house the calendar files. I created /var/www/html/webdav with the command (run as root):
mkdir /var/www/html/webdav
Make sure the directory was world-readable and writable with the command:
chmod -R 777
/var/www/html/webdav
Now start (or restart) the Apache server. I tend to start (or restart) Apache with the command:
/etc/rc.d/init.dhttpd
start
or, in case of a restart:
/etc/rc.d/init.d/httpd
restart
Setting up your calendar
Now it's time to fire up Thunderbird with the new Lightning extension. When you start up Thunderbird, the Lightning extension will exist in the bottom left corner, as shown in Figure B. It's clean and takes up little space, yet it remains very usable.
Figure B

Click on any date in the small calendar to open up the full-sized version in the large right-side window.
There are three tabs in the extension. Press the Calendars tab to create a new calendar. Press the New button, as shown in Figure C, to initiate the creation process.
Figure C

From this tab, you can create a new calendar, edit existing calendars, or delete existing calendars.
The next step is to choose the location of the calendar. Since we are creating a published calendar, we're going to select On The Network. Press Next to continue. The next step is to choose the type of calendar (I will use iCal) and fill out the location. The location of this calendar will be hosted on the machine I am working on, so http://localhost/webdav/ will work. For those working on other machines, replace localhost with the IP address of the machine serving the calendar. Press Next. Now give the calendar a nickname and select a color to represent the calendar. Press Next.
You will now be asked for the username (webdav) and the password you used when you created the user above. Enter those and press OK. Now the new calendar should show up in the calendar listing of the extension, as shown in Figure D.
Figure D

The new calendar contains the customizations showing the importance of naming and color selection.
A very simple way to test the calendar's availability is to open up a browser on a remote machine and enter the address in the URL bar (in my case, http://192.168.1.21/webdav/company_calendar.ics). You will be prompted for the username and password. What will appear (if using an ICS file) will be a long file (depending upon the amount of entries in the calendar) with text similar to this:
BEGIN:VCALENDARVERSION:2.0PRODID:-//Mozilla.org/NONSGML Mozilla Calendar V1.1//ENBEGIN:VTIMEZONETZID:/mozilla.org/20070129_1/America/New_YorkX-LIC-LOCATION:America/New_YorkBEGIN:DAYLIGHTTZOFFSETFROM:-0500TZOFFSETTO:-0400TZNAME:EDTDTSTART:19700308T020000RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=2SU;BYMONTH=3END:DAYLIGHTBEGIN:STANDARDTZOFFSETFROM:-0400TZOFFSETTO:-0500TZNAME:ESTDTSTART:19701101T020000RRULE:FREQ=YEARLY;INTERVAL=1;BYDAY=1SU;BYMONTH=11END:STANDARDEND:VTIMEZONEBEGIN:VEVENTCREATED:20070714T234024ZLAST-MODIFIED:20070715T021150ZDTSTAMP:20070715T021150ZUID:37845adf-0a08-4958-a3d4-a8aed34ba687
Connecting to the calendar
Naturally, this step will differ completely depending on the type of application you're using to connect to the remote calendar. Since we created the calendar with the Thunderbird extension, I am going to show you how to subscribe to the calendar with KDE's Kontact. This is a very simple procedure.
Open up Kontact and press on the Calendar button. Now press the Add button to begin the process of adding the remote calendar. The first step is to select the type of calendar you will be creating. Choose Calendar In Remote File, as seen in Figure E.
Once you select the proper type, press OK to move on. Now you are going to have to fill in the details of the remote calendar. Figure F shows just what you need.
Remember, you will need to enter the entire address (including file name) for the remote calendar. In this case, the address is http://192.168.1.21/webdav/company_calendar.ics. You also have to select a location for the remote file to be saved to. For simplicity's sake, I chose the local users home directory. This can be placed anywhere, so long as the user has read/write privileges. Press OK and you're done. You will be asked for the password of the file and the calendar -- named Company Calendar as per our Kontact settings --will appear in the Kontact calendar window.
Obviously, the steps for subscribing to this calendar will vary depending upon what application you use to view it remotely.
Final thoughts
As you can see, deploying a published calendar with Linux is a fast and easy process. On top of being simple, it's reliable. And of course, it's highly configurable. This setup can be tweaked in numerous ways to suit your company's needs. If you want a reliable, cost-effective, publishable calendar system, this method is it.
Print/View all Posts Comments on this article
|
|
|
|
|
|
|
|
|
|
More from TechRepublic Series: SolutionBase
- SolutionBase: Enforce system policies with the Group Policy Diagnostic Best Practice Analyzer
- Fine tuning Microsoft ForeFront Server Security for Exchange
- Implementing Microsoft ForeFront Security for Exchange
- Configuring Exchange 2007 to be an Edge Transport Server
- Get Up To Speed with Interleave
- Installing System Center Essentials 2007
- SolutionBase: Enterprise-ready Process Automation with Interleave
- SolutionBase: Administer PacketFence with ease via Web interface
- SolutionBase: Installing and configuring Network Access Control with PacketFence
- SolutionBase: Block unwanted network access with PacketFence
- SolutionBase: Use PacketFence to stop unwanted network traffic
SponsoredWhite Papers, Webcasts, and Downloads
- Increase IT Efficiency through Virtual Datacenter Automation VMware
- The Social Enterprise: Using Social Enterprise Applications to Enable the Next Wave of Knowledge Worker Productivity Oracle
- Oracle Web 2.0 Resource Library Oracle
- UltraDNS Services: DNS Security and Network Reliability NeuStar
- Cut energy costs with the powerful IBM BladeCenter JS22 Express blade IBM
Article Categories
- Security
- Security Solutions, IT Locksmith
- Networking and Communications
- E-mail Administration NetNote, Cisco Routers and Switches
- CIO and IT Management
- Project Management, CIO Issues, Strategies that Scale
- Desktops, Laptops & OS
- Windows 2000 Professional, Microsoft Word, Microsoft Excel, Microsoft Access, Windows XP,
- Data Management
- Oracle, SQL Server
- Servers
- Windows NT, Linux NetNote, Windows Server 2003
- Career Development
- Geek Trivia
- Software/Web Development
- Web Development Zone, Visual Basic, .NET


What it takes to stay on the edge of innovation
Going green and managing costs during tough economic times
Taking chances with the core brand
Transforming the company and developing new delivery platforms
