Through the Google Calendar UI a user can add an external iCAL calendar to their CalendarList.
When that Calendar is retrieved through CalendarList, the Calendar URL is not included. Additionally, it doesn't appear that it's possible to add an external iCal Calendar to a user's CalendarList.
Is this the case? Is there a way of programmatically subscribing a Google Calendar user to an external iCal feed?
Internally the Calendar UI uses the following URL to add an external calendar:
This URL takes the the following parameters by either POST or GET:
- curl: calendar url (url encoded).
- cimp: UI sets this to true, not sure what it does.
- cpub: true|false - make calendar public
- secid: security id from the client (session Id perhaps). Not specifying this brings a 403 error.
If the user isn't logged into the Calendar they will be redirected to the Google Login screen. If I had a way of generating a secid (perhaps OAUTH?), I could add a link to allow the user to add the calendar automatically.