Zum Inhalt springen
WebViewGold Vibe Coding in den App Store
Deutsch
WebViewGold holen

Replit + Kalender

Buttons „Zum Kalender hinzufügen“ für deine Replit-App

Eine Buchung, die nicht im Kalender des Nutzers steht, ist ein No-Show mit Ansage. Auf iOS lässt WebViewGold Nutzer über einen einfachen Link auf eine .ics-Datei einen Termin in die Kalender-App übernehmen, deine Replit-App braucht also nichts weiter als eine URL, die den Termin liefert. Android hat in WebViewGold keine eigene Kalender-API; hier erfährst du, was dort stattdessen funktioniert.

Ab $109 einmalig pro Plattform, oder unser Team erledigt alles ab $698.

  • Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen
  • Kein Programmieren nötig
  • Einmalzahlung, kostenlose Updates
  • 24/7 Support von echten Menschen
  • Made in Germany seit 2014 · ISO 27001

Was auf welcher Plattform funktioniert

iOS: Link auf eine .ics-Datei

WebViewGold ist für den Kalender (früher iCal) eingerichtet: Ein normaler Link auf eine .ics-Datei lässt den Nutzer den Eintrag in den Kalender von iPhone oder iPad übernehmen. Kein URL-Scheme, keine JavaScript-Bridge, und die Web-App liest nie den Kalender des Nutzers; sie bietet nur einen Termin an.

Android: Download oder Google Kalender

Die Android-Dokumentation hat keine Kalender-API. Zwei Wege funktionieren: Füge .ics zu downloadableExtension in Config.java hinzu, damit die Datei heruntergeladen wird und sich mit einer Kalender-App öffnen lässt, die .ics-Dateien importiert, und biete einen Link „Zu Google Kalender hinzufügen“ an, der sich außerhalb der App öffnet.

Eine Termindatei pro Buchung

Dein Server liefert für jede Buchung, jeden Kurs oder jeden Termin eine kleine Textdatei (ein VCALENDAR mit einem VEVENT). Dieselbe URL bedient die Website, die iOS-App und den Android-Download.

Prompt für Replit

Füge das in Replit ein, um die Web-App-Seite umzusetzen. Prüfe das Ergebnis, veröffentliche und teste dann in der WebViewGold-App.

Prompt zum Einfügen in Replit Agent
Füge einen Kalenderexport für Buchungen hinzu, der in der WebViewGold-App funktioniert. Backend: Füge GET /calendar/:token.ics hinzu, das die Buchung über eine zufällige Spalte ics_token in Postgres lädt und ein VCALENDAR mit einem VEVENT zurückgibt (UID booking-ID@ourdomain, DTSTAMP, DTSTART und DTEND in UTC mit Z am Ende, SUMMARY, LOCATION, DESCRIPTION mit dem Buchungslink, ein VALARM eine Stunde vorher), mit Content-Type text/calendar; charset=utf-8. Maskiere Kommas, Semikolons und Zeilenumbrüche im Text und nutze CRLF-Zeilenenden. Füge eine Migration für ics_token hinzu. Frontend: Zeig auf der Buchungsseite einen Link „Zum Kalender hinzufügen“ auf diese URL im selben Tab; wenn navigator.userAgent WebViewGold-Android enthält, zeig zusätzlich „Zu Google Kalender hinzufügen“ mit einem Link auf calendar.google.com/calendar/render?action=TEMPLATE inklusive text, dates, details und location. Zeig beim Tippen kurz den Zustand „Kalenderdatei wird vorbereitet“.

Ich bin sehr glücklich, dass ich diese App gekauft habe! Extrem einfach und großartige Dokumentation. Ich stand in Kontakt mit dem Kundenservice, sie antworteten sehr schnell und sehr freundlich. Sie lösten meine Frage innerhalb eines Tages. 10/10 würde ich empfehlen.

Nelis Geiger · CodeCanyon

Einen Button „Zum Kalender hinzufügen“ einbauen

