8

I created event in my Google Calendar, and then publish it on website (as a HTML code from Google calendar).

URL to event: https://calendar.google.com/event?action=TEMPLATE&tmeid=NWprMG92OHF1djJ2czJidnI5Zm9lOGE2Z28gdG9tYXMubm92YWsxOTk3QG0&tmsrc=my.email%40gmail.com

After click on URL it redirects me to Google Calender with this text: Could not find the requested event.

What should be the problem? I want to people should add this event to they calendar.

Forlis
  • 177
  • 2
  • 3
  • 12

2 Answers2

13

After several testing, I finally found the solution in my case.

This solution is for organizer which have full control of the calendar and event.

By default, we will add an event to a 'calendar' we have in google calendar.

enter image description here

If you're the person sharing the event, the calendar should be public.

  • Go to your google calendar
  • Select the calendar - Click the 3 dot beside the calendar
  • Click Settings and Sharings
  • Calendar Settings - Access permission --> PUBLIC

Note: To ensure your own privacy, it's best to create a new calendar for public events. https://support.google.com/calendar/answer/37095?hl=en

Note: Use your personal email instead of organization email. Some organization have some restriction. E.g., I can share the events from the organization email, but the details/title are not visible when it is opened by personal gmail. enter image description here

jona
  • 592
  • 1
  • 4
  • 16
0

You are trying to access a resource that is not public, so it's normal that your website cannot access it. You will notice this if you try to access the link you shared while not logged in your account (you will get a 404 error). By default, calendars are not public. To be able to access it, you can do the following:

  • Make the website authenticate to an account that has access to the event. You could, for example, follow the workflow specified in this quickstart.
  • Make the event public so that it can be accessed by everyone. You can do that via UI or via API, using the Acl collection. You can share the calendar and its events with certain users or make them public with the API method Acl: insert. To make it public, you would have to set scope.type to default.

Even if you make the calendar public, you can limit the amount of event that can be accessed publicly, so that people can access only the event that you want. You just have to change the visibility property of the event as specified here.

Reference:

Iamblichus
  • 18,540
  • 2
  • 11
  • 27