First up: we have a new design! You can see it in its full green glory at the usual place,

Our two meetups last week accomplished a lot. Some little things, some bigger (like the design). We’re continuing to struggle with our iCalendar & hCalendar tools, mofo and vPim. Mofo had a bug that was preventing postal codes from being read accurately. We now have a one-line patch that fixes this. A note to other open source developers: make it easy for people to find out about known bugs and send you patches when we encounter one! It’s very frustrating to lose half a day of work to something like this. We want to keep the ‘many eyes’ principle working.

All event pages now have a “Add to Google Calendar” link in the right sidebar, in addition to the previous iCal download link. This way you can send individual events to your personal calendar. There’s still also several ways to consume the entire events feed from the main events page.

We did more work on our duplicate event and venue management pages. You can get a sneak peek: events page & venues page. Help us out by spending a few minutes gardening duplicate entries.

You can see the full list of squashed bugs and other work on our wiki:
Keep reporting any bugs you find to the issue tracker:

Update: One thing I left off—we started re-importing sources that have been flagged to request that. You can tell us to do this for your group’s calendar by checking the “re-import” box when you submit the url at

Despite lovely spring weather on Saturday, a small group gathered for our regular code sprint. We did get a little outside time by having lunch on the patio at Produce Row.

Changes you might notice:

  • The events pages now have a link to get an hCalendar version of the event. You can copy and paste this into your own blog or webpage, to display the full event details as well as sharing the microformat love.
  • We’re continuing to work on management of duplicate venues and events behind the scenes. You might see more of these merge as we test the new functionality.
  • We did some pre-emptive sanitization of displayed data. No one has tried to do anything crazy or malicious with the event or venue fields yet (except us, for testing purposes), but this is a good problem to take care of now, before it’s a serious issue.
  • You might have seen a bug where not putting an end time on an event raised an error. We don’t want to make end times mandatory, so that’s fixed now too.

If you spot a bug while you’re using the site, please report it. We test things as well as we can, but there’s always something that slips through.

Since we canceled our regular Saturday code sprint last week to attend Startupalooza, Calagator volunteers gathered for two mini-sprints Wednesday and Thursday to address bugs and some small enhancements.

A few highlights:

  • We created a bookmarklet to make it as easy as possible to import single events from pages containing hCalendar markup. To try it, go to our import page, drag the Add to Calagator link into your browser toolbar, then go to an event page on Upcoming, and click the bookmarklet link. It’ll take you back to the import page with the event url added to the form.
  • The import form also has a ‘re-import’ checkbox now. This is for you to let us know whether the page you’re importing should be checked again later for additional events and updates. The feature isn’t fully implemented yet, but we’d like to start collecting that information on event sources now.
  • We also fixed various bugs in the import process, event time selection, and other areas. If you want to know what we’re working on, or report an issue, visit our bug tracker on Google Code.

Adopting hCal

February 2, 2008

We’re using hCalendar (or hCal) for importing events. If you would like to share your events with right away, here’s an example, followed by a short explanation of the markup needed.

<div class="vevent">  
   <a class="url" href=""></a>
   <abbr class="dtstart" title="20080216T10:00">February 16, 2008, 10am</abbr>-
   <abbr class="dtend" title="20080216T18:00">6pm</abbr>
   <span class="summary">Calagator Codesprint</span> -  at
   <span class="location">Cubespace</span>, 622 SE Grand Ave. Portland, OR 97214
   <div class="geo">:
      <span class="latitude">45.51845</span>
      <span class="longitude">-122.66056</span>For more information, check with:
      <span class="contact">Audrey Eschright</span>
   </div><!-- end geo -->

   <span class="category">calendaring</span>
   <span class="category">aggregation</span> 
   <span class="category">alligators </span>

   <div class="description">
The Calagator Development Team is meeting every 2 weeks to create a calendar aggregator for local technical events. We're working with Ruby On Rails, writing documentation, gathering information about standards, and trying to increase the use of calendar standards like hCalendar.
</div><!-- end vevent -->

Today, Calagator recognizes the following classes:

  • vevent
    • dtstart (without timezone information)
    • summary
    • url

The import routine also recognizes multiple events on a single page.

Venues can be added through the web interface. The hackers will be working on recognition of the ‘location’ class soon.


To make a valid hCal markup, you need to define three classes at a minimun:

  • vevent
    • summary
    • dtstart

These classes can be added to any HTML tag and do not need to be styled. Once you’ve added these basic tags, Calagator will recognize the event.

Other tags you might consider using include:

Once you’ve done that, you can test our import at If there’s a bug, click the Bugs link in the upper right hand corner and let us know what went wrong.

If you’d like to test your hCal before submitting to the Calagator, there is a Firefox plugin called Operator. Operator detects many different microformats in a webpage.

If you’re interested in learning more about what hCal has to offer, have a look at the hcalendar explanation. There’s also a cheatsheet, and a list of hCalendar implementations.