Howto Setup a Remote Calendar using WebDAV with Mozilla Sunbird
Posted by admin on November 8th, 2007
Email This Post
Installing the Apache Server
To install the Apache Server, open up a Terminal (Applications > Accessories > Terminal)
sudo apt-get install apache2
Now, you have the option of changing the port your Apache Server runs on. By default it runs on port 80, which is fine if there is only one computer. But if you setup a router to forward all traffic for port 80 to one computer on your network the internet on your other computers will not work.
To change the port
sudo vi /etc/apache2/ports.conf
In the file add the following line, where “port” is whatever port you would like to use (e.g. Listen 9999) save and exit
Listen port
NOTE: Make sure to forward traffic on this port to your server if you have a router
Enabling the WebDAV modules
To enable the WebDAV modules, open up a Terminal (Applications > Accessories > Terminal)
sudo a2enmod
dav
(press enter)
sudo a2enmod
dav_fs
(press enter)
Setting up the WebDAV folder and the user
This will make a WebDAV folder at: /var/www/davhome
To create the folder, open up a Terminal (Applications > Accessories > Terminal)
mkdir /var/www/davhome
chgrp www-data /var/www/davhome
chmod 775 /var/www/davhome
Next to create the user, input the following command changing the last “username” part of the command to the username you would like to use (obviously make a note of the username and password you create)
htpasswd -c /var/www/davhome/.DAVlogin username
Tell Apache where the folder is and to use it
To tell Apache to use WebDAV, open up a Terminal (Applications > Accessories > Terminal)
sudo vi /etc/apache2/mods-enabled/dav_fs.conf
Paste the following into the file.Change “username” (two instances) to the username you created above. Also, the DAVMinTimeout is optional it just sets the how long Apache should lock the file after it is accessed.I don’t use it and haven’t had a problem, but then again I only have one computer accessing the calendar at any time.
DAVLockDB /tmp/DAVLock
#DAVMinTimeout 600
<Location /davhome/>
Dav On
AuthType Basic
AuthName username
AuthUserFile /var/www/davhome/.DAVlogin
<LimitExcept OPTIONS>
Require user username
</LimitExcept>
</Location>
Hopefully you didn’t exit and save yet because you have some more options. With the way the file is setup above you will be prompted for a username/password everytime you read or save a file using WebDAV.
If you don’t want to be asked a password when you read a file change the first LimitExcept line to
<LimitExcept GET OPTIONS>
If you don’t want to be asked a password when you save a file (write) change the first LimitExcept line to
<LimitExcept PUT OPTIONS>
If you don’t want to be asked a password when reading or writing (not recommended unless you want to make the calendar completely public) change the first LimitExcept line to
<LimitExcept GET PUT OPTIONS>
Okay, now you can save and exit.
Restart Apache
This step is very important so that Apache recognizes the changes you made!
Open up a Terminal (Applications > Accessories > Terminal)
sudo /etc/init.d/apache2 restart
Testing Your server
Now you can either create a new calendar in Sunbird and tell it to put it on your server or publish an existing local calendar to the WebDAV folder. Just go to the calendar tab in Sunbird and right-click in the list of calendars or right-click on an existing calendar in the list.
The address format you would enter for the remote calendar is as follows
http://server_ip_or_hostname:port_if_not_80/davhome/filename_for_calendar.ics
Other Items to Note
If you place an exisiting calendar file directly in /var/www/davhome, you should change the group and the rights on this file as follows
sudo chgrp www-data /var/www/davhome/filename_for_calendar.ics
sudo chmod 644 /var/www/davhome/filename_for_calendar.ics
If Sunbird does NOT create a new .ics file, do the following and point Sunbird to that file as if it is an existing calendar:
sudo touch /var/www/davhome/filename_for_calendar.ics
sudo chgrp www-data /var/www/davhome/filename_for_calendar.ics
sudo chmod 644 /var/www/davhome/filename_for_calendar.ics
If you want to be notified the next time we write something please subscribe to our RSS feed.Thanks for Visiting!

January 22nd, 2008 at 6:14 pm
sundbird keeps on returning me a 405 method not allowed response …
April 7th, 2008 at 10:06 am
hi
I resolve “405 method not allowed” with this LimitExcept
and I chmod /var/www/davhome the user www-data too
drwxr-xr-x 2 www-data www-data 4096 2008-04-04 17:57 davhome
It works great for me
April 7th, 2008 at 11:32 am
I post my LimitExcept again (this time without tag)
LimitExcept GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK OPTIONS
April 11th, 2008 at 10:27 pm
I tried to share Calendars between users using WebDAV and Thunderbird Lightning. But private events are visible to other users. Is it possible to hide the private events?
Thanks!
May 8th, 2008 at 3:51 am
I keep getting a “Publishing the calendar file failed, Status code 403: Forbidden” message. Any help would be appreciated. Thanks in advance.
May 9th, 2008 at 12:51 am
Not sure why, but the instructions at http://www.digital-arcanist.com/sanctum/article.php?story=20070427101250622 are a bit different, and they worked for me.