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

Я создаю веб-приложение, которое управляет определенными типами событий для пользователей. Я хочу позволить отображать те события в Google Календаре пользователя.

То, на что я действительно надеялся, было способом опубликовать мой собственный Google Календарь совместимый канал и позволить пользователям подписываться на него, как они могут подписаться на "интересные календари". Так, чтобы, если изменение событий или новые события добавляются, они были отражены в их календаре. Но похоже, что Google только позволяет пользователям импортировать календарные данные в iCal или форматах CSV, не в формате Atom-ленты.

Проблема, существующие события в моем веб-приложении могут измениться, и добавляются новые события. Я хочу, чтобы те изменения сразу были отражены в Google Календаре. И я не могу ожидать, что пользователь будет продолжать повторно импортировать файл ICAL. Следующее ТАК вопрос чрезвычайно подобно, но действительно не отправило ответ: Генерируйте Google Calendar совместимый канал

Я иду об этом неправильным путем? Я должен использовать gdata API, чтобы создать календарь и опубликовать события к нему? Кажется, что публикация Atom-ленты была бы намного более простой, но если Google не может подписаться на Atom-ленту, которая не будет работать.

Если я просто опубликую свои события как файл ICAL, то Google Календарь будет регулярно перечитывать URL и обновлять данные? Некоторые пользователи мои имеют 4 или 5 событий каждый день, таким образом, файл будет просто продолжать становиться больше и больше со временем. Действительно кажется, что это не хорошее решение.

9
задан Community 23 May 2017 в 12:34
поделиться

2 ответа

Глядя на другие сайты, которые делают это, кажутся, что Google регулярно читает внешние календари в iCal.

Это зависит от вас, чтобы обрезать ICAL CEMP, вы предоставляете E.G, убивая даты в прошлом.

Итак, чтобы решить вашу проблему:

  • Создайте ICAL-файл и обслуживание вашего веб-сайта
  • Получите пользователям подписаться на него в Google Calendar
  • Регулярно обновляйте файл iCal, обрезки старых данных

Пример заголовков и начала файла ICS из Tripit.com, где это кажется хорошо работает:

curl -v http://..../tripit.ics

< HTTP/1.1 200 OK
< Server: nginx
< Date: Fri, 29 Jan 2010 21:53:58 GMT
< Content-Type: text/calendar; charset=utf-8
< Transfer-Encoding: chunked
< Connection: close
< Expires: Fri, 29 Jan 2010 22:08:58 GMT
< Cache-Control: private
< 
BEGIN:VCALENDAR
X-WR-CALNAME:Malcolm Box (TripIt)
X-WR-CALDESC:TripIt Calendar
X-PUBLISHED-TTL:PT15M
PRODID:-//John Papaioannou/NONSGML Bennu 0.1//EN
VERSION:2.0
BEGIN:VEVENT
...
8
ответ дан 4 December 2019 в 20:24
поделиться

Похоже, что надежно обновляет календарь Google, вы должны использовать API: http://code.google.com/apis/calendar/data/2.0/developers_guide .html Несмотря на то, что я сделаю ставку на прагматическую точку зрения, если у вас есть iCal файл, который часто обновляет разумно, вы получите достойную производительность.

0
ответ дан 4 December 2019 в 20:24
поделиться