Link do dodania do kalendarza Google

115

Nie mam pewności co do dokładnego formatu linku w witrynie, który doda pojedyncze wydarzenie do kalendarza Google użytkownika. Widzę, że eventbrite zrobił to tutaj, ale chciałbym uzyskać jasne specyfikacje lub linki we właściwym kierunku

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

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

Iloraz
źródło
1
Zobacz także to pytanie i odpowiedzi: stackoverflow.com/q/22757908
Denilson Sá Maia
1
Odniesienia jak konwertować datę do wymaganego formatu w tym komentarzu poniżej: stackoverflow.com/questions/10488831/... (zajęło mi to trochę czasu, aby dostrzec komentarz)
Eliasz Lofgren

Odpowiedzi:

231

Oto przykładowy link, którego możesz użyć, aby zobaczyć format:

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

Zwróć uwagę na kluczowe parametry zapytania:

text
dates
details
location

Oto kolejny przykład (pobrany z 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>

Oto formularz, który pomoże Ci zbudować taki link, jeśli chcesz (wspomniany we wcześniejszych odpowiedziach):

https://support.google.com/calendar/answer/3033039 Edytuj: ten link nie udostępnia już formularza, którego możesz użyć

Użytkownik
źródło
29
Zauważ, że możesz również określić parametr strefy czasowej, np .:ctz=America/New_York
Użytkownik
23
Aby przekonwertować na format daty i godziny:(new Date()).toISOString().replace(/-|:|\.\d\d\d/g,"");
Trantor Liu
7
Powyższy link jest dobry na komputer. W przypadku telefonów komórkowych podobny adres URL to calendar.google.com/calendar/gp#~calendar:view=e&bm=1, a parametry są takie same.
Supreet Sethi
7
Pełną listę wartości CTZ można znaleźć na stronie Lista stref czasowych bazy danych tz
Marco Lackovic
6
@ IvánSánchez późna odpowiedź, ale „Z” na końcu parametru „daty” ustawi równoważny czas w UTC - więc prawdopodobnie będzie nieprawidłowy dla Twojej strefy czasowej. Upuść „Z” na końcu każdej daty, a czas pojawi się we właściwej strefie. dates=20140127T224000/20140320T221500
Jarvis Johnson
5

Udało mi się również z taką strukturą adresów URL:

Podstawowy adres URL:

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

Powiedzmy, że to są szczegóły mojego wydarzenia:

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)

Zamieniłbym moje dane na te parametry (zakodowane w adresie 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

Przykładowy link:

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 & dates = 20200222T100000 / 20200222T113000 & ctz = America% 2FNew_York

Zwróć uwagę, że ponieważ określiłem strefę czasową za pomocą parametru „ctz”, użyłem lokalnych czasów jako dat początkowych i końcowych. Alternatywnie możesz użyć dat UTC i wykluczyć parametr strefy czasowej, na przykład:

dates=20200222T150000Z/20200222T163000Z

Przykładowy link:

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 & dates = 20200222T150000Z / 20200222T163000Z

Tessa
źródło
2

Dla następnej osoby szukającej w Google tego tematu, napisałem mały pakiet NPM, aby ułatwić generowanie adresów URL Kalendarza Google. Zawiera definicje typów TypeScript dla tych, którzy tego potrzebują. Mam nadzieję, że to pomoże!

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

Mikael Lirbank
źródło