Wie erstelle ich einen Link, um einen Eintrag zu einem Kalender hinzuzufügen?

80

Ich arbeite für diesen Nachtclub und mache gerade eine Website für sie, sie haben viele Events und ihre Website ist viel um Events herum aufgebaut. Heute machen sie ein Facebook-Event von jedem Event, aber es wäre mörderisch, ein " Zu meinem Kalender hinzufügen ", mit der es Ihrem iCal- oder Google-Kalender (oder vielleicht sogar Outlook) hinzugefügt wurde.

Ich habe es geschafft, herauszufinden, wie man einen Kalender-Feed erstellt, aber dann wird er als neuer Kalender hinzugefügt. Das Gute ist nur, dass die Leute "Ereignisse abonnieren" können, aber es ist ziemlich chaotisch, für jedes Ereignis einen Kalender zu haben. Daher möchte ich wissen, wie eine Funktion implementiert wird, mit der sie sie einfach zu ihrem Hauptkalender hinzufügen können. Denken Sie wie ein Mailto: Link, aber für Kalender, wenn das möglich ist.

Weiß jemand, ob es möglich ist, ein Ereignis automatisch von Facebook nach WordPress zu importieren oder ein Ereignis von WordPress nach Facebook zu exportieren, was großartig wäre, aber das ist nicht so wichtig.

Hultner
quelle
Siehe auch
Denilson Sá Maia

Antworten:

52

UPDATE (kostenlos für den persönlichen Gebrauch):
HTTPS WIRD JETZT UNTERSTÜTZT

Während meine Antwort unten, in der die Vorgehensweise für jeden Dienst detailliert beschrieben wird, funktioniert, ist es IMO jetzt viel einfacher, mit einem Drittanbieter wie AddThisEvent [https://addthisevent.com] zusammenzuarbeiten . Sie können damit viele Optionen anpassen sowie Facebook und mehr hinzufügen. Leider haben sie es jetzt zu einem kostenpflichtigen Dienst für etwas anderes als den persönlichen Gebrauch gemacht und setzen dies durch.

Ich gehe davon aus, dass es andere Lösungen von Drittanbietern wie diese gibt, aber ich kann nur mit dieser sprechen, und es hat bisher für uns großartig funktioniert.


Für ein " Zu meinem Google Kalender hinzufügen " hatten sie früher ein Codegeneratorformular, das Sie verwenden konnten, haben es aber inzwischen entfernt. Weitere Informationen zu Google Kalender-Links finden Sie in der Antwort von squarecandy unten .

Für Outlook ist es ein bisschen komplizierter, aber im Grunde müssen Sie eine .vcsDatei mit den Daten des Ereignisses erstellen und einfach einen Link zu dieser Datei erstellen. Schritt-für-Schritt-Anleitung hier .

Für einen iCal- Link können Sie eine PHP-Klasse wie diese verwenden oder den Anweisungen auf dieser Seite zum Erstellen einer icsDatei (iCal-Datei) folgen .

Dave
quelle
12
Schade, dass es dafür keinen universellen Standard gibt, wie bei mailto: für E-Mail.
Hultner
Es scheint, dass Googles "Event Publisher Guide" -Seite dieses URL-generierende Formular nicht mehr bietet (es liegt leider in der Natur der Google-Dokumentation, sich ständig zu ändern), aber das URL-Format von @ squarecandy funktioniert immer noch einwandfrei (zumindest für Google Kalender)!
chbrown
Nun, ihre eigene Form hat nicht einmal Links generiert, die funktionierten. Deshalb haben sie sie wahrscheinlich entfernt. :)
squarecandy
93

Die Links in Daves Beitrag sind großartig. Nur um ein paar technische Details zu den Google-Links in eine Antwort hier auf SO zu setzen:

Google Kalender Link

<a href="http://www.google.com/calendar/event?action=TEMPLATE&text=Example%20Event&dates=20131124T010000Z/20131124T020000Z&details=Event%20Details%20Here&location=123%20Main%20St%2C%20Example%2C%20NY">Add to gCal</a>

