Подтвердить что ты не робот

Как создать html-ссылку на событие календаря Google?

Используя Google Calendar API v3, я добавил событие в календарь Google. Теперь я хочу построить html-ссылку, чтобы кто-то мог щелкнуть и просмотреть событие календаря.

Вот что я пробовал:

<a href="#" onclick="location.href='https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}'; return false;">View Google</a>

href выглядит так:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0

Проблема в том, что я получаю ошибку 401 "Требуется авторизация"

Как создать ссылку для просмотра/редактирования события календаря на основе идентификатора календаря Google?

4b9b3361

Ответ 1

Есть выход! Для просмотра публичного календаря используйте ссылку в форме:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

где {event-id} - уникальный идентификатор события, а {timezone} - один из этих часовых поясов.

Вот пример: ссылка на конкретное общедоступное событие календаря.

Если у вас есть права на редактирование календаря, из которого это событие, вы сможете отредактировать событие и увидеть список гостей. В противном случае вы просто увидите публичную информацию о событии.

Поскольку может быть сложно определить идентификатор события, здесь есть букмарклет, который создает ссылку на ваше событие в Календаре Google при редактировании его страницы сведений:

javascript:(function(){ try { window.prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+document.getElementsByClassName('ep')[0].getAttribute('data-eid')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})()

И версия этой закладки, которая работает с новым (по состоянию на 2017 год) пользовательским интерфейсом Календаря Google:

javascript:(function(){ 
  window.prompt('Shareable link to this event:',
    'https://www.google.com/calendar/event?eid='+
    window.location.href.split("/").pop().split("?")[0])
})()

(Также возможно полезно, как сделать ссылку на определенный день в общедоступном календаре Google:

https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}

где {calendar-id} - это идентификатор календаря, а {yyyymmdd} - это день, на который вы хотите сделать ссылку.

Необязательные параметры включают в себя часовой пояс и возможность отображения различных элементов, например:

&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0

Пример: ссылка на один день общедоступного календаря.)

Ответ 2

Вот HTML, чтобы построить ссылку:

https://www.google.com/calendar/render?action=TEMPLATE&text=Your+Event+Name&dates=20140127T224000Z/20140320T221500Z&details=For+details,+link+here:+http://www.example.com&location=Waldorf+Astoria,+301+Park+Ave+,+New+York,+NY+10022&sf=true&output=xml

Ответ 3

URL-адрес события не является URL-адресом календаря.

В этой ссылке приводятся объяснения: Google Calender v3

И способ создания этого URL-адреса:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

где calendarId и eventId являются параметрами.

Надеюсь, что это полезно.

Ответ 4

Я хотел опубликовать это, потому что он имеет отношение к заданному вопросу, и это сообщение появляется, когда я пытался сделать следующее.

Я пытался создать Google Event с единственной целью добавления в календари других людей, не сохраненных в каком-либо конкретном календаре. Я нашел здесь пример, и в настоящее время я пытаюсь выяснить параметры URL, которые он принимает.

https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false

Ответ 5

Чтобы просмотреть событие календаря Google по идентификатору события.

Вы можете использовать нижеприведенный пример:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

Пример для индийского часового пояса:

https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata

Ответ 6

Чтобы создать страницу, на которой пользователи могут просматривать Календарь событий публично, пользователь, имеющий разрешения на изменение настроек совместного доступа к календарю, должен сначала открыть календарь:

  • В Календаре Google в правом верхнем углу щелкните колесо настроек.

  • В разделе "Настройки" перейдите на вкладку "Календари".

  • Выберите имя календаря, с которым вы работаете.

  • Затем нажмите вкладку "Поделиться этим календарем". Убедитесь, что флажки отмечены снимок экрана ниже (обведен красный).

Google Calendar Settings Page


  • Затем нажмите вкладку "Сведения о календаре", расположенную в левом верхнем углу.

  • Прокрутите вниз до раздела "Календарный адрес", как показано на скриншоте ниже.

  • Нажмите "HTML".

  • Появится всплывающее модальное сообщение, которое включает общедоступный URL-адрес, который вам нужно будет публично открыть.


Get URL For Public Google Calendar


Вот пример того, как выглядит URL-адрес:

https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK

Кроме того, см. API данных календаря Google для получения информации о создании и работе с Календарными гаджетами.

Ответ 7

Чтобы получить событие из API календаря Google v3, вызовите:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

Событие содержит свойство htmlLink, которое именно то, что вам нужно:

Абсолютная ссылка на это событие в веб-интерфейсе Google Calendar. Только для чтения.

См. https://developers.google.com/google-apps/calendar/v3/reference/events.

Ссылка выглядит следующим образом:

https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.

Он откроет полноэкранный режим события, только, конечно, если у вас есть доступ к событию. На экране появится обратная кнопка, чтобы вернуться в календарь.

Понятно, что вы не можете сами создать эту ссылку, поэтому вам нужно будет сделать вызов API, но вы, вероятно, уже все это делаете.

Ответ 8

Когда событие календаря Google было создано, то в ответе мы получили свойство result. В этом свойстве result будет доступен еще один htmlLink со ссылкой на создаваемое событие. Теперь он может открыть:

window.open(response.result.htmlLink, '_target');