Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Calendar server suggestions

0 views
Skip to first unread message

Trevor Strohman

unread,
Jul 25, 2002, 4:45:34 PM7/25/02
to

I've been thinking about writing a calendar server for myself for some
time and I've never started, mainly because I've never figured out a
'simple' way to do it. Just this week I came up with a way that should
work well and be fairly simple to implement in stages. I thought that
those of you thinking of writing a calendar server might hopefully find
some of this stuff useful (it sure took me a long time to think it up, so
it might as well be useful to someone).

At the base level, a calendar server can simply be a WebDAV store, like
Apple's iCal uses. That gives users an easy way to publish calendars for
other people to see, and it requires no server-side coding. Some systems
(like OS X) won't need any client code for this option either.

Of course, there's some problems with just putting calendar files on a server:
* it's hard to provide selective access to data: I may wish to only let
work colleagues know when I'm free and when I'm busy, not what I'm doing
while I'm busy
* no good way to reference an event in another calendar: if you set up
an event and I wish to attend, I'd rather not just copy that calendar
entry. I want to set up a link to that entry so that if anything changes
(start time, location, etc.) that my calendar will automatically see those
changes.

So, here's at least one way to implement these two features:

1) put a service on the WebDAV server (perhaps a servlet or something)
that provides XQuery functionality. That way, the client can submit XML
queries to the application, and not the file. This not only allows the
client to download less data from the server, but it also allows the
server to provide fine-grained access control to calendar files (much like
SQL views provide fine-grained access control to database tables). So, to
see the free/busy data for a colleague, I might send a request that looks
something like this:
http://example.com/xquery?query=<freebusyquery>&file=users/bob/calendar.xml
and get back something like:
<freebusy>
<busy>
<start>8:00pm</start>
<end>9:00pm</end>
</busy>
</freebusy>

Of course, this allows an easy way to do many other kinds of queries on
the data, and it should be easy to grab a freely available xquery
processor to do this.

2) Allow XLinks within calendar documents, like:

<event xlink:type="simple" xlink:action="embed" xlink:href="<XPath to a
valid event>" />

This allows the calendar user to link to a common event, for instance a
company meeting event in a company-wide calendar, and see any updates to
that global event as they may happen. By simple extension, this allows
the calendar user to link to an event but still provide a custom
description:

<event>
<!-- link to the event body here -->
<description>This meeting is going to be really boring</description>
</event>

Certainly this is very rough, but I think it could provide many of the
features of popular calendaring server products without writing a lot of
server code (and more importantly, without inventing new standards).

Comments?

Trevor Strohman

GuruJ

unread,
Jul 29, 2002, 1:17:53 AM7/29/02
to

Wouldn't the simplest way to implement a calendar server be to allow
people to specify the path where their calendar files are stored?

On Linux/Win 2000 the file system could then take care of appropriate
security permissions. Add a new directory for a "Shared" user, and
write code to allow people to merge "Shared" events into their calendar.

If people should be included/excluded from a shared event, a new field
in the "Shared" calendar file can specify the usernames to be
included/excluded.

Or is this being too simplistic?

GuruJ.

0 new messages