Rund eine Stunde, das meiste davon für den .ics-Endpunkt.

  1. Den .ics-Endpunkt anlegen

    Füge eine Route wie /calendar/BOOKING_TOKEN.ics hinzu, die den Termin mit Content-Type: text/calendar; charset=utf-8 zurückgibt. Lass den Pfad wie im WebViewGold-Beispiel auf .ics enden und nutze ein nicht erratbares Token, statt dich auf die Login-Session zu verlassen.

  2. Die wichtigen Felder füllen

    Eine stabile UID pro Buchung, DTSTAMP, DTSTART und DTEND in UTC (mit Z am Ende), SUMMARY, LOCATION und eine DESCRIPTION mit einem Link zurück zur Buchung. Maskiere Kommas und Semikolons im Text.

  3. Im selben Tab verlinken

    Ein einfaches <a href="https://yourdomain.com/calendar/TOKEN.ics">. Öffne es nicht in einem neuen Fenster oder mit target="_blank"; eine WebView hat keinen Ort, an dem sie ein neues Fenster zeigen könnte.

  4. Android abdecken

    Füge für den Download-Weg .ics zu downloadableExtension in Config.java hinzu und zeig einen Link „Zu Google Kalender hinzufügen“, mit calendar.google.com in BROWSER_BLACKLIST, damit er sich statt in der WebView im System-Browser öffnet, wo die meisten Nutzer bei Google angemeldet sind.

  5. Auf echten Geräten testen

    Füge auf einem iPhone einen Termin hinzu und prüf dann Zeitzone, Dauer und den Link in der Beschreibung. Probier es auf Android mit Smartphones von zwei Herstellern; Kalender-Apps öffnen heruntergeladene .ics-Dateien unterschiedlich.

Eine minimale .ics-Datei

Mehr braucht ein Kalender nicht. Laut iCalendar-Spezifikation enden Zeilen mit CRLF; Bibliotheken erledigen das für dich. Serverseite deines Stacks: Express-/Flask-/FastAPI-Backends mit Replit Postgres oder externen Datenbanken.

text
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//YourApp//Bookings//EN
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20261101T120000Z
DTSTART:20261205T170000Z
DTEND:20261205T180000Z
SUMMARY:Yogakurs
LOCATION:Studio 2\, Hauptstraße 14
DESCRIPTION:Buchung verwalten: https://yourdomain.com/bookings/123
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:DISPLAY
DESCRIPTION:Yogakurs in einer Stunde
END:VALARM
END:VEVENT
END:VCALENDAR

Die Button-Logik

Der .ics-Link überall, der Google-Kalender-Link als Extra auf Android und am Desktop:

javascript
// Eigene User Agents: "... WebViewGold-iOS" (Config.swift), "... WebViewGold-Android" (Config.java)
var ua = navigator.userAgent;
var IS_ANDROID_APP = ua.indexOf("WebViewGold-Android") !== -1;
var IS_IOS_APP = ua.indexOf("WebViewGold-iOS") !== -1;

function icsUrl(b) { return "https://yourdomain.com/calendar/" + b.token + ".ics"; }

function googleCalendarUrl(b) {
  var f = function (d) { return d.toISOString().replace(/[-:]|\.\d{3}/g, ""); };
  return "https://calendar.google.com/calendar/render?action=TEMPLATE" +
    "&text=" + encodeURIComponent(b.title) +
    "&dates=" + f(b.start) + "/" + f(b.end) +
    "&details=" + encodeURIComponent(b.url) +
    "&location=" + encodeURIComponent(b.location);
}

// Rendern: immer der .ics-Link; der Google-Link, außer bei IS_IOS_APP

