Add endpoint that exports dashboard as ICS #4057
I would strongly prefer the unique token, but in a different way; Store it on the User, and use it for all links of this kind (dashboard, category, etc); possibly through itsdangerous so the same token cannot be used on different links.
The advantage compared to storing separate tokens is that getting those links is idempotent and getting them multiple times won't create new tokens (or have to check the DB whether a token for a specific link already exists).
The only UI needed for that would be a "reset private links" button, telling the user that they have to update all links to protected dashboard, caetgory, etc. feeds they are using.
Speaking of category feeds: this would be a good opportunity to rip out the connection to the HTTP API from category/event ical links and use the token there - that's a bunch of legacy JS that could go away (currently we have stuff like creating an API key and enabling persistent api signatures in there).