Given how many things Upcoming screwed up this time, I've decided to try
a different approach for doing imports: using the Upcoming API.
* PROS: Writing the driver was very straightforward because the API
export data was clean. Potentially more reliable approach because it's a
simple data dump from their database, rather than an afterthought export
from their website that keeps getting broken as they redesign pages. Has
a documented set of fields and contents. Is apparently the same data
being used by their partners and tools like YQL. Once we're comfortable
with this, we can tear out all the horrible workarounds polluting our
iCalendar and hCalendar drivers.
* CONS: Requires an API key that each developer will need to get and
that I need to extract into a configuration file, currently I've
hardcoded the key into the app, which is naughty. No clear limits and
vague appropriate use policy, so we may get banned. Their API is not a
standard, and they have no reason to honor their own spec if they won't
honor industry standards.
Anyway, I think this was worth the risk given the alternative of having
to try to fix their progressively more invalid iCalendar and hCalendar
exports.
Please report any troubles or outstanding issues on this. Once we're
okay with this, I'll work my way through closing the flock of Upcoming
import-related tickets.
-igal