bookmarkletsiCalendar URL buildersiCalendar filtersfeed viewersfeed validation

bookmarklets

Google Calendar

This bookmarklet extracts the iCalendar URL from a web page on which an instance of Google Calendar has been embedded. An example of such a page: the Mariposa Museum Calendar.

Here is the bookmarklet: get ical from gcal. To install it, drag the link to your browser's links toolbar. To use it, visit a page like the Mariposa Museum Calendar and click the link. The bookmarklet will figure out the iCalendar URL and report it at the top of the page.

iCalendar URL builders

Facebook Pages

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

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

Facebook Page:
Elm City ID:

Note: This now works both for Facebook fan pages as shown above, and also for group pages with calendars such as https://www.facebook.com/groups/Bytemarks.Meetup.

EventBrite Page

This helper accepts the URL of an EventBrite event page and an Elm City ID. It finds the EventBrite ID for the event, synthesizes an iCalendar feed for that event, and produces an iCalendar feed URL that you can add to your hub's registry.

EventBrite Page:
Elm City ID:

EventBrite Organizer

This helper accepts the URL of an EventBrite event page and an Elm City ID. It finds the organizer for the event, synthesizes an iCalendar feed for that organizer's events, and produces a iCalendar feed URL that you can add to your hub's registry.

EventBrite Page:
Elm City ID:

NASA Space Station Tracker

On NASA's Spot the Station page you can find the schedule for upcoming sightings of the space station in your location. There is only an RSS feed, not an iCalendar feed, but you can construct an iCalendar feed here. Find your closest city on the NASA page, it will produce an URL like this:

http://spotthestation.nasa.gov/sightings/view.cfm?country=United_States&region=New_Hampshire&city=Dublin

Transfer the values for country, region, and city (exactly as shown in the generated URL) to this form.

Elm City ID:
Country:
State or Region:
City:

POST instead of GET

Some sites, like The Jewish Mother in Virginia Beach, offer feeds that require the Elm City service to use an HTTP POST request rather than an HTTP GET request. This helper accepts an URL formulated like a GET request, and produces an URL that will fetch the feed by POSTing the corresponding form.

Feed URL, GET-style:

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:

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:
Elm City 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:

Note: Broken for now. See A great disturbance in the force.

iCalendar filters

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:
Elm City 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)
Elm City 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: yes
Elm City ID:

Filtering by Location

The keyword you'd like to filter might also appear in the LOCATION field of an iCalendar event. Consider Trinity College. Its sports schedule lists home and away games, and you can distinguish between them because away games use the word Away in the LOCATION field, like so:

LOCATION:Away Brandeis Univ Rieger Tennis Courts

Here's how the socialhartford hub uses iCalendar filtering to construct feeds for away games:

iCalendar feed URL:
include keyword:
LOCATION only: yes
Elm City ID:

And for home games:

iCalendar feed URL:
exclude keyword:
LOCATION only: yes
Elm City ID:

Filtering by multiple included and/or excluded keywords

If you include or exclude a comma-separated list of keywords, they'll OR together. Here's an includer for Crazy Wisdom, in Ann Arbor, that finds events for a Health category. The found events will have health, herbal wisdom, healing, or remedies in the SUMMARY.

iCalendar feed URL:
include keyword:
SUMMARY only: yes
Elm City ID:

Here's an excluder for Let's Dance Southern Vermont, a feed of dance events with occasional Zumba, Tai Chi, and Yoga events that wouldn't belong in a Dance category.

iCalendar feed URL:
exclude keyword:
SUMMARY only: yes
Elm City ID:

feed viewers

view feed as raw text

This helper accepts a feed URL and shows you the raw contents of the feed. If you specify an iCalendar property (e.g. SUMMARY, DESCRIPTION) it shows you just those properties. Note that if you filter on an optional property that isn't in the feed you'll see nothing. In that case remove the filter and try again.

url:
property filter:

view feed as html

This helper accepts a feed URL and an Elm City ID. It formats the feed as HTML, so you can check the contents of the feed.

url:
Elm City ID:

feed validation

This helper sends a feed URL to the iCalendar Validator, which checks to see how well the feed conforms to the iCalendar standard.

url: