Konfiguration

Die nachfolgende Liste beinhaltet alle möglichen Attribute, um deinen Add to Calendar Button nach deinen Wünschen zu configurieren.

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.

Event-Parameter

Name(Wert)Details
proKeyString Wenn du unseren PRO-Service nutzt, kannst du das "proKey"-Attribut nutzen, um den Button mit einem bestimmten Event zu verknüpfen.
In diesem Fall müssen ansonsten keine weiteren Parameter im Code definiert werden, da die weitere Verwaltung zu 100% im Add to Calendar PRO Admin-Bereich erfolgt.
nameString

Pflichtfeld
Der Titel deines Events.

Sollte ein eher kurzer String sein.
Auch Pflicht, sofern du die "dates"-Option nutzt (Multi-Date). In diesem Fall dient der Wert als Fallback und Name für die Termin-Reihe.
Bei Nutzung der Kalender-Abonnement-Funktion wird der Wert für die Microsoft-Services zudem als Kalendar-Name genutzt.
descriptionString Unterstützt HTML-Pseudo-Tags zur Formatierung: [url], [br], [hr], [p], [strong], [u], [i], [em], [li], [ul], [ol], [h*] (wie etwa h1, h2, h3, ...).
Einen Link-Text spezifizierst du mit folgendem Schema: [url]https://....|URL Text[/url].

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

Beispiel
startDateString

Pflicht, wenn "dates" oder "subscribe" optionen nicht vorhanden

YYYY-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.

Beispiel
startTimeString

HH:MM
Sofern nicht spezifiziert, wird das Event als Ganztages-Event abgebildet.
endDateString

YYYY-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.
endTimeString

HH:MM
Sofern nicht spezifiziert, wird das Event als Ganztages-Event abgebildet.
timeZoneString

Standard:GMT
Kein Pflichtfeld, aber wärmstens empfohlen.
Eine Liste valider Zeitzonen findest du auf Wikipedia .

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.
Eine Zeitzone ist nur relevant, wenn startTime und endTime spezifiziert sind.
useUserTZBoolean

Standard:False
Diese Option transformiert Zeit und Zeitzone in die Einstellungen des jeweiligen Nutzers.

Wenn du diese Option auf "true" setzt, wird die Zeitzone ignoriert und die Zeit in die des Nutzers umgerechnet.
Dies verhält sich anders als die künstliche "browserTime"-Zeitzone, welche nur die Zeitzone, nicht aber die Zeit selbst, anpasst.
Verwende diese Option mit Bedacht, da das Manipulieren der Zeitzone pro Nutzer unerwünschte Nebeneffekte haben kann. Dies sollte normalerweise vom Kalender-Programm des Nutzers übernommen werden!
locationString

Pflicht, 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.
Ein Online-Event wird auf Date-Buttons nicht angezeigt. Zusätzlich werden in diesem Fall Zeitangaben auf diesem Button-Type in die Zeitzone des Nutzers übertragen (geschieht auch bei den Werten "Global", "Worldwide" und "Online").
statusString

Optionen:TENTATIVE, CONFIRMED, CANCELLED

Standard:CONFIRMED
Kann genutzt werden, um Änderungen an einem Event zu verwalten.
Gemäß der iCalendar-Spezifikation RFC5545 .

Beispiel
sequenceNumber

Standard:0
Muss eine positive ganze Zahl sein.
Muss größer werden, wenn Veränderungen am Event vorgenommen werden.

Beispiel
uidString

XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Standard: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.
Ein Hex-kodierter zufälliger "Universally Unique Identifier" (UUID) wird empfohlen.
organizerString

NAME|E-MAIL
Schema "NAME|E-MAIL" (bspw. "Max Muster|[email protected]").

Der "Organizer" wird innerhalb der Schema.org-Daten sowie in iCal-Dateien integriert.
Sofern diese Option gesetzt wird, verändert sich auch die iCal-Struktur. Anstelle eines einfachen Events wird eine Event-Einladung, der man zu- oder absagen kann, erzeugt.

Beispiel
attendeeString