Stolperfallen

  • Zeitzonen: Schreib Zeiten in UTC mit angehängtem Z oder füge einen korrekten VTIMEZONE-Block hinzu. Lokale Zeiten ohne Zeitzone verschieben sich für Reisende und für Nutzer in anderen Zeitzonen.
  • Eine neue UID bei jedem Download kann Duplikate erzeugen. Behalte eine UID pro Buchung; wie ein Kalender einen erneuten Import behandelt, ist von App zu App verschieden.
  • Login-geschützte .ics-URLs: Die Anfrage, die die Datei abruft, trägt die Web-Session des Nutzers unter Umständen nicht mit. Ein zufälliges Token pro Buchung ist die zuverlässige Lösung.
  • Kalender-Abos (webcal://-Feeds) sind ein anderes Feature; die WebViewGold-Dokumentation behandelt einzelne .ics-Dateien.
  • Ein Kalender-Button ist ein schönes natives Detail, aber kein Feature, das eine App allein durchs Review bringt. Kombiniere ihn mit Push-Erinnerungen und Deep Links zurück zur Buchung.

Häufig gestellte Fragen

Hat WebViewGold eine Kalender-API für Android?

Keine eigene; die Kalender-Integration in der Dokumentation gibt es nur für iOS. Biete auf Android die .ics-Datei als Download an (füge .ics zu downloadableExtension in Config.java hinzu) und dazu einen Link „Zu Google Kalender hinzufügen“, der sich außerhalb der App öffnet.

Kann die App den Kalender des Nutzers lesen, um die Verfügbarkeit zu prüfen?

Nein. Der .ics-Weg bietet nur einen Termin an, den der Nutzer hinzufügt. Die Verfügbarkeit gehört auf deinen Server, auf Basis deiner eigenen Buchungsdaten.

Kann ich wiederkehrende Termine oder Erinnerungen hinzufügen?

Ja, in der .ics-Datei: eine RRULE-Zeile für wiederkehrende Kurse und ein VALARM-Block für eine Erinnerung. Wie die Erinnerung erscheint, hängt von der Kalender-App des Nutzers ab; für Erinnerungen, die du selbst steuerst, nimm Push-Benachrichtigungen.

Wie erzeuge ich die .ics-Datei für meine Replit-App?

Eine kleine Server-Route baut den Text. Für einen einzelnen Termin brauchst du keine Bibliothek, bei wiederkehrenden Terminen und beim Maskieren helfen aber ical-generator (Node) oder icalendar (Python). Bitte Replit um einen Endpunkt, der für ein Buchungs-Token text/calendar zurückgibt.

Funktionieren Kalender-Links auch im Browser?

Ja. Dieselbe .ics-URL lädt den Termin in Desktop- und Mobilbrowsern herunter oder öffnet ihn direkt, ein Button bedient also die Website und beide Apps.

Drei Wege, deine App in die Stores zu bringen

Gleiches Ergebnis, unterschiedlich viel Arbeit auf deiner Seite. Alle drei kommen mit Genehmigungsgarantie und 24/7 Support von echten Menschen.

Selbst machen

$109 pro Plattform, einmalig

Die WebViewGold-Lizenz: ein fertiges Xcode- oder Android-Studio-Projekt. URL einfügen, Name und Icon setzen, Features einschalten, bauen und einreichen. Kostenlose Updates für immer.

Pakete auf der Hauptseite ansehen

Full Service

$698 pro Plattform $798

Schick uns deine URL und dein Icon. Unser Team konfiguriert, baut und liefert deine App innerhalb von 72 Stunden, White-Label, inklusive Quellprojekten. Beide Plattformen für $1,158.

Full-Service-Details Powered by WeSetupYourWebViewApp

Winter-Sale-Preise gültig bis 31. Dezember 2026.

Bereit, deine Replit-App zu veröffentlichen?

App Store & Google Play Genehmigungsgarantie – oder Geld zurück innerhalb von 14 Tagen

Lieber abgeben? Full Service: Wir konfigurieren, bauen und liefern innerhalb von 72 Stunden, ab $698 pro Plattform. Fragen? Chatte mit uns – 24/7.

Erstattungen erfolgen zu den in unseren FAQ genannten Bedingungen: eine nicht inhaltsbedingte Ablehnung durch Apple und/oder Google, geltend gemacht innerhalb von 14 Tagen nach dem Kauf.