http and iCal are common standards that should be used together to create a calendar server. So far, I have not seen anyone do this effectively. Furthermore, most people seem to be concentrating on Windows calendar solutions or 'Windows to other platform' solutions. We have some ideas for a platform independent calendar server.
The server side is completely web technology. The files are pulled from the server through http(s). The files are pushed back to the server using https. Each calendar user would have two data stores--public and private. For now, the user would need to maintain two separate calendars to differentiate public/private data--This issue will be dealt with in the 2nd release--what release? We dont have any files yet. ;)
The client side is any program that supports iCal and
https. The mozilla calendar project, korganizer(in kde), Evolution, Apple's
iCal support ics files on remote servers. The mozilla
calendar runs on multiple platforms (including windows) and is the
ideal client.
One of the caveats of placing ical files on a public server so that others can read them is that it may include private data. Even though some ical programs will not display the private data belonging to others it is still easily readable for those who know to look at the file directly. This private data needs to be removed for public consumption. I have written some test scripts which strip out private data from ical files. This is similar to the freebusy feature of some calendar programs with the exception that the resulting public file is a real ics file that can be treated just like other ics files. Most calendar programs can display multiple files at the same time so that multiple people's calendars could easily be seen at once with this method.
To facilitate both public and private access to the files the web
server would be configured to hand out the public version in non
encrypted sessions and the private version when the users accesses the
same location with ssl.
There are two levels of security in this spec: private, and
public. It would be nice to allow for groups as well but that
requires more overhead and should be dealt with later.
Setup Apache:
How to setup the same location being served from both HTTP and
HTTPS?
Ultimately a modperl program will handle this because apache
authorization is not fine grained enough to keep people from
overwriting each other's calendars when they have access to them.
- .htaccess file in private directory
<LIMIT PUT POST etc.>Other users can be given access by adding them to file
require-user user </LIMIT>
<LIMIT GET etc.>
require-user user other-user </LIMIT>
Write some helper scripts:
- addCalUser