NAME|E-MAIL
Schema "NAME|E-MAIL" (bspw. "Max Muster|[email protected]") oder einfach nur eine E-Mail-Adresse (Name ist optional).
Mit dieser Option kannst du ein Event im Kalender eines Nutzers aktualisieren, wenn dieser Nutzer auch die neue iCal-Datei speichert.

Es kann nur 1 "attendee" gesetzt werden
Diese Person muss gleichzeitig diejenige sein, die das Event speichert.
Wenn du nicht über diese Information verfügst, solltest du die Option nicht nutzen!

Wenn du einen "attendee" definierst, muss auch die "organizer" option gesetzt sein.
datesArray of Objects Mit dem "dates"-Objekt kannst du eine Termin-Reihe spezifizieren.

Es beinhaltet im Grunde die gleichen Parameter wie die Haupt-Ebene, bietet aber die Möglichkeit mehrere Events zu definieren. Abgesehen von Datums- und Zeitangaben wird für die möglichken Parameter stets eine Information auf der Haupt-Ebene genutzt, sofern sie innerhalb des "dates"-Elements fehlt. Für die "UID" geschieht dies allerdings nur für das erste Event (da die ID einzigartig sein muss). Weitere Events erhalten eine eigene, zufällig generierte ID.

Attribute je Sub-Event-Block:
  • name
  • description
  • startDate
  • startTime
  • endDate
  • endTime
  • timeZone
  • useUserTZ
  • location
  • status
  • sequence
  • availability
  • uid
  • organizer
  • attendee


Beispiel
recurrenceString

Optionen:
"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.
Beachte, dass es nicht möglich ist, mehr als 1 Termin (dates option) gemeinsam mit der recurrence option zu verwenden.

Du kannst jede valide RRULE nutzen, um eine entsprechende Regel anzuwenden (Generator-Tool ).
Beachte, dass das startDate ein valides Datum innerhalb des definierten Regelwerks sein muss!

Alternativ zur RRULE kannst du auch die folgenden einfacheren und spezifischeren Einstellungen nutzen. Diese generieren die RRULE automatisch für dich im Hintergrund.
In diesem Fall würdest du als Wert für die "recurrence"-Option lediglich die Frequenz (täglich, wöchentlich, ...) anstelle der kompletten RRULE definieren.

Beispiel
recurrence_intervalNumber

Standard:1
Bestimmt den Abstand zwischen Wiederholungen.
"3" würde "jedes dritte Vorkommnis" beschreiben.
recurrence_untilString Definiert ein End-Datum.

Beachte, dass dies von vielen Anwendungen nicht unterstützt wird! Nutze stattdessen lieber die "count"-Option.
recurrence_countNumber Definiert die maximale Anzahl an Wiederholungen.
Sofern recurrence_until und recurrence_count definiert sind, gilt, was zuerst eintritt. Sofern keiner der Werte gegeben ist, erfolgt die Wiederholung endlos.
recurrence_byDayString 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.
Erfordert eine wöchentlichen Frequenz.
Kann um Zahlen erweitert werden, um Regeln auszudrücken, wie den 3ten Montag (3MO).
Mehrere Tage möglich; durch Komma getrennt.
recurrence_byMonthDayString Nutze diese Option anstelle von "byDay", sofern du dich auf ein bestimmtes Datum (1, 2, ... 31) anstatt eines Wochentags beziehen möchtest.
Erfordert ein monatliche Frequenz.
Mehrere Werte möglich; durch Komma getrennt.
recurrence_byMonthString

Optionen: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.
Erfordert ein jährliche Frequenz.
Mehrere Werte möglich; durch Komma getrennt.
recurrence_weekstartString

Optionen:MO, TU, WE, TH, FR, SA, SU

Standard:MO
Definiert einen bestimmten Wochentag als Wochenstart.
availabilityString

Optionen:busy, free

Standard:Standard-Einstellung im Kalender des Nutzers
Standardmäßig wird ein Event gemäß der Standard-Einstellung im Kalender des jeweiligen Nutzers als beschäftigt/verfügbar gespeichert.
Für Apple-, iCal- und Google-Kalender kann dieser Wert mittels dieser Option erzwungen werden.
subscribeBoolean

