I think if you use the {{member.webinar url}} token in the location parameter in the invite URL, then it should work. Any reason why you have a custom token ({{my.calLocation}}) in the location parameter? Ideally, you should be adding the {{member.webinar url}} token there so people see their own unique joining link in the location field when they open up and save the invite. Check out this updated Google invite link below:
https://www.google.com/calendar/render?action=TEMPLATE&text={{my.calTitle}}&details={{my.calDescription}}&location={{member.webinar%20url}}&dates={{my.calDateStart}}T{{my.calTimeStart}}/{{my.calDateEnd}}T{{my.calTimeEnd}}
The above is just an example, you can include the {{member.webinar url}} token in other places too (like the details parameter). The idea is to ensure that by including it in the location parameter doesn't truncate it off.
Edit - Read Sandy's comment below as he explains the above through an example.
Additionally, make sure you update the person's program status to Registered in Marketo, so the {{member.webinar url}} gets generated and synced to Marketo from the platform. Additionally, there could be a slight delay b/w you updating the status, and the {{member.webinar url}} being available. A lot of users add a wait step of a few minutes after the Change Program Status to Registered flow step, but I'd recommend reading Sandy's You don't really need to Wait for {{Member.Webinar URL}} article. He recommends a very practical tip of creating an LP with the {{member.webinar url}} token on it, and including the link to the LP in the Registration Confirmation email.