Are you really promoting your events with feeds?
For a while now I have wanted to dig into Acquia’s new Drupal Commons distribution. I have also wanted to create a unified calendar for Dallas Ft. Worth professional events. So this weekend I decided to kill two birds with one stone and use Drupal Commons to build a local events calendar that does, oh so much more.
The main focus of the site was to integrate events from various tech, design, marketing and entrepreneur groups in Dallas. I used Drupal’s Feeds module to import events from Meetup.com and individual group websites. For some groups this worked great, others got left out. While virtually all the groups feature event feeds in some manner, not all have usable feeds.
In order for your group to share its events properly, event data must be tagged properly. Here’s how you do that:
Parsing Event Data
Most of the events I go to have Meetup.com groups. Meetup provides two usable event feeds, uniformly formatted RSS and iCal. iCal is the gold standard for providing events data. It provides a standard format for start and end times and for location information. The iCal feed parser module for Drupal will allow you to parse iCal data and store it in fields.
The second option for Meetup.com would be to use RSS feed. While Meetup.com’s RSS feed does not specifically tag event data, it does provide a standard format that can easily be parsed. That is an O.K. plan B but since the format could change in the future it is better to stick with the iCal feed.
One of the main groups I wanted to get events from was the DFW American Marketing Association. They aren’t on Meetup.com, but they do have a calendar on their site. It doesn’t have an iCal feed, but they have an event data aware RSS feed. For locations they use the vCard standard for embedding location. Again had to write a parser, but it was fairly straight forward and a reusable standard. Event times were also specifically tagged and fairly straight forward to parse.
The Dallas Society of Visual Communications is using Drupal, so kudos to them. However they don’t appear to be consistently using event nodes, instead opting for customized page content. The design looks great, but several events are omitted from their feeds.
The take away here? Having the right tools isn’t enough; you have to know how to use them.
What Would Drupal Do?
So what methods does Drupal have for providing data aware event feeds? As you might expect, all of them. So if you have a Drupal site you are in luck.
RSS feeds are ubiquitous with Drupal. Thank you views. Drupal RSS feeds automatically tag data. The Location CCK field automatically outputs using the vCard standard. Date CCK fields are wrapped in the name of the CCK field. While using a CCK field name is not a universal standard, it goes a long way to giving a parser a predictable and stable format.
The Calendar module also has iCal feed capabilities. Just turn on the Calendar iCal module and magically the iCal feed will appear in the default Calendar view. Just make sure to turn it on before cloning the view as it will not add it to existing cloned calendar views. For more flexibility you can even recipe a custom iCal layout.
One additional trick Drupal gives you is creating XML or CVS feeds using the Views Bonus Pack. This is particularly useful when integrating with a 3rd party system that only parses XML.
My mother always said if you can't say anything nice don't say anything at all but… Can anyone tell what group events have been left out of the DFW Interact? Hint: WordPress sites.
Hello, WordPress? 2003 called and they want their feeds back.
I can’t bash WordPress too much. WP was a major driver in the rise of the popularity of RSS and Atom feeds. I just can’t believe that they haven’t evolved beyond the basic blog teasers that you found in WordPress version 1.0.
Many Dallas groups have a site built on WordPress. Many are even using one of the calendar modules for displaying events. However, none had a usable RSS or iCal feed with event data. All had WordPress’ standard, blog teaser RSS and atom feed. Unfortunately, this only gives you a short summary of the post, thus we cannot even parse the data by dissecting the format.
Feeds are an increasingly important part of the web. As the web moves from siloed sites to multi-site mashups where a website is also a data source in the cloud, the need for data aware feeds grows.
The first step to make sure your feeds include the right data is to just look at them. For RSS or Atom feeds, look to see if you times and location data is in the feed. Both should be encapsulated by identifier tags. Look for tags with class attributes of “vevent” and “vcard”. If you see both, you are in good shape.
As an alternative check your iCal feeds if your calendar supports it. Check to make sure your iCal feeds contain location, description and event times.
If your site does not have proper feeds, you have four options:
- Add it to your CMS – Most good CMS should have a plug-in or other method for outputting the proper feeds. I am sure even WordPress has an add-on for it
- Switch platforms – If your CMS doesn’t have data aware feeds, switch to a platform that does. Ahem, Drupal for example.
- Dedicated Calendar – you can always add a dedicated calendar system that supports the correct feeds. The only problem here is it will not be integrated with the rest of your CMS.
- Meetup.com – Get a Meetup.com account and cross post your events there.
As a final example: here is a good looking data aware RSS feed