Lien à ajouter au calendrier Google

115

Je ne suis pas certain du format exact pour avoir un lien sur un site Web qui ajoutera un seul événement au calendrier Google d'un utilisateur. Je vois qu'Eventbrite l'a fait ici mais j'aimerais avoir des spécifications claires ou des liens dans la bonne direction

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

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

Quotient
la source
1
Voir aussi cette question et réponses: stackoverflow.com/q/22757908
Denilson Sá Maia
1
Référence comment convertir la date au format requis dans ce commentaire ci-dessous: stackoverflow.com/questions/10488831/… (m'a pris un certain temps pour remarquer le commentaire)
Elijah Lofgren

Réponses:

231

Voici un exemple de lien que vous pouvez utiliser pour voir le 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

Notez les paramètres de requête clés:

text
dates
details
location

Voici un autre exemple (tiré de 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>

Voici un formulaire qui vous aidera à construire un tel lien si vous le souhaitez (mentionné dans les réponses précédentes):

https://support.google.com/calendar/answer/3033039 Modifier: ce lien ne vous donne plus un formulaire que vous pouvez utiliser

Utilisateur
la source
29
Notez que vous pouvez également spécifier un paramètre de fuseau horaire, par exemple:ctz=America/New_York
Utilisateur
23
Pour convertir au format datetime:(new Date()).toISOString().replace(/-|:|\.\d\d\d/g,"");
Trantor Liu
7
Le lien ci-dessus est bon pour le bureau. Pour les mobiles, une URL similaire est calendar.google.com/calendar/gp#~calendar:view=e&bm=1 et les paramètres sont les mêmes.
Supreet Sethi le
7
Vous pouvez trouver une liste complète des valeurs CTZ à Liste des fuseaux horaires de la base de données tz
Marco Lackovic
6
@ IvánSánchez a répondu tardivement mais, le «Z» à la fin du paramètre «dates» définira l'heure équivalente en UTC - ce sera probablement faux pour votre fuseau horaire. Déposez le «Z» à la fin de chaque date et vous trouverez l'heure affichée dans la bonne zone. dates=20140127T224000/20140320T221500
Jarvis Johnson
5

J'ai également réussi avec cette structure d'URL:

URL de base:

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

Et disons que voici les détails de mon événement:

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)

Je convertirais mes détails en ces paramètres (URL encodée):

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

Exemple de lien:

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 = Amérique% 2FNew_York

Veuillez noter que depuis que j'ai spécifié un fuseau horaire avec le paramètre "ctz", j'ai utilisé les heures locales pour les dates de début et de fin. Vous pouvez également utiliser les dates UTC et exclure le paramètre de fuseau horaire, comme ceci:

dates=20200222T150000Z/20200222T163000Z

Exemple de lien:

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
la source
2

Pour la personne suivante sur Google sur ce sujet, j'ai écrit un petit package NPM pour simplifier la génération des URL de Google Agenda. Il comprend des définitions de type TypeScript, pour ceux qui en ont besoin. J'espère que ça aide!

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

Mikael Lirbank
la source