Ссылка для добавления в календарь Google


115

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

http://www.eventbrite.com/event/1289487893

http://screencast.com/t/6vvh1khS


1
См. Также этот вопрос и ответы: stackoverflow.com/q/22757908
Denilson Sá Maia,

1
Ссылка на преобразование даты в требуемый формат в этом комментарии ниже: stackoverflow.com/questions/10488831/… (мне потребовалось время, чтобы заметить комментарий)
Элайджа Лофгрен

Ответы:


231

Вот пример ссылки, которую вы можете использовать, чтобы увидеть формат:

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

Обратите внимание на ключевые параметры запроса:

text
dates
details
location

Вот еще один пример (взятый из http://wordpress.org/support/topic/direct-link-to-add-specific-google-calendar-event ):

<a href="http://www.google.com/calendar/render?
action=TEMPLATE
&text=[event-title]
&dates=[start-custom format='Ymd\\THi00\\Z']/[end-custom format='Ymd\\THi00\\Z']
&details=[description]
&location=[location]
&trp=false
&sprop=
&sprop=name:"
target="_blank" rel="nofollow">Add to my calendar</a>

Вот форма, которая поможет вам создать такую ​​ссылку, если хотите (упоминалось в предыдущих ответах):

https://support.google.com/calendar/answer/3033039 Изменить: эта ссылка больше не дает вам форму, которую вы можете использовать


29
Обратите внимание, что вы также можете указать параметр часового пояса, например:ctz=America/New_York
Пользователь

23
Чтобы преобразовать в формат datetime:(new Date()).toISOString().replace(/-|:|\.\d\d\d/g,"");
Trantor Liu

7
Ссылка выше подходит для настольных компьютеров. Для мобильных устройств аналогичный URL-адрес - calendar.google.com/calendar/gp#~calendar:view=e&bm=1, а параметры такие же.
Supreet Sethi

7
Вы можете найти полный список значений CTZ в Списке часовых поясов базы данных tz
Марко Лацкович

6
@ IvánSánchez поздний ответ, но буква «Z» в конце параметра «даты» устанавливает эквивалентное время в формате UTC, поэтому, скорее всего, это будет неправильный часовой пояс. Отбросьте букву «Z» в конце каждой даты, и вы обнаружите, что время отображается в нужной зоне. dates=20140127T224000/20140320T221500
Джарвис Джонсон

19

Существует исчерпывающий документ для календаря Google и других служб календаря: https://github.com/InteractionDesignFoundation/add-event-to-calendar-docs/blob/master/services/google.md

Пример действующей ссылки: https://calendar.google.com/calendar/render?action=TEMPLATE&text=Bithday&dates=20201231T193000Z/20201231T223000Z&details=With%20clowns%20and%20stuff&location=North%20Pole


5

Я также добился успеха с такой структурой URL:

Базовый URL:

https://calendar.google.com/calendar/r/eventedit?

Допустим, это подробности моего мероприятия:

Title: Event Title
Description: Example of some description. See more at /programming/10488831/link-to-add-to-google-calendar
Location: 123 Some Place
Date: February 22, 2020
Start Time: 10:00am
End Time: 11:30am
Timezone: America/New York (GMT -5)

Я бы преобразовал свои данные в эти параметры (в кодировке URL):

text=Event%20Title
details=Example%20of%20some%20description.%20See%20more%20at%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F10488831%2Flink-to-add-to-google-calendar
location=123%20Some%20Place%2C%20City
dates=20200222T100000/20200222T113000
ctz=America%2FNew_York

Пример ссылки:

https://calendar.google.com/calendar/r/eventedit?text=Event%20Title&details=Example%20of%20some%20description.%20See%20more%20at%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F10488831 % 2Flink-to-add-to-google-calendar & location = 123% 20Some% 20Place% 2C% 20City & Date = 20200222T100000 / 20200222T113000 & ctz = America% 2FNew_York

Обратите внимание: поскольку я указал часовой пояс с помощью параметра «ctz», я использовал местное время для дат начала и окончания. В качестве альтернативы вы можете использовать даты в формате UTC и исключить параметр часового пояса, например:

dates=20200222T150000Z/20200222T163000Z

Пример ссылки:

https://calendar.google.com/calendar/r/eventedit?text=Event%20Title&details=Example%20of%20some%20description.%20See%20more%20at%20https%3A%2F%2Fstackoverflow.com%2Fquestions%2F10488831 % 2Flink-to-add-to-google-calendar & location = 123% 20Some% 20Place% 2C% 20City & Date = 20200222T150000Z / 20200222T163000Z


2

Для следующего человека, ищущего эту тему в Google, я написал небольшой пакет NPM, чтобы упростить создание URL-адресов Календаря Google. Он включает определения типов TypeScript для тех, кому это нужно. Надеюсь, поможет!

https://www.npmjs.com/package/google-calendar-url

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.