webentwicklung-frage-antwort-db.com.de

Wie baut man einen HTML-Link zu einem Google-Kalenderereignis?

Mit der Google Kalender-API Version 3 habe ich ein Ereignis zu einem Google Kalender hinzugefügt. Jetzt möchte ich einen HTML-Link erstellen, damit jemand auf das Kalenderereignis klicken und es anzeigen kann.

Folgendes habe ich ausprobiert:

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

der href sieht so aus:
https://www.google.com/calendar/feeds/default/private/full/bigstringhere1ovmuup7mjf0

Problem ist, ich bekomme einen 401-Fehler "Authorization Required"

Wie kann ich einen Link erstellen, um das Kalenderereignis basierend auf einer Google-Kalender-ID anzuzeigen/zu bearbeiten?

24
codingJoe

Da ist ein Weg! Um ein öffentliches Kalenderereignis anzuzeigen, verwenden Sie einen Link des Formulars:

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

dabei ist {Ereignis-ID} die eindeutige Ereignis-ID und {Zeitzone} eines von diese Zeitzonen .

Hier ein Beispiel: Verknüpfung zu einem bestimmten öffentlichen Kalenderereignis .

Wenn Sie Bearbeitungsrechte für den Kalender haben, von dem dieses Ereignis stammt, können Sie das Ereignis bearbeiten und die Gästeliste anzeigen. Ansonsten sehen Sie nur die öffentlichen Informationen über die Veranstaltung.

Da es schwierig sein kann, die Ereignis-ID zu ermitteln, wird hier ein Bookmarklet erstellt, das einen Link zu Ihrem Google Kalender-Ereignis enthält, wenn Sie die Detailseite bearbeiten:

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.")}})()

Und eine Version dieses Bookmarklets, die mit der neuen Google Kalender-Benutzeroberfläche (ab 2017) funktioniert:

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

(Möglicherweise auch nützlich, um eine Verknüpfung zu einem bestimmten Tag eines öffentlichen Google-Kalenders herzustellen:

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

dabei ist {calendar-id} die ID des Kalenders und {yyyymmdd} der Tag, zu dem Sie eine Verknüpfung herstellen möchten.

Zu den optionalen Parametern gehören die Zeitzone und die Anzeige verschiedener Elemente, zum Beispiel:

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

Beispiel: Verknüpfung zu einem Tag eines öffentlichen Kalenders .)

34
Kai Carver

Ereignis-URL ist keine Kalender-URL.

Dieser Link enthält Erklärungen: Google Calender v3

Die URL zum Erstellen dieser URL lautet: 

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

wobei calendarId & eventId Parameter sind.

Hoffe das ist hilfreich.

6
Eric Van Loo

Hier ist der HTML-Code zum Erstellen des Links:

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

Ich wollte das hier posten, weil es die Frage, die gestellt wird, tangiert, und dieser Beitrag erscheint, wenn ich Folgendes versuchen wollte.

Ich habe versucht, ein Google-Ereignis zu generieren, das ausschließlich zu den Kalendern anderer Personen hinzugefügt und nicht in einem bestimmten Kalender gespeichert werden soll. Ich habe hier ein Beispiel gefunden und versuche gerade, die URL-Parameter herauszufinden, die es akzeptiert.

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

So zeigen Sie das Google Kalender-Ereignis nach Ereignis-ID an.

Sie können das folgende Beispiel verwenden:

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

Beispiel für indische Zeitzone: 

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

Wenn ein Google Kalender-Ereignis erstellt wurde, haben wir in der Antwort die Eigenschaft result erhalten. In dieser result -Eigenschaft wäre eine weitere htmlLink verfügbar, die einen Link zum erstellten Ereignis enthält. Nun kann es geöffnet werden:

window.open(response.result.htmlLink, '_target');
0
solanki...

Um eine Seite zu erstellen, auf der Benutzer den Veranstaltungskalender öffentlich anzeigen können, muss ein Benutzer, der über Berechtigungen zum Ändern der Kalenderfreigabeeinstellungen verfügt, zunächst den Kalender öffentlich machen:

  • Klicken Sie im Google Kalender oben rechts auf das Einstellungsrad.

  • Klicken Sie in den Einstellungen auf die Registerkarte "Kalender".

  • Klicken Sie auf den Namen des Kalenders, mit dem Sie arbeiten.

  • Klicken Sie anschließend auf die Registerkarte "Diesen Kalender freigeben". Vergewissern Sie sich, dass die Kontrollkästchen im folgenden Screenshot (rot eingekreist) markiert sind.

Google Calendar Settings Page


  • Klicken Sie anschließend auf die Registerkarte "Kalenderdetails" oben links.

  • Scrollen Sie nach unten zum Abschnitt "Kalenderadresse" (siehe Abbildung unten).

  • Klicken Sie auf "HTML". 

  • Es erscheint ein Popup-Modal mit der öffentlichen URL, die Sie für den öffentlichen Zugriff auf den Kalender benötigen.


Get URL For Public Google Calendar


Hier ein Beispiel, wie die URL aussehen könnte:

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

Weitere Informationen zum Erstellen und Verwenden von Kalender-Gadgets finden Sie unter Google Calendar Data API .

0
jmort253

Rufen Sie Folgendes an, um das Ereignis von der Google Kalender-API Version 3 abzurufen:

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

Das Ereignis enthält eine Eigenschaft htmlLink, die genau das ist, was Sie brauchen:

Ein absoluter Link zu diesem Ereignis in der Google Calendar Web-Benutzeroberfläche. Schreibgeschützt.

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

Der Link sieht so aus:

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

Die Veranstaltung wird nur dann im Vollbildmodus geöffnet, wenn Sie Zugriff auf die Veranstaltung haben. Der Bildschirm enthält eine Zurück-Schaltfläche, um zum Kalender zurückzukehren.

Natürlich können Sie diesen Link nicht selbst erstellen, daher müssen Sie die API aufrufen, aber wahrscheinlich tun Sie das ohnehin schon.

0
rhopman