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
We could use something like `ShortId` here, as that would contain a wider variety of characters that would be harder to bruteforce.