It’s impossible for any service to encode a link if it can’t tell where the link begins and ends. That’s the whole reason for encoding in the first place!
e.g. if you have
https://www.example.com?someparam=https://www.anotherexample.net?someotherparam=one&yetanotherparam=two&stillanotherparam=three
you can’t know that yetanotherparam
is supposed to “belong” to the link-like value of someparam
while stillanotherparam
belongs to the URL as a whole.
Anyway, you never use a semicolon to start the querystring. QS is always demarcated by the first question mark.
https://ics.agical.io/alt_sep?querystring;with;semicolons
Found the issue. Completely unrelated to the link. Was using "ZZ" and not "Z" for UTC in the dtstart dtend params and that was breaking the encoding. Sorry for any confusion!