The Global Lindy Hop Map I’ve built as a toy project is actually a calendar with geo annotated events. It currently is backed by a custom database using Xapian for the search functionality to improve performance.

The data comes from around 150 Google calendars from various dancing communities. I’m preprocessing the data to have reliable geo information as well as doing some filtering and HTML formatting.

Instead of putting everything into my own database - which doesn’t know about recurrence rules, but relies on materialized recurrences - I’ve also tried to sync all 150 calendars into one huge “master” calendar.

However, using the Google Gdata APIs to access this calendar takes way too long for the website to be usable. This is not too surprising, there are like 3500 instances in the calendar and some of this will require the computation of recurrence rules. And I cannot do the synchronization without a local ID mapping cache anyway (I can recover a lost cache from additional information I put into the calendar though). There are around 60 event instances per day, since most come from weekly repetitions.

The HTML embed rendering can take quite a while to load (albeit the results apparently are cached somewhere) - looking at december either hits some processing limit or times out after around 40 seconds.

Looks like I’m going beyond the scope Google Calendar was designed for. :-)