Events are complicated beasts
The event distribution website for Brown University is has been live for awhile now. Although it looks rather simple, the back end is quite robust (plus since it’s summer, there are no events. I posted this a little too late, oops!).
We here at Public Display specialize in all the idiosyncrasies that event content gives us. No one realizes how complicated events actually are. Well, guess what? They are really complicated beasts, let me tell you! We have devoted an enormous amount of engineering time and energy on solving all the various problems of events while developing FuseCal.
Events vs Exhibitions
The featured events of Brown University are categorized as events and exhibitions. Seems simple enough, right? No! It is not simple. Exhibitions span months, some span years. You cannot so nicely put events and exhibitions together. You can’t even sort them together. Hell, you can’t even sort all exhibitions together. However, an ‘exhibition’ is still part of what is going on and is thusly an ‘event’ that needs to be displayed to the user along with the other events.
Events are relatively short. They can last several days, or span a week or two. Sorting in chronological order by start date and ending up with an event that is spanning over a week appear at the top of a list of events for that entire week is generally OK and not too much of an annoyance.
On the other hand, sorting exhibits in chronological order by start date, and having an exhibition that started three years ago at the top of the list is really aggravating. That exhibition should appear at the bottom of the list.
But, what about exhibitions that are starting soon? You don’t want those to be sorted by ending date. You don’t want the exhibit that is starting tomorrow to appear much lower than the exhibit ending in two weeks.
I decided to keep events and exhibitions always segregated when displayed on the website. The original Featured Events website kept them segregated as well, so this was no problem.
The sorting within exhibitions are also segregated. Exhibits starting within the time span should be displayed above the exhibits that are ending after the start of the given time span. There is no way to mesh these two with one query.
The display of all events within a given time span then resulted in three queries:
- Events occurring at any time during the given time span (starts during, ends during, or spans the entire length of time), sorted by start date
- All exhibitions starting within the given time span, sorted by start date
- All exhibitions that started before and ends after the start of the time span, sorted by end date
Drupal’s support of iCal is limited, so in order to take advantage of all the input fields available to me with CCK, I created a means of customizing iCal export.
RSS for events on the surface always seems so easy! “Oh sure, we’ll just provide an RSS feed! No problem,” they always say. However, there’s more to think about.
First of all, at what point should the user receive information about the event? Generally the default is the publish date. However, does a user need to know now about an event that is occurring next year? So instead you could control the publish-to-rss date to be some variable before the event-start-date. What, then, would the user do to remember the event? Should the RSS feed then also try to remind the reader that the event is tonight or tomorrow? If the event is an exhibition, should there also be a reminder that the event is ending?
Excuse me for being rudely blunt here, but the answer to those questions is iCal - thats why we have calendars! They’re built to handle these issues! We don’t need event information in our news readers. However, if an event publisher would like to provide a newsletter of events, then RSS would be appropriate (with a link to the events in iCal format so it can be easily imported into the user’s calendar).
For my uses, RSS is handy for distributing content to other websites. I use it on Today at Brown to display today’s events and currently open exhibitions. The RSS feed only contains the needed events, and it is displayed in it’s entirety on the site using a RSS to HTML converter.