the elmcity project: iCalendar url helpers

Facebook Pages

Some Facebook Pages, like Berkeley Underground Film Society, include calendars.

This helper accepts the URL of a Facebook Page and an elmcity ID. It produces a corresponding iCalendar feed URL that you can add to your hub's registry.

Facebook Page:
elmcity ID:

CSV (comma-separated values) format

Some sites, like Rice University Athletics, provide calendar data only as CSV files. This helper accepts these inputs:

  1. The URL of the CSV file
  2. The URL that events found in that file will link back to
  3. Whether to skip the first row of the file (because it contains fieldnames not data)
  4. The zero-based column number of the event title
  5. The zero-based column number of the date
  6. The zero-based column number of the time
  7. The timezone

It produces the iCalendar feed URL corresponding to the CSV data.

CSV URL:
Home URL:
Skip first row:
Title column:
Date column:
Time column:
Timezone:

iCalendar filtering

Sometimes you'll want to use just part of an iCalendar feed. Consider Vinology, a restaurant, wine bar, and jazz venue in Ann Arbor. The Vinology calendar contains a mix of restaurant events (e.g. Happy Hour) and jazz events (Doug Horn trio).

As curator of the Ann Arbor hub, you'd prefer that Vinology offered a separate iCalendar feed for the jazz events, so you could include it in the music and jazz category. Even though Vinology doesn't offer a categorized feed, you can still create one on its behalf. This helper accepts an iCalendar feed URL and various inputs that control the selection of a subset of the feed. It returns a subset of the iCalendar feed.

Filtering by keyword

One way to produce a jazz feed for Vinology is to restrict the feed to only events containing 'jazz' in the SUMMARY or DESCRIPTION:

iCalendar feed URL:
include keyword:
elmcity ID:

Filtering by time

Another way produce a jazz feed for Vinology is to restrict the feed to only events after 8PM.

iCalendar feed URL:
after: (use 24hr notation)
elmcity ID:

Filtering by URL

Sometimes a keyword you'd like to filter will on only appear in the URL field of an iCalendar event. Consider the Berkeley Art Museum / Pacific Film Archive (BAM/PFA) calendar. It's a mixture of art exhibitions and film showings. The exhibitions can be found using the keyword 'exhibition' but the keyword 'film' does not appear consistently in the SUMMARY or DESCRIPTION fields of the film events. It does, however, appear consistently in the URL field (e.g. http://www.bampfa.berkeley.edu/film/FN19019).

Here's how the Berkeley hub uses iCalendar filtering to construct the BAM/PFA film feed that appears in Berkeley's film category:

iCalendar feed URL:
include keyword:
URL only:
elmcity ID:

HighSchoolSports.Net

Many schools (e.g. Keene High School) use HighSchoolSports.Net to help manage sports programs. The HighSchoolSports.Net Sync button produces iCalendar feed URLs for individual sports schedules, or for sets of up to 5 schedules (e.g. all basketball teams, including JV and varsity, boys and girls).

This helper accepts the name of a high school and a timezone. It produces an iCalendar feed URL that includes all the sports schedules for the named school.

School:
Timezone:

RSS with xCal (e.g. Zvents)

Although many sites provide RSS feeds for their calendars, most of these feeds don't format the calendar information in a way that enables automated data exchange. One notable exception is Zvents, a service used by a number of newspapers including SeattlePI.

The Arts & Crafts category at SeattlePI.com is an example of such a feed. Here's how the elmcity project's Seattle hub transforms that RSS feed into an iCalendar feed:

RSS feed:
Timezone: