WebCalendar
Status
I no longer use WebCalendar, it has been replaced by the server-based DAViCal.
This page still exists purely for historical reasons.
Debian packages
webcalendar
References
- Homepage
- http://www.k5n.us/webcalendar.php
Configuration
DebConf
Answers to DebConf:
- manage settings.conf automatically = yes
- configure database for webcalendar with dbconfig-common = yes
- database type = mysql
- password of your database's administrative user = secret
- MySQL application password for webcalendar = secret (this is the password used to connect to MySQL)
- web server to configure = apache2
- should apache2 be restarted = yes
- should WebCalendar use persistent connections = no (because I don't expect heavy load)
- use HTTP authentication = no
- should WebCalendar be installed in single-user mode = no
File system
The webcalendar package stores its configuration in
/etc/webcalendar/settings.conf
This file contains information how to connect to the MySQL server, therefore it is protected with restrictive privileges:
-rw-r----- 1 root www-data 5708 Jan 4 15:57 settings.conf
Nothing needs to be changed in settings.conf, DebConf already has set up the file correctly.
Web server setup
The webcalendar package stores basic web server configuration in
/etc/apache2/conf.d/webcalendar
which is a link to
/etc/webcalendar/apache.conf
Additional configuration is required because of restrictive settings on my server. The following configuration needs to be placed into /etc/apache2/conf.d/osgiliath.conf:
<Directory /usr/share/webcalendar/www/> Require all granted <IfModule mod_php5.c> php_admin_flag engine on </IfModule> </Directory>
MySQL setup
Nothing to do, this is handled automatically by DebConf if "configure database for webcalendar with dbconfig-common = yes".
Details:
- database name = webcalendar (automatically chosen)
- database user = webcalendar (automatically chosen)
- database password = secret (configurable through DebConf)
dbconfig-common
Actually, database setup is delegated and handled by package
dbconfig-common
This package stores configuration details for applications that it handles in its own directory
/etc/dbconfig-common
For webcalendar the file is named
/etc/dbconfig-common/webcalendar.conf
Unfortunately, the file duplicates database access information already configured in /etc/webcalendar/settings.conf. The file therefore is protected with restrictive privileges:
-rw------- 1 root root 2478 Jan 4 15:57 webcalendar.conf
Web browser setup
After DebConf configuration is complete, webcalendar is available under the alias "/webcalendar". After manual web server configuration is done, the application is available through the browser:
http://osgiliath.herzbube.ch/webcalendar/
The application needs some final configuration steps:
- admin
- users
- user "admin"
- change password (default password after installation is "admin")
- add new user "patrick"
- user "admin"
- system settings
- settings
- server url = http://www.herzbube.ch/webcalendar/
- time format = 24 hour
- week starts on = monday
- other
- allow remote subscriptions = yes
- email
- email enabled = yes (note that email reminders work despite this being set to "no")
- default sender address = webcalendar@herzbube.ch (so that email reminders have a reasonable sender address)
- settings
- users
Clients
In order for external clients to be able to access WebCalendar data, the following 2 things must be true:
- the site admin must have enabled remote subscriptions (admin->system settings->other)
- the user must have allowed remote subscriptions (admin->preferences)
For instance, for the user "patrick", the following URLs become available for subscription:
- http://www.herzbube.ch/webcalendar/publish.php/patrick.ics
- http://www.herzbube.ch/webcalendar/publish.php?user=patrick
iCal
- Kalender -> Abonnieren
- Im folgenden Fenster eine passende URL eingeben, z.B. http://www.herzbube.ch/webcalendar/publish.php/patrick.ics
- Aktualisieren = x Minuten
- Erinnerungen entfernen = false
- Aufgaben entfernen = false
Email reminders
The webcalendar package is configured to send out email reminders every 10 minutes. The file responsible for this is
/etc/cron.d/webcalendar
For illustration purposes: to send out email reminders every 5 minutes you could create a crontab entry that looks like this:
*/5 * * * * cd /usr/share/webcalendar/tools; ./send_reminders.php
Note: For this to work, it must be possible to execute PHP scripts on the command line. The Debian package for PHP is already built to allow this.