To dynamically generate an ics file for an event, you can point to event.openam.com
You need to pass the following variables:
format (only ics at the moment)
timezone (eg Europe/London)
start_date as yyyymmdd
start_time as hhmm
stop_date as yyyymmdd
stop_time as hhmm
summary
Note: The summary won't work with Unicode characters, as I can't get the conversion to work at the moment.