User calendar iCal and RSS serialisation

This builds on a couple of other PRs, so don't review this just yet. Although feel free to have a high-level look if you wish to
I'd rather not have it as a query parameter as I don't think that'll play well with old ical clients. I had a quick look at how google calendar and the old timetable system did it and they all include it in the path/filename