-->

Link to add ics to Google Calendar stopped working

2020-07-11 07:23发布

问题:

I have a link on a website to let users add an ICS feed to their google Calendar. Using this code:

http://www.google.com/calendar/render?cid=https://<etc>

It worked for 3-4 years but not anymore. The message Google sends me is:

This email address isn't associated with an active Google Calendar account: https://<etc>

If I enter the ics feed manually things work ok: the feed is parsed as should. No errors.

Any idea where to look to fix this?

回答1:

I too have this problem. Did you solve it?

My tests show that it works when using URLs with http, like:

www.google.com/calendar/render?cid=http%3A%2%2Fwww.example.com%2FCalendar%2FPublic%2520Events.ics

But not with https, like:

www.google.com/calendar/render?cid=https%3A%2%2Fwww.example.com%2FCalendar%2FPublic%2520Events.ics

My workaround for this is to use http in the link, but redirect it to https in the web server. Not very elegant, but it works. The GET won't be encrypted, but at least the answer is.

EDIT: Actually, it can be a huge security risk sending the GET over http instead of https if you don't do any more authentication than via query string parameters, which can be hard for calendar feeds. Anyone who can sniff the GET can send the same request over https themselves.



回答2:

Right now it works, even with https.

https://www.google.com/calendar/render?cid=https%3A%2F%2Fwww.example.com%2FCalendar%2FPublic%20Events.ics


回答3:

They got more strict. Now you have to use

http://www.google.com/calendar/render?cid=http%3A%2F%2Fwww.example.com%2FCalendar%2FPublic%2520Events.ics

note the encoding.



回答4:

Use webcal protocol for the calendar address:

https://www.google.com/calendar/render?cid=webcal%3A%2F%2Fwww.example.com%2FCalendar%2FPublic%20Events.ics


回答5:

Ok, so for me, none of the other answers on this page worked. But I figured it out with bits and pieces of others:

Link to my calendar's ics:

https://example.com/calendar?id=a304036ea5a474ee5d80a100d79c231c

The right way to link it to Google Calendar:

https://calendar.google.com/calendar/r?cid=webcal%3A%2F%2Fexample.com%2Fcalendar%3Fid%3Da304036ea5a474ee5d80a100d79c231c

The key here is adding it using the webcal protocol instead of the https protocol.

Hope this helps anyone.