web-dev-qa-db-fra.com

Comment créer un lien HTML vers un événement Google Agenda?

À l'aide de l'API Google Agenda v3, j'ai ajouté un événement à un agenda Google. Maintenant, je veux construire un lien html afin que quelqu'un puisse cliquer et voir l'événement du calendrier.

Voici ce que j'ai essayé:

<a href="https://www.google.com/calendar/feeds/default/private/full/{{ event.googleID }}">View Google</a>

le href ressemble à:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0

Le problème est que je reçois une erreur 401 "Autorisation requise"

Comment puis-je créer un lien pour afficher/modifier l'événement de calendrier en fonction d'un identifiant de calendrier Google?

24
codingJoe

Il y a un moyen! Pour afficher un événement de calendrier public, utilisez un lien du formulaire:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

{event-id} est l'identifiant unique de l'événement et {timezone} est l'un des ces fuseaux horaires .

Voici un exemple: lien vers un événement de calendrier public spécifique .

Si vous disposez de droits d'édition sur le calendrier duquel cet événement provient, vous pourrez l'éditer et voir la liste des invités. Sinon, vous ne voyez que les informations publiques sur l'événement.

Comme il peut être difficile de déterminer l'identifiant de l'événement, voici un bookmarklet qui produit un lien vers votre événement Google Agenda lorsque vous modifiez sa page Détails:

javascript:(function(){ try { window.Prompt('Shareable link to this event:','https://www.google.com/calendar/event?eid='+document.getElementsByClassName('ep')[0].getAttribute('data-eid')) } catch (e) {alert("Use this bookmarklet to get a shareable link to a Google Calendar event when editing its Details page.")}})()

Et une version de ce bookmarklet qui fonctionne avec la nouvelle interface utilisateur de Google Agenda (à compter de 2017):

javascript:(function(){ 
  window.Prompt('Shareable link to this event:',
    'https://www.google.com/calendar/event?eid='+
    window.location.href.split("/").pop().split("?")[0])
})()

(Peut-être également utile, comment créer un lien vers un jour spécifique d'un agenda Google public:

https://www.google.com/calendar/embed?src={calendar-id}&mode=day&dates={yyyymmdd}%2F{yyyymmdd}

{calendar-id} est l'identifiant du calendrier et {aaaammjj} est le jour auquel vous souhaitez créer un lien.

Les paramètres facultatifs incluent le fuseau horaire et s'il faut afficher différents éléments, par exemple:

&ctz=Asia/Taipei&showNav=0&showPrint=0&showCalendars=0

Exemple: lien vers un seul jour d'un calendrier public .)

34
Kai Carver

L'URL de l'événement n'est pas l'URL du calendrier.

Ce lien apporte des explications: Google Calender v3

Et le moyen de construire cette URL est: 

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

calendarId & eventId sont des paramètres.

J'espère que c'est utile.

6
Eric Van Loo

Voici le code HTML pour construire le lien:

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

5
Flea

Je voulais poster ceci parce que cela est inhérent à la question posée et que ce message est publié lorsque j'essayais de faire ce qui suit.

J'essayais de générer un événement Google dans le seul but d'être ajouté aux calendriers d'autres personnes et non enregistré dans un calendrier particulier. J'ai trouvé un exemple ici et j'essaie actuellement de comprendre les paramètres d'URL qu'il accepte.

https://www.google.com/calendar/render?action=TEMPLATE&text=PRP+Due&dates=20141106T120000Z/20141106T120000Z&details&location&trp=false
3
Alex Levine

Pour afficher l'événement de calendrier Google par ID d'événement.

Vous pouvez utiliser l'exemple ci-dessous:

https://www.google.com/calendar/event?eid={event-id}&ctz={timezone}

Exemple pour le fuseau horaire indien: 

https://calendar.google.com/calendar/event?eid=ZjVicWczYWpndmh0ZmdtYmd0cXFxZWc3czggdTJoZmoybGg0aDcwbmhzMzV2c25pamd1dG9AZw&ctz=Asia/Kolkata
2
Krrish

Pour créer une page sur laquelle les utilisateurs peuvent afficher publiquement le calendrier des événements, un utilisateur disposant des autorisations nécessaires pour modifier les paramètres de partage du calendrier doit d'abord rendre public le calendrier:

  • Dans le calendrier Google, en haut à droite, cliquez sur la molette Paramètres.

  • Dans Paramètres, cliquez sur l'onglet "Calendriers".

  • Cliquez sur le nom du calendrier avec lequel vous travaillez.

  • Ensuite, cliquez sur l'onglet "Partager ce calendrier". Assurez-vous que les cases à cocher de la capture d'écran ci-dessous sont cochées (entourées en rouge).

Google Calendar Settings Page


  • Ensuite, cliquez sur l'onglet "Détails du calendrier" situé en haut à gauche.

  • Faites défiler jusqu'à la section "Adresse du calendrier", comme indiqué dans la capture d'écran ci-dessous.

  • Cliquez sur "HTML". 

  • Un menu contextuel apparaîtra, incluant l'URL publique dont vous aurez besoin pour accéder au calendrier publiquement.


Get URL For Public Google Calendar


Voici un exemple de ce à quoi l'URL pourrait ressembler:

https://www.google.com/calendar/[email protected]&ctz=America/Los_Angeles&gsessionid=OK

De plus, consultez la API Google Données de calendrier pour obtenir des informations sur la création et l'utilisation de gadgets de calendrier.

0
jmort253

Pour obtenir l'événement à partir de l'API Google Agenda v3, appelez:

GET https://www.googleapis.com/calendar/v3/calendars/calendarId/events/eventId

L'événement contient une propriété htmlLink, qui correspond exactement à ce dont vous avez besoin:

Un lien absolu vers cet événement dans l'interface utilisateur Web de Google Agenda. Lecture seulement.

Voir https://developers.google.com/google-apps/calendar/v3/reference/events .

Le lien ressemble à ceci:

https://www.google.com/calendar/event?eid=XzYwcTMwYzFnNjBvMzBlMWk2MG80YWMxZzYwcmo4Z3BsODhyajJjMWg4NHMzNGg5ZzYwczMwYzFnNjBvMzBjMWc2c28zMmRoaDhwMGpnaDIxNnQyNDZkaGc2NG8zMGMxZzYwbzMwYzFnNjBvMzBjMWc2MG8zMmMxZzYwbzMwYzFnNzByNDRoMWk2b3AzOGUxazZoMms2aDFrNmQwamNkaTI2OHBrMmhpMjg4czRjZ2hoNzBwMF8yMDA2MDUwNSBob3BtYW4ubmxfbjE5ZGF2YWgxb3Zkb3EzbGl2N2t1aWU5Z.

Il ouvrira l’événement en plein écran, bien sûr si vous avez accès à l’événement. L'écran contiendra un bouton de retour pour revenir au calendrier.

Clairement, vous ne pouvez pas construire ce lien vous-même, vous devrez donc faire un appel à l'API, mais vous le faites probablement déjà de toute façon.

0
rhopman