Die Parameter sind:

  • action = TEMPLATE (erforderlich)
  • Text (URL-codierter Name des Ereignisses)
  • Datumsangaben (ISO-Datumsformat, Start- / Enddatum - muss sowohl Start- als auch Endzeit haben - mit dem Schaltflächengenerator können Sie die Endzeit leer lassen, aber Sie müssen eine haben, sonst funktioniert sie nicht.)
    • So verwenden Sie die Zeitzone des Benutzers: 20131208T160000 / 20131208T180000
    • Um die globale Zeit zu verwenden, konvertieren Sie in UTC und verwenden Sie dann 20131208T160000Z / 20131208T180000Z
    • Ganztägige Ereignisse können Sie 20131208/20131209 verwenden - beachten Sie, dass der Tastengenerator es falsch macht. Sie müssen das folgende Datum als Enddatum für ein ganztägiges Ereignis für einen Tag oder +1 Tag für das gewünschte Enddatum verwenden.
  • Details (URL-codierte Ereignisbeschreibung / Details)
  • Ort (URL-codierter Ort des Ereignisses - stellen Sie sicher, dass es sich um eine Adresse handelt, die Google Maps leicht lesen kann)

Update Februar 2018:

Hier ist eine neue Linkstruktur, die die neue Google-Version von Google Kalender zu unterstützen scheint, ohne dass eine API-Interaktion erforderlich ist:

https://calendar.google.com/calendar/r/eventedit?text=My+Custom+Event&dates=20180512T230000Z/20180513T030000Z&details=For+details,+link+here:+https://example.com/tickets-43251101208&location=Garage+Boston+-+20+Linden+Street+-+Allston,+MA+02134

Neue Basis-URL: https://calendar.google.com/calendar/r/eventedit

Neue Parameter:

  • Text (Name der Veranstaltung)
  • Datumsangaben (ISO-Datumsformat, Start- / Enddatum - muss sowohl Start- als auch Endzeit haben)
    • ein Ereignis mit Start- / Endzeiten: 20131208T160000 / 20131208T180000
    • Ganztägige Ereignisse, können Sie 20131208/20131209 - Enddatum sein 1 Tag , was Sie wollen das Enddatum sein muss .
  • ctz ( Zeitzone wie America / New_York - lassen Sie dieses Feld leer, um die Standardzeitzone des Benutzers zu verwenden. Es wird dringend empfohlen, diese in fast allen Situationen einzuschließen. Zum Beispiel eine Erinnerung an eine Videokonferenz: Wenn drei Personen in verschiedenen Zeitzonen auf diesen Link geklickt und a festgelegt haben Erinnerung an ihren "eigenen" Dienstag um 10:00 Uhr, das würde nicht gut funktionieren.)
  • Details (URL-codierte Ereignisbeschreibung / Details)
  • Ort (URL-codierter Ort des Ereignisses - stellen Sie sicher, dass es sich um eine Adresse handelt, die Google Maps leicht lesen kann)
  • add (durch Kommas getrennte Liste von E-Mails - fügt Gäste zu Ihrer neuen Veranstaltung hinzu)

Anmerkungen:

  • Die alte URL-Struktur oben leitet jetzt hier weiter
  • unterstützt https
  • Angebote mit Zeitzonen besser
  • akzeptiert +für Platz zusätzlich zu %20( urlencodevs rawurlencodein PHP - beide arbeiten)
squarecandy
quelle
2
Wenn jemand interessiert ist, habe ich eine PHP-Funktion erstellt, die diese Art von Google-Kalender-Link erstellt: gist.github.com/squarecandy/26611bbcfc63f9c7e3a7dc45e9145133
squarecandy
2
Erwähnenswert ist auch, dass die Zeitzone für mich nicht festgelegt wird, es sei denn, ich gebe sowohl die Zeitzonendaten als auch den ctz-Parameter an. Weitere Infos hier: zaclee.net/php/…
Zachary Schuessler
@squarecandy eine Idee, wie man dies dazu bringt, mehrere Daten gleichzeitig festzulegen? Wenn Sie beispielsweise einen Bereich wie Dienstag bis Donnerstag haben, diesen aber im Kalender als drei separate Ereignisse anzeigen möchten?
garek007
@ garek007 Ich denke nicht, dass das möglich ist. Das müssten 3 verschiedene Ereignisse sein. Wenn es eine Aufgabe gibt, die Sie in der Online-Version des Bildschirms "Ereignis hinzufügen" des Google Kalenders nicht ausführen können, können Sie diese Technik nicht verwenden. Sie könnten wahrscheinlich herausfinden, wie Sie mit der Google Kalender-API 3 Ereignisse gleichzeitig hinzufügen können. Dies ist jedoch nur ein Link zum "Ereignis hinzufügen" für ein einzelnes Ereignis.
Squarecandy
@squarecandy Ich möchte auch den Organizer aktualisieren. Gibt es eine Möglichkeit, mit der ich in diesem Link zum Erstellen von Events auch Organizer-Details hinzufügen kann?
Nikunj Undhad
12

Um den Google-Kalenderbeitrag von squarecandy zu ergänzen, hier das brandneue

OUTLOOK CALENDAR- Format (ohne dass .ics erstellt werden muss) !!

<a href="https://bay02.calendar.live.com/calendar/calendar.aspx?rru=addevent&dtstart=20151119T140000Z&dtend=20151119T160000Z&summary=Summary+of+the+event&location=Location+of+the+event&description=example+text.&allday=false&uid=">add to Outlook calendar</a>

Probier es aus

Am besten codieren Sie die Werte der Zusammenfassung, des Speicherorts und der Beschreibungsvariablen mit url_encode.

Um des Wissens willen

YAHOO-KALENDER- Format

<a href="https://calendar.yahoo.com/?v=60&view=d&type=20&title=Summary+of+the+event&st=20151119T090000&et=20151119T110000&desc=example+text.%0A%0AThis+is+the+text+entered+in+the+event+description+field.&in_loc=Location+of+the+event&uid=">add to Yahoo calendar</a>

Probier es aus

Das Verzichten auf Dritte bietet viele Vorteile, z. B. die Verwendung in E-Mails.

Email
quelle
7
Der Link für Outlook funktioniert anscheinend nicht mehr wirklich. Es fügt den Ort hinzu und ruft das Formular "Neues Ereignis" auf, füllt jedoch keine anderen Felder aus.
Steve
10
Um den Kommentar von @ Steve zu erweitern, wird der Outlook-Link nicht einmal mehr auf einen Server aufgelöst - ich erhalte einen DNS-Auflösungsfehler.
Owen Blacker
3
Entschuldigung, diese Antwort muss aktualisiert werden, um gültig zu sein.
Webaholik
8

Hier ist ein Dienst zum Kalender hinzufügen, der dem Zweck dient, ein Ereignis hinzuzufügen

  1. Apple Kalender
  2. Google Kalender
  3. Ausblick
  4. Outlook Online
  5. Yahoo! Kalender

Die Schaltfläche " Zum Kalender hinzufügen " für Ereignisse auf Websites und Kalendern ist einfach zu installieren, sprachunabhängig, zeitzonen- und DST-kompatibel. Es funktioniert perfekt in allen modernen Browsern, Tablets und Mobilgeräten sowie mit Apple Kalender, Google Kalender, Outlook, Outlook.com und Yahoo Kalender.

<div title="Add to Calendar" class="addeventatc">
    Add to Calendar
    <span class="start">03/01/2018 08:00 AM</span>
    <span class="end">03/01/2018 10:00 AM</span>
    <span class="timezone">America/Los_Angeles</span>
    <span class="title">Summary of the event</span>
    <span class="description">Description of the event</span>
    <span class="location">Location of the event</span>
</div>

Geben Sie hier die Bildbeschreibung ein

jGupta
quelle
1
Absolut perfekt. Ziemlich ähnlich wie addevent.com, aber ich denke, es gibt noch mehr Styling-Optionen und es ist MIT-lizenziert! Daher ist dies definitiv meine Wahl. Danke für diesen Link.
Arvid
9
Dies ist jetzt mit addevent.com
Separatrix
-4

Sie können das Programm eine .ics (iCal) -Version des Kalenders erstellen lassen und diese .ics dann in ein beliebiges Kalenderprogramm importieren: Google, Outlook usw.

Ich weiß, dass dieser Beitrag ziemlich alt ist, daher werde ich keinen Code eingeben. Aber bitte kommentieren Sie dies, wenn Sie möchten, dass ich einen Überblick darüber gebe.

fishcx
quelle
7
Ich würde mich sehr über ein Beispiel für diesen Code
freuen,