Standard:False
Alternativ zur Angabe eines bestimmten vordefinierten Events kannst du auch einen Kalender bereitstellen und ihn zum Abonnieren anbieten (erfordert einen gehosteten Kalender).
Um das Abonnement über den Button anzubieten, musst du zusätzlich die icsFile-Option definieren.

"Name" und "startDate" wären für organisatorische Zwecke immer noch erforderlich, aber jeder andere Event-Parameter kann im Abonnementfall übersprungen werden.
Für Microsoft-Dienste wird der "Name" als Name für den Kalender verwendet.
Microsoft Teams wird derzeit nicht unterstützt und automatisch deaktiviert. Gleiches gilt für andere Microsoft-Dienste auf mobilen Geräten.

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.

Beispiel
icsFileString

URL
Die iCal/ics-Datei wir dynamisch generiert.
Dies hat den Nachteil, dass der Prozess in seltenen Fällen vom Browser des Nutzers blockiert werden kann.
Mit dieser Option kannst du stattdessen auf eine bestehende ics-Datei verweisen.

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").
iCalFileNameString

Standard: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 iCalFileName definieren.
createdString

YYYYMMDDTHHMMSSZ

Standard:Uhrzeit bei Download der Datei
Das "Created"-Feld in der iCal-Datei erhält grundsätzlich den Zeitpunkt, zu welchem die Datei generiert und heruntergeladen wird.
Nutze diese Option, um stattdessen einen bestimmten Timestamp zu setzen.

Spezifiziere den Zeitpunkt als UTC Timestamp. Bspw. "20231201T103000Z".
updatedString

YYYYMMDDTHHMMSSZ

Standard:Uhrzeit bei Download der Datei
Das "Updated"-Feld in der iCal-Datei erhält grundsätzlich den Zeitpunkt, zu welchem die Datei generiert und heruntergeladen wird.
Nutze diese Option, um stattdessen einen bestimmten Timestamp zu setzen.

Spezifiziere den Zeitpunkt als UTC Timestamp. Bspw. "20231201T103000Z".
Get blown away by the PRO offering

Du möchtest mehr Funktionen bei deutlich weniger Stress?

Layout-Parameter

Name(Wert)Details
optionsArray

Optionen:Apple, Google, iCal, Microsoft365, MicrosoftTeams, Outlook.com, 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!
Auf iOS-Geräten wird die iCal-Option durch "Apple" ersetzt.

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 optionsMobile für Android und andere mobile Geräte gilt.
buttonStyleString

Optionen:default, 3d, flat, round, neumorphism, text, date, custom, none

Standard:default
Es gibt mehrere integrierte Button-Stile (Themes), die auch einige weitere Parameter beeinflussen.
Wir empfehlen die Optionen der Reihe nach auszuprobieren, um herauszufinden, wie sie sich im Detail verhalten.

"none" würde gar kein CSS laden, während "custom" eine externes CSS-Datei über die "customCss"-Option erfordert.
inlineBoolean

Standard:False
Diese Option rendert den Button inline anstelle des standardmäßigen Block-Styles.

Beispiel
customCssString

URL
Du kannst eine externe CSS-DAtei anstelle der integrierten Optionen laden.
Spezifiziere die URL der Datei hier und nutze die buttonStyle-Option "custom".

Beispiel
buttonsListBoolean

Standard:False
Wenn du diese Option aktivierst wird ein Button je Kalender-Typ erzeugt - anstelle eines Buttons mit entsprechender Liste.

Beispiel
labelString

Standard:Add to Calendar
Diese Option überschreibt den Text auf dem Button.
triggerString

Optionen:hover, click

Standard:hover
In den meisten Fällen wird das Erscheinen der Kalendar-Link-Liste über Hover ausgelöst.
Wenn du stattdessen eine Klick-Interaktion erzwingen möchtest, kannst du dies über diese Option definieren.
listStyleString

Optionen:dropdown, dropdown-static, dropup-static, overlay, modal

Standard: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.
forceOverlayBoolean

Standard:False
Diese Option rendert das Dropdown zusammen mit dem Button über allem anderen - ähnlich der Modal-Option.
Dies kann nützlich sein, wenn dein Layout und die HTML-Struktur nicht mit der Standard-Option, bei der das Dropdown direkt am Button gerendert wird, kompatibel ist.

Aufgrund der zusätzlichen Berechnungen geht dies mit kleinen Performance-Einbußen einher.
hideBackgroundBoolean

Standard:False
Mit dieser Option wird der Hintergrund vollständig transparent erzeugt.
hideIconButtonBoolean

Standard:False
Diese Option verbirgt das Icon auf dem Button.
hideIconListBoolean

Standard:False
Diese Option verbirgt die Icons in der Kalender-Link-Liste.
hideIconModalBoolean

Standard:False
Diese Option verbirgt das Icon in den Modal-Dialogen.
hideTextLabelButtonBoolean

Standard:False
Diese Option verbirgt den Text auf dem Button.
hideTextLabelListBoolean

Standard:False
Diese Option verbirgt die Texte in der Kalender-Link-Liste.
hideCheckmarkBoolean

Standard:False
Nach Klick auf einen Kalender-Link wird das Event als "gespeichert" markiert und ein Icon auf den Button gesetzt.
Dies ist nicht der Fall, wenn der Text auf dem Button verborgen wird, die buttonsList-Option gesetzt ist oder mit der atcb_action-Variante gearbeitet wird.
Nutze diese Option hier, um das Icon auch in allen anderen Fällen zu verbergen.
pastDateHandlingString

Optionen:none, disable, hide

Standard:none
Diese Option bestimmt, was passiert, sollte ein Termin in der Vergangenheit liegen.
Wenn du sie auf "disable" setzt, wird der Button deaktiviert, bei "hide" vollständig ausgeblendet. In beiden Fällen kann der Nutzer das Event nicht mehr speichern.

Beachte, dass die Funktion bei wiederkehrenden Events nicht greift!
sizeString

X|X|X

Standard: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.
Sofern 2 Werte angegeben werden, so gilt der zweite für mittlere und kleine Bildschirme.
lightModeString

Optionen:system, dark, light, bodyScheme

Standard:light
Jeder Button kommt mit einem Dark- und Light-Theme.

Mit der Optiomn "lightMode" kann dies explizit ausgewählt werden. Du kannst auch den Wert "system" nutzen, um automatisch den Wert des Betriebssystems des Nutzers zu übernehmen.
Mit dem Wert "bodyScheme" wird automatisch nach der class "atcb-dark" (oder "dark") im html oder body tag Ausschau gehalten - der Button lässt sich in diesem Fall dynamisch dem Stil der Webseite anpassen.
languageString

Optionen:ar, cs, de, en, es, et, fa, fi, fr, hi, id, it, ja, ko, nl, no, ro, pl, pt, sv, tr, vi, zh

Standard:en
Sofern du die Text-Blöcke in einer anderen Sprache als Englisch anzeigen möchtest, kannst du die inkludierten Übersetzungen nutzen (i18n).

Spezifiere einfach eine der unterstützten Sprachen als ISO 639-1 code .
Für Arabisch, Persisch wird zudem Rechts-nach-Links (RTL) für alle Elemente unterstützt und automatisch angewendet.
customLabelsObject Text-Blöcke können über die Option "customLabels" verändert werden.
Hierbei muss eine JSON-Struktur mit den zu überschreibenden Texten definiert werden. Sieh dir die atcb-i18n.js-Datei für eine Liste der verfügbaren Keys an.
Ein so manipulierter Text überschreibt auch jegliche Übersetzung.
Für Text-Blöcke kannst hierbei die gleichen HTML-Pseudo-Tags nutzen, wie sie auch in der "description"-Option möglich sind.

Beispiel
styleLightString Du kannst globale CSS Variabeln des Buttons überschreiben.

Alle möglichen Einträge findest du zu Beginn der jeweiligen CSS-Datei im Repository .

Beispiel: styleLight="--btn-background: #2f4377; --btn-text: #fff; --font: Georgia, 'Times New Roman', Times, serif;"

Die styleLight-Option definiert den Standard. Um Dark-Mode-Variabeln zu überschreiben, musst du zusätzlich die styleDark-Option setzen.
styleDarkString Du kannst globale CSS Variabeln des Buttons überschreiben.

Alle möglichen Einträge findest du zu Beginn der jeweiligen CSS-Datei im Repository .
Get blown away by the PRO offering

Du möchtest mehr Funktionen bei deutlich weniger Stress?

Weitere Parameter

Name(Wert)Details
imagesArray

URLs
Bilder werden verwendet, um die Rich-Data-Angaben anzureichern und somit bspw. Rich-Snippets in den Google-Suchergebnissen zu steuern.
Es wird empfohlen, mindestens ein Bild über eine absolute URL mit einer Breite von mindestens 720px zu definieren.
Idealerweise definierst du 3 Bilder mit einer Breite von je 1920px. Eines mit einem Seitenverhältnis von 1x1, eines mit 4x3 und eines mit 16x9. Wenn nichts angegeben ist, wird ein Standard-Bild verwendet.
hideRichDataBoolean

Standard:False
Sofern du "name", "startDate" und "location" definierst, werden beim Erstellen des Buttons automatisch Schema.org-Daten generiert.
Mit dieser Option kann dies verhindert werden.
identifierString

Standard:Aufsteigende Nummer
Jedes generierte Button- und Kalender-Link-Element besitzt eine sprechende ID, die für Tracking-Maßnahmen genutzt werden kann.
Schema: "atcb-btn-IDENTIFIER", bzw. "atcb-btn-IDENTIFIER-google" (für die Google-Option).
Der IDENTIFIER ist im Standard eine aufsteigende Numer, kann mittels dieser Option aber überschrieben werden (keine Sonderzeichen erlaubt; muss einzigartig sein).
bypassWebViewCheckBoolean

Standard:False
Für Nutzer, die den Button auf ihrem iPhone in einer WebView-Umgebung (z.B. dem Instagram Browser) laden, können wir die ics-Datei nicht direkt zum Download anbieten.
Deshalb zeigen wir in diesem Fall eine kleine Anleitung, wie man den Termin stattdessen speichern kann.
Wenn du den Button in deiner eigenen Anwendung verwendest; in der du den Download von ics-Dateien im Standardbrowser aktiv zulassen kannst und gleichzeitig die Datei explizit mit der "icsFile"-Option bereitstellst, kannst du diesen Workaround mit der Option bypassWebViewCheck umgehen.
hideBrandingBoolean

Standard:False
Standardmäßig wird ein dezentes Branding integriert.

Dies ist eine kleine Unterstützung für dieses kostenfreie Open-Source-Projekt.

Sofern du das Projekt nicht unterstützen möchtest, kannst du mit dieser Option das Branding entfernen (im Einklang mit den Lizenzbedingungen).
instanceNumberNutze dieses Attribut, um einen Button durch Hochzählen des Werts neu zu rendern.
proOverrideBoolean

Standard:False
Ist diese Option aktiv, überschreiben jegliche Einstellungen die korrespondierenden Werte, die über die PRO-App gesetzt wurden. Nutze dies mit Vorsicht, da sich hierdurch sehr leicht Inkonsistenzen über diverse Systeme ergeben können!
debugBoolean

Standard:False
Wenn du diese Option aktivierst, wird jede Fehlkonfiguration in der JavaScript-Konsole des Browsers angezeigt und anstelle des Kalenders eine Fehlermeldung ausgegeben.
Dies ist hilfreich, wenn der Button zum ersten Mal implementiert wird.

Teste die meisten Optionen direkt live in unserem Testbereich!

Live ausprobieren

Oder entdecke weitere konkrete Beispiele.

Beispiele erkunden

Für speziellere Fälle, kannst du auch die "Danger Zone" erkunden.

Profi-Konfiguration
Get blown away by the PRO offering

Entdecke das PRO-Angebot

Mehr Funktionen (wie RSVP) und deutlich weniger Stress dank ics-Datei-Hosting, No-Code-Bearbeitung und vielem mehr.


Impressum | Datenschutz | Lizenz | Hilfe
© 2024 , Current Version: 2.8.0