Enlace para agregar al calendario de Google

115

No tengo claro el formato exacto para tener un enlace en un sitio web que agregará un solo evento al calendario de Google de un usuario. Veo que eventbrite lo ha hecho aquí, pero me encantaría tener algunas especificaciones claras o enlaces en la dirección correcta.

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

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

Cociente
fuente
1
Vea también esta pregunta y sus respuestas: stackoverflow.com/q/22757908
Denilson Sá Maia
1
Haga referencia a cómo convertir la fecha al formato requerido en este comentario a continuación: stackoverflow.com/questions/10488831/… (me tomó un tiempo notar el comentario)
Elijah Lofgren

Respuestas:

231

Aquí hay un enlace de ejemplo que puede usar para ver el formato:

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 +, + Nueva + York, + NY + 10022 & sf = true & output = xml

Tenga en cuenta los parámetros clave de la consulta:

text
dates
details
location

Aquí hay otro ejemplo (tomado 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>

Aquí hay un formulario que lo ayudará a construir dicho enlace si lo desea (mencionado en respuestas anteriores):

https://support.google.com/calendar/answer/3033039 Editar: este enlace ya no le brinda un formulario que pueda usar

Usuario
fuente
29
Tenga en cuenta que también puede especificar un parámetro de zona horaria, por ejemplo:ctz=America/New_York
Usuario
23
Para convertir al formato de fecha y hora:(new Date()).toISOString().replace(/-|:|\.\d\d\d/g,"");
Trantor Liu
7
El enlace de arriba es bueno para escritorio. Para dispositivos móviles, la URL similar es calendar.google.com/calendar/gp#~calendar:view=e&bm=1 y los parámetros son los mismos.
Supreet Sethi
7
Puede encontrar una lista completa de valores CTZ en Lista de zonas horarias de la base de datos tz
Marco Lackovic
6
@ IvánSánchez respondió tardíamente, pero la 'Z' al final del parámetro 'fechas' establecerá la hora equivalente en UTC, por lo que es probable que sea incorrecta para su zona horaria. Suelta la 'Z' al final de cada fecha y encontrarás la hora en la zona correcta. dates=20140127T224000/20140320T221500
Jarvis Johnson
5

También he tenido éxito con esta estructura de URL:

URL base:

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

Y digamos que estos son los detalles de mi evento:

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)

Convertiría mis datos en estos parámetros (codificados en 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

Enlace de ejemplo:

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% 20Algunos% 20Place% 2C% 20City & date = 20200222T100000 / 20200222T113000 & ctz = America% 2FNew_York

Tenga en cuenta que, como he especificado una zona horaria con el parámetro "ctz", utilicé las horas locales para las fechas de inicio y finalización. Alternativamente, puede usar fechas UTC y excluir el parámetro de zona horaria, como este:

dates=20200222T150000Z/20200222T163000Z

Enlace de ejemplo:

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% 20Algunos% 20Lugar% 2C% 20Ciudad y fechas = 20200222T150000Z / 20200222T163000Z

Tessa
fuente
2

Para la próxima persona que busque en Google este tema, escribí un pequeño paquete de NPM para facilitar la generación de URL de Google Calendar. Incluye definiciones de tipo TypeScript, para aquellos que lo necesiten. ¡Espero eso ayude!

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

Mikael Lirbank
fuente