Passe es an deine Bedürfnisse an
Add to Calendar Button Konfiguration
Die nachfolgende Liste beinhaltet alle möglichen Attribute, um deinen Add to Calendar Button nach deinen Wünschen zu konfigurieren.
Wirf unbedingt auch einen Blick auf unsere Demo, bei welcher du mit den meisten Paramtern live herumspielen kannst - und durchstöbere die "Beispiele"-Seiten für weitere Erläuterungen und speziellere Funktionalitäten.
Um einen boolschen Wert in dem HTML-Element zu definieren, kannst du einfach nur den Namen als Attribute setzen.
Wenn er nicht gesetzt ist, definiert das die Option automatisch als "false". Alternativ kannst du den Wert aber auch immer vollständig als String ergänzen: attributeName="true".
PRO-Parameter
| Name(Wert) | Wert | Details |
|---|---|---|
| prokey | StringNur PRO | Wenn du unseren PRO-Service nutzt, kannst du das "prokey"-Attribut nutzen, um den Button mit einem bestimmten Event zu verknüpfen. |
| group-overview | BooleanNur PRO | Wenn eine Event-Gruppe sowohl für ein Abonnement als auch für eine Event-Liste konfiguriert ist, wird standardmäßig der Abonnement-Button angezeigt. Mit diesem Attribut wird stattdessen die Event-Liste angezeigt. |
| group-overview-config | ObjectNur PRO | Optionale Einstellungen für
|
Event-Parameter
| Name(Wert) | Wert | Details |
|---|---|---|
| name | StringPflichtfeld | Der Titel deines Events. Sollte ein eher kurzer String sein. |
| description | String | Unterstützt HTML-Pseudo-Tags zur Formatierung: [url], [br], [hr], [p], [strong], [u], [i], [em], [li], [ul], [ol], [h*] (wie etwa h1, h2, h3, ...). (Bei Kompatibilitätsproblemen kannst du auch geschweifte {} anstelle von eckigen [] Klammern nutzen.) (Apple, Yahoo und Microsoft Teams werden hierbei nicht vollständig unterstützt und der Wert automatisch zu Plain Text transformiert, womit nur Zeilenumbrüche und Links dargestellt werden.) |
| start-date | StringPflicht, wenn "dates" oder "subscribe" optionen nicht vorhandenYYYY-MM-DD | Ein Datum muss im Schema YYYY-MM-DD gemäß ISO-8601 formatiert sein Du kannst das Wort "today" nutzen, um dynamisch den jeweils aktuellen Tag zu setzen. Wenn du bspw. "+5" hinzufügst, werden automatisch 5 Tage aufaddiert. Inoffiziell werden Formate wie "YYYY-MM-DDTHH:MMZ" auch unterstützt. |
| start-time | StringHH:MM | Sofern nicht spezifiziert, wird das Event als Ganztages-Event abgebildet. |
| end-date | StringYYYY-MM-DD | Ein Datum muss im Schema YYYY-MM-DD gemäß ISO-8601 formatiert sein Du kannst das Wort "today" nutzen, um dynamisch den jeweils aktuellen Tag zu setzen. Wenn du bspw. "+5" hinzufügst, werden automatisch 5 Tage aufaddiert. Inoffiziell werden Formate wie "YYYY-MM-DDTHH:MMZ" auch unterstützt. |
| end-time | StringHH:MM | Sofern nicht spezifiziert, wird das Event als Ganztages-Event abgebildet. |
| time-zone | StringStandard: GMT | Kein Pflichtfeld, aber wärmstens empfohlen. Du kannst "currentBrowser" als Wert nutzen, um dynamisch die Zeitzone des jeweiligen Nutzers (Browser) zu wählen. Nutze diese Funktion mit Vorsicht, da dies bedeutet, dass die Zeitangabe für das Event je Nutzer unterschiedlich sein kann, was meist nicht gewollt ist. |
| use-user-tz | BooleanStandard: False | Diese Option transformiert Zeit und Zeitzone in die Einstellungen des jeweiligen Nutzers. Wenn du diese Option auf "true" setzt, wird die Zeit in die des Nutzers umgerechnet. |
| location | StringPflicht, wenn Schema.org Rich-Date gewünscht | Kann alles mögliche sein. Wenn es eine URL ist, so wird das Event innerhalb der Schema.org-Daten als "Online-Event" klassifiziert. |
| status | StringOptionen: tentative, confirmed, cancelledStandard: confirmed | Kann genutzt werden, um Änderungen an einem Event zu verwalten. |
| sequence | NumberStandard: 0 | Muss eine positive ganze Zahl sein. |
| availability | StringOptionen: busy, freeStandard: Standardeinstellung im Kalender des Nutzers | Standardmäßig wird ein Event gemäß der Standard-Einstellung im Kalender des jeweiligen Nutzers als beschäftigt/verfügbar gespeichert. |
| uid | StringXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXStandard: Zufällig generiert | Die einzigartige ID eines Events, wie sie für iCal-Dateien genutzt wird. Darf nur Buchstaben, Ziffern und Bindestriche enthalten; kleiner 255 Zeichen gesamt. |
| organizer | StringNAME|EMAIL | Schema "NAME|E-MAIL" (bspw. "Max Muster|max.muster@gmail.com"). Der "Organizer" wird innerhalb der Schema.org-Daten sowie in iCal-Dateien integriert. |
| attendee | StringNAME|EMAIL | Schema "NAME|E-MAIL" (bspw. "Max Muster|max.muster@gmail.com") oder einfach nur eine E-Mail-Adresse (Name ist optional). Es kann nur 1 "attendee" gesetzt werden Wenn du einen "attendee" definierst, muss auch die "organizer" option gesetzt sein. |
| dates | Array aus Objekten | Mit dem "dates"-Objekt kannst du eine Termin-Reihe spezifizieren. Es beinhaltet die gleichen Termin-Parameter wie die Haupt-Ebene, bietet aber die Möglichkeit mehrere Events zu definieren. Root-Level-Werte überschreiben Werte im "dates"-Objekt - mit Ausnahme des Namens, wenn es mehrere Termine gibt (dann wird der Root-Name zum Titel der Veranstaltungsreihe). Die "UID" wird nur für das erste Event übernommen (da die ID einzigartig sein muss). Weitere Events erhalten eine eigene, zufällig generierte ID. Attribute je Sub-Event-Block:
|
| recurrence | StringOptionen: "RRULE:..."; daily, weekly, monthly, yearly | Definiert wiederkehrende Events. Diese Optione deaktiviert die Yahoo- und Microsoft-Kalendar-Optionen (sowie Google unter iOS), da die Funktion dort aktuell nicht unterstützt wird (in diesen Fällen können Nutzer weiterhin auf die iCal-Datei zurückgreifen). Bleibt keine Option übrig, wird iCal als Fallback aktiviert. Du kannst jede valide RRULE mit Ausnahme von BYHOUR, BYMINUTE und BYSECOND nutzen, um eine entsprechende Regel anzuwenden (Generator-Tool). Alternativ zur RRULE kannst du auch die folgenden einfacheren und spezifischeren Einstellungen nutzen. Diese generieren die RRULE automatisch für dich im Hintergrund. |
| recurrence-interval | NumberStandard: 1 | Bestimmt den Abstand zwischen Wiederholungen. |
| recurrence-until | StringYYYYMMDDTHHMMSSZ | Definiert ein End-Datum. |
| recurrence-count | Number | Definiert die maximale Anzahl an Wiederholungen. |
| recurrence-by-day | String | Bestimmt die Wochentage (MO, TU, WE, TH, FR, SA, SU), an denen das Event stattfindet. Sinnvoll, sofern ein Termin an den Wochentag (bspw. Dienstag) und kein bestimmtes Datum geknüpft ist. |
| recurrence-by-month-day | String | Nutze diese Option anstelle von "byDay", sofern du dich auf ein bestimmtes Datum (1, 2, ... 31) anstatt eines Wochentags beziehen möchtest. |
| recurrence-by-month | StringOptionen: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 | Beschreibt die Monate (1, 2, 3, ... 12), in denen das Event wiederholt wird. |
| recurrence-weekstart | StringOptionen: MO, TU, WE, TH, FR, SA, SUStandard: MO | Definiert einen bestimmten Wochentag als Wochenstart. |
| subscribe | BooleanStandard: False | Alternativ zur Angabe eines bestimmten vordefinierten Events kannst du auch einen Kalender bereitstellen und ihn zum Abonnieren anbieten (erfordert einen gehosteten Kalender). "Name" und "start-date" wären für organisatorische Zwecke immer noch erforderlich, aber jeder andere Event-Parameter kann im Abonnementfall übersprungen werden. Sollte der Browser des Nutzers keine installierte Kalender-App erkennen, kann dies zu einer leeren Seite führen. Die PRO-Version optimiert dies mit einem erklärenden Zwischenbildschirm. |
| ics-file | StringURL | Die iCal/ics-Datei wir dynamisch generiert. Im "subscribe"-Fall muss hier der externe Kalender referenziert werden. Falls du mehrere Termine und einen "organizer" oder "status" definiert hast, musst du mehrere ics-Dateien vorhalten. Die Datei für den ersten Termin wird hier referenziert, während alle weiteren Termine eine Datei mit dem gleichen Namen zzgl. einer fortlaufende Nummer (beginnend mit 2) benötigen (bspw. "event-2.ics"). |
| ical-file-name | StringStandard: event-to-save-in-my-calendar | Wenn du einen bestimmten Namen für die generierte ics-Datei (iCal) definieren möchten, kannst du diesen über die Option ical-file-name definieren. |
ics-Datei-Optionen
Diese Optionen beeinflussen ausschließlich die generierte ics-Datei - sie gelten für die Kalender-Typen "apple" und "ical"; alle anderen Typen ignorieren sie einfach (kein Fehler, keine entfernte Option).
Alle außer "ics-exdate" können im Multi-Date-Fall auch pro Datums-Eintrag im "dates"-Array gesetzt werden (Root-Werte überschreiben Eintrags-Werte, wie bei den anderen Datums-Feldern).
| Name(Wert) | Wert | Details |
|---|---|---|
| ics-reminder | String / Number | Fügt eine Erinnerung hinzu. Setze die Minuten vor Event-Beginn (etwa |
| ics-url | String | Hängt einen kanonischen Link (die URL-Property) an das Event. Muss eine valide http(s)-URL sein. |
| ics-categories | String / Array | Verschlagwortet das Event mit einer kommaseparierten Liste von Kategorien. |
| ics-class | StringOptionen: public, private, confidential | Setzt die Klassifizierung des Events. |
| ics-priority | NumberOptionen: 0 - 9 | Setzt die Priorität von 0 (undefiniert) über 1 (höchste) bis 9 (niedrigste). |
| ics-geo | Stringlatitude,longitude | Ergänzt Geo-Koordinaten. Zusammen mit der regulären "location"-Option rendert Apple Calendar seine Karten-Vorschau. |
| ics-attach | String / Array | Hängt Dateien per URL an (eine kommaseparierte Liste von http(s)-URLs) - etwa ein Agenda-PDF oder ein Ticket. |
| ics-exdate | String / ArrayYYYY-MM-DD | Schließt Termine aus einer Terminserie aus (eine kommaseparierte Liste von Terminen). Erfordert die "recurrence"-Option und ist die einzige dieser Optionen, die nicht pro Datums-Eintrag gesetzt werden kann. |
| ics-created | StringYYYYMMDDTHHMMSSZStandard: Zeitpunkt des Datei-Downloads | Das "Created"-Feld in der iCal-Datei erhält grundsätzlich den Zeitpunkt, zu welchem die Datei generiert und heruntergeladen wird. Spezifiziere den Zeitpunkt als UTC Timestamp. Bspw. "20231201T103000Z". |
| ics-updated | StringYYYYMMDDTHHMMSSZStandard: Zeitpunkt des Datei-Downloads | Das "Updated"-Feld in der iCal-Datei erhält grundsätzlich den Zeitpunkt, zu welchem die Datei generiert und heruntergeladen wird. Spezifiziere den Zeitpunkt als UTC Timestamp. Bspw. "20231201T103000Z". |
Layout-Parameter
| Name(Wert) | Wert | Details |
|---|---|---|
| options | ArrayOptionen: apple, google, ical, ms365, msteams, outlookcom, yahoo | Array an Kalender-Arten, die in der Liste erscheinen. Sofern du nur 1 Option definierst wird der Button das Icon dieser Option anzeigen sowie direkt die jeweilige Kalender-Aktion auslösen und keine Auswahlliste öffnen (Singleton-Case). Optionen können deaktiviert werden, wenn sie aufgrund anderere Einstellungen nicht unterstützt werden! Du kannst eine andere Liste an Optionen für mobile Geräte definieren, indem du die optionsMobile-Option nutzt. Wenn du auch die optionsIOS-Option setzt, wird diese für iOS (nicht Mac!) berücksichtigt, während options-mobile für Android und andere mobile Geräte gilt. |
| button-style | StringOptionen: default, simple, 3d, flat, round, neumorphism, text, date, custom, noneStandard: default | Es gibt mehrere integrierte Button-Stile (Themes), die auch einige weitere Parameter beeinflussen. "none" würde gar kein CSS laden, während "custom" eine externes CSS-Datei über die "custom-css"-Option erfordert. Nur der Default-Style Teil des Skripts - jeder andere Style lädt automatisch bei Bedarf (wenige KB), oder ohne Netzwerk-Anfrage via |
| inline | BooleanStandard: False | Rendert den Button inline anstelle des standardmäßigen Block-Styles. |
| custom-css | StringURL | Du kannst eine externe CSS-DAtei anstelle der integrierten Optionen laden. |
| style-source | StringURL | Überschreibt die Basis-URL, von welcher On-Demand-Assets (Button-Styles jenseits des Defaults, Sprachpakete jenseits von Englisch) geladen werden. Standardmäßig laden diese von dort, wo auch das Skript selbst gehostet ist. Setze diese Option, wenn du das Skript in einem exotischen Setup selbst hostest oder die Assets von einem dedizierten Ort ausliefern möchtest. Die URL sollte auf das Verzeichnis zeigen, welches die |
| load-all-styles | BooleanStandard: False | Lädt alle Button-Style-Deltas bereits bei der Initialisierung. Nur sinnvoll, wenn du die "button-style"-Option zur Laufzeit wechselst (etwa in einem Live-Theme-Switcher) und der Wechsel ohne Netzwerk-Verzögerung greifen soll. Diese Option funktioniert nur bei Einbindung des Buttons über einen Script-Tag, nicht über das npm-Paket. Bei npm müssen die benötigten Style-Module stattdessen importiert werden - oder |
| buttons-list | BooleanStandard: False | Erzeugt einen Button je Kalender-Typ anstelle eines Buttons mit Liste. |
| label | StringStandard: Add to Calendar | Diese Option überschreibt den Text auf dem Button. |
| trigger | StringOptionen: hover, clickStandard: hover | In den meisten Fällen wird das Erscheinen der Kalendar-Link-Liste über Hover ausgelöst. |
| list-style | StringOptionen: dropdown, dropdown-static, dropup-static, overlay, modalStandard: dropdown | Die Kalender-Link-Liste kann als Dropdown, Overlay oder Modal dargestellt werden. Der Dropdown-Stil berücksichtigt auch die Position auf dem Bildschirm und zeigt die Liste je nach Situation über oder unter dem Button an. Nutze den Wert "dropdown-static", bzw. "dropup-static", um sie immer unterhalb oder oberhalb anzuzeigen. |
| force-overlay | BooleanStandard: False | Diese Option rendert das Dropdown zusammen mit dem Button über allem anderen - ähnlich der Modal-Option. Aufgrund der zusätzlichen Berechnungen geht dies mit kleinen Performance-Einbußen einher. |
| hide-background | BooleanStandard: False | Mit dieser Option wird der Hintergrund vollständig transparent erzeugt. |
| hide-icon-button | BooleanStandard: False | Diese Option verbirgt das Icon auf dem Button. |
| hide-icon-list | BooleanStandard: False | Diese Option verbirgt die Icons in der Kalender-Link-Liste. |
| hide-icon-modal | BooleanStandard: False | Diese Option verbirgt das Icon in den Modal-Dialogen. |
| hide-text-label-button | BooleanStandard: False | Diese Option verbirgt den Text auf dem Button. |
| hide-text-label-list | BooleanStandard: False | Diese Option verbirgt die Texte in der Kalender-Link-Liste. |
| hide-checkmark | BooleanStandard: False | Nach Klick auf einen Kalender-Link wird das Event als "gespeichert" markiert und ein Icon auf den Button gesetzt. |
| past-date-handling | StringOptionen: none, disable, hideStandard: none | Diese Option bestimmt, was passiert, sollte ein Termin in der Vergangenheit liegen. Beachte, dass die Funktion bei wiederkehrenden Events nicht greift! |
| size | StringX|X|XStandard: 6|6|6 | Du kannst eine Zahl zwischen 0 und 10 spezifizieren, um den Button zu skalieren. Du kannst 1 Zahl (bspw. "5") oder bis zu 3 Werte (bspw. "8|6|4") definieren. Bei mehreren Werten wird der erste für große, der zweite für mittlere und der dritte für kleine Bildschirme gesetzt. |
| light-mode | StringOptionen: system, dark, light, bodySchemeStandard: light | Jeder Button kommt mit einem Dark- und Light-Theme. Mit der Optiomn "light-mode" kann dies explizit ausgewählt werden. Du kannst auch den Wert "system" nutzen, um automatisch den Wert des Betriebssystems des Nutzers zu übernehmen. |
| language | StringOptionen: ar, az, be, bg, bs, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, hy, id, it, ja, ka, ko, lt, lv, mk, mt, nb, nl, nn, no, pl, pt, pt_BR, ro, ru, sk, sl, sq, sr, sr_latin, sv, tr, uk, vi, zh, zh_hantStandard: en | Wählt inkludierte Übersetzungen. Basissprachen nutzen ISO-639-1-Codes; RTL wird unterstützt. Englisch ist integriert, andere laden bei Bedarf oder per Locale-Import. Vollständige Locales wie |
| custom-labels | Object | Überschreibt alle Text-Blöcke mittels JSON und flachen Locale-Keys wie |
| style-light | String | Du kannst globale CSS Variabeln des Buttons überschreiben. Siehe CSS-Dateien im Repository. Beispiel: |
| style-dark | String | Du kannst globale CSS Variabeln des Buttons überschreiben. Alle möglichen Einträge findest du zu Beginn der jeweiligen CSS-Datei im Repository. |
Weitere Parameter
| Name(Wert) | Wert | Details |
|---|---|---|
| images | ArrayURLs | Bilder reichern Schema.org-Daten an. Mindestens eine absolute URL mit 720px Breite; ideal sind drei 1920px Bilder in 1x1, 4x3 und 16x9. |
| hide-rich-data | BooleanStandard: False | Sofern du "name", "start-date" und "location" definierst, werden automatisch Schema.org-Daten generiert. Mit dieser Option kann dies verhindert werden. |
| identifier | StringStandard: Aufsteigende Nummer | Jedes Element besitzt eine sprechende Tracking-ID: "atcb-btn-IDENTIFIER" bzw. "atcb-btn-IDENTIFIER-google". Standard ist eine aufsteigende Nummer; überschreibbar (einzigartig, keine Sonderzeichen). |
| bypass-web-view-check | BooleanStandard: False | In iPhone-WebViews können ics-Dateien nicht direkt geladen werden; daher erscheint eine Anleitung. Nur in eigener App umgehen, wenn Downloads im Standardbrowser und ics-file explizit möglich sind. |
| hide-branding | BooleanStandard: False | Standardmäßig gibt es ein dezentes Branding zur Unterstützung des freien Open-Source-Projekts. Diese Option entfernt es lizenzkonform. |
| cspnonce | String | Fügt allen Inline-Script- und Style-Tags ein "nonce"-Attribut hinzu; nützlich für strikte Content-Security-Policy. |
| instance | Number | Nutze dieses Attribut, um einen Button durch Hochzählen des Werts neu zu rendern. |
| pro-override | BooleanStandard: False | Ist diese Option aktiv, überschreiben Einstellungen die PRO-App-Werte. Nutze dies mit Vorsicht, da Inkonsistenzen entstehen können! |
| debug | BooleanStandard: False | Zeigt Fehlkonfigurationen in der JavaScript-Konsole und rendert einen Fehler statt des Kalenders. Hilfreich bei der ersten Implementierung. |