Disk is cheap and we have the ability to keep room contents forever -- I
just need to remember to set it that way.
As far as rendering iCal/vCard objects is concerned -- you can certainly
do that. I'll add that you can probably even handle meeting invitations
and responses with relative ease, because all of the computational logic
for that is in the server. For example, if you're reading a meeting
invitation and you want to answer it, you just issue a server command that
looks like
ICAL respond|xxx|yyy|zzz
...where "xxx" is the message number, "yyy" is the MIME part specifier of
the iCalendar object containing the invitation, and "zzz" is either
"accept" or "decline". The Citadel server does the rest for you. There's
even a mode you can set that tells Citadel to automatically send out
invitations whenever you post a calendar item containing attendees.
The basic design tenet of the overall Citadel system framework is that
it's the server's job to be smart and the client's job to be pretty.