Boutons « Ajouter au calendrier » pour votre app Lovable
Une réservation absente du calendrier de l'utilisateur, c'est un rendez-vous manqué en puissance. Sur iOS, WebViewGold permet d'ajouter un événement à l'app Calendrier depuis un simple lien vers un fichier .ics : votre app Lovable n'a besoin de rien d'autre que d'une URL qui renvoie l'événement. Sur Android, WebViewGold n'a pas d'API de calendrier dédiée ; voici ce qui fonctionne à la place.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
Garantie d'approbation – ou remboursement sous 14 jours
Aucun codage requis
Paiement unique, mises à jour gratuites
Support humain 24/7
Conçu en Allemagne depuis 2014 · ISO 27001
9:41
LLovable
Événements de calendrierDésormais dans votre poche
App Store · Google Play Approuvée
Ce qui fonctionne sur chaque plateforme
iOS : un lien vers un fichier .ics
WebViewGold est prévu pour Calendrier (anciennement iCal) : un lien classique vers un fichier .ics permet à l'utilisateur d'ajouter l'entrée au calendrier de l'iPhone ou de l'iPad. Pas de schéma d'URL, pas de pont JavaScript, et l'app web ne lit jamais le calendrier de l'utilisateur ; elle se contente de proposer un événement.
Android : téléchargement ou Google Calendar
La documentation Android ne contient pas d'API de calendrier. Deux voies fonctionnent : ajouter .ics à downloadableExtension dans Config.java pour que le fichier soit téléchargé et puisse être ouvert avec une app de calendrier qui importe les fichiers .ics, et proposer un lien « Ajouter à Google Calendar » qui s'ouvre hors de l'app.
Un fichier d'événement par réservation
Votre serveur renvoie un petit fichier texte (un VCALENDAR avec un VEVENT) pour chaque réservation, cours ou rendez-vous. La même URL sert le site web, l'app iOS et le téléchargement sur Android.
Prompt pour Lovable
Collez ceci dans Lovable pour implémenter la partie app web. Vérifiez le résultat, publiez, puis testez dans l'app WebViewGold.
Prompt à coller dans Lovable
Ajoutez une fonction Ajouter au calendrier pour les réservations, qui fonctionne dans l'app WebViewGold. 1) Ajoutez une colonne ics_token (aléatoire, unique) à bookings. 2) Créez une edge function Supabase booking-ics avec verify_jwt à false, accessible à /functions/v1/booking-ics/TOKEN.ics ; elle recherche la réservation par ics_token et renvoie un VCALENDAR avec un VEVENT (UID booking-ID@ourdomain, DTSTAMP, DTSTART et DTEND en UTC terminés par Z, SUMMARY, LOCATION, DESCRIPTION avec le lien de la réservation, un VALARM une heure avant) avec Content-Type text/calendar; charset=utf-8. 3) Échappez les virgules et les points-virgules dans les champs texte. 4) Sur la page de confirmation de réservation, ajoutez un lien Ajouter au calendrier vers cette URL, dans le même onglet. 5) Quand navigator.userAgent contient WebViewGold-Android, affichez aussi Ajouter à Google Calendar avec https://calendar.google.com/calendar/render?action=TEMPLATE et les paramètres text, dates, details et location.
WebViewGold nous a permis d'avoir le temps de mise sur le marché le plus court et le plus efficace jamais possible parmi toutes les autres plates-formes d'application que nous avons essayées au cours des 5 dernières années. Je ne sais pas pourquoi je ne vous ai pas découvert plus tôt, mais je suis vraiment, vraiment content de l'avoir fait. Nous approchons actuellement les 6000 téléchargements d'application sur l'App Store iOS et Google Play Store sans aucun problème!
Environ une heure, dont l'essentiel pour l'endpoint .ics.
Créez l'endpoint .ics
Ajoutez une route comme /calendar/BOOKING_TOKEN.ics qui renvoie l'événement avec Content-Type: text/calendar; charset=utf-8. Gardez un chemin qui se termine par .ics, comme dans l'exemple WebViewGold, et utilisez un token impossible à deviner plutôt que de compter sur la session de connexion.
Remplissez les champs qui comptent
Un UID stable par réservation, DTSTAMP, DTSTART et DTEND en UTC (terminés par Z), SUMMARY, LOCATION et une DESCRIPTION avec un lien vers la réservation. Échappez les virgules et les points-virgules dans le texte.
Ouvrez le lien dans le même onglet
Un simple <a href="https://yourdomain.com/calendar/TOKEN.ics">. Ne l'ouvrez pas dans une nouvelle fenêtre ni avec target="_blank" : une WebView n'a nulle part où l'afficher.
Gérez Android
Ajoutez .ics à downloadableExtension dans Config.java pour la voie du téléchargement, et affichez un lien « Ajouter à Google Calendar » avec calendar.google.com dans BROWSER_BLACKLIST, pour qu'il s'ouvre dans le navigateur du système, où la plupart des utilisateurs sont connectés à Google, plutôt que dans la WebView.
Testez sur de vrais appareils
Ajoutez un événement sur un iPhone, puis vérifiez le fuseau horaire, la durée et le lien dans la description. Sur Android, essayez des téléphones de deux fabricants ; les apps de calendrier n'ouvrent pas toutes les fichiers .ics téléchargés de la même façon.
Un fichier .ics minimal
C'est tout ce dont un calendrier a besoin. Selon la spécification iCalendar, les lignes se terminent par CRLF ; les bibliothèques s'en chargent pour vous. Partie serveur de votre stack : Supabase ou Lovable Cloud (Postgres, stockage, edge functions).
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:Cours de yoga
LOCATION:Studio 2\, 14 rue Principale
DESCRIPTION:Gérer votre réservation : https://yourdomain.com/bookings/123
BEGIN:VALARM
TRIGGER:-PT1H
ACTION:DISPLAY
DESCRIPTION:Cours de yoga dans une heure
END:VALARM
END:VEVENT
END:VCALENDAR
La logique du bouton
Le lien .ics partout, le lien Google Calendar en plus sur Android et sur ordinateur :
javascript
// User agents personnalisés : "... 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);
}
// Rendu : toujours le lien .ics ; le lien Google sauf si IS_IOS_APP
Pièges
Fuseaux horaires : écrivez les heures en UTC avec un Z final, ou incluez un bloc VTIMEZONE correct. Les heures locales « flottantes » se décalent pour les voyageurs et pour les utilisateurs d'autres fuseaux.
Un nouvel UID à chaque téléchargement peut créer des doublons. Gardez un UID par réservation ; la façon dont un calendrier traite une réimportation varie selon l'app.
URL .ics protégées par une connexion : la requête qui récupère le fichier peut ne pas transporter la session web de l'utilisateur. Un token aléatoire par réservation est l'option fiable.
Les abonnements à un calendrier (flux webcal://) sont une autre fonctionnalité ; la documentation WebViewGold couvre les fichiers .ics individuels.
WebViewGold a-t-il une API de calendrier pour Android ?
Pas d'API dédiée ; l'intégration du calendrier décrite dans la documentation concerne uniquement iOS. Sur Android, proposez le fichier .ics en téléchargement (ajoutez .ics à downloadableExtension dans Config.java) et un lien Ajouter à Google Calendar qui s'ouvre hors de l'app.
L'app peut-elle lire le calendrier de l'utilisateur pour vérifier ses disponibilités ?
Non. Le flux .ics se contente de proposer un événement que l'utilisateur ajoute. Les disponibilités relèvent de votre serveur, à partir de vos propres données de réservation.
Puis-je ajouter des événements récurrents ou des rappels ?
Oui, dans le fichier .ics : une ligne RRULE pour les cours qui se répètent et un bloc VALARM pour un rappel. L'affichage du rappel dépend de l'app de calendrier de l'utilisateur ; pour des rappels que vous maîtrisez, utilisez les notifications push.
Comment générer le fichier .ics pour mon app Lovable ?
Une petite route serveur construit le texte. Pour un seul événement, aucune bibliothèque n'est nécessaire, mais ical-generator (Node) ou icalendar (Python) aide pour les événements récurrents et l'échappement. Demandez à Lovable un endpoint qui renvoie du text/calendar pour un token de réservation.
Les liens de calendrier fonctionnent-ils aussi dans le navigateur ?
Oui. La même URL .ics télécharge ou ouvre l'événement dans les navigateurs de bureau et mobiles : un seul bouton sert le site web et les deux apps.
Trois façons de mettre votre app dans les stores
Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.
Faites-le vous-même
$109 par plateforme, paiement unique
La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.
Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.