For a while now I've been using a hacky piece of code to generate iCalendar files on the Teaching
page. This also uses the new HTML 5 geolocation API
for no particularly good reason, except that it's there (although sometimes, it's not!).