Aller au contenu
WebViewGold Du vibe coding à l'App Store
Français
Obtenir WebViewGold

Bolt + calendrier

Boutons « Ajouter au calendrier » pour votre app Bolt

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 Bolt 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

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 Bolt

Collez ceci dans Bolt pour implémenter la partie app web. Vérifiez le résultat, publiez, puis testez dans l'app WebViewGold.

Prompt à coller dans Bolt
Ajoutez l'export calendrier des réservations, qui fonctionne dans notre app WebViewGold. Créez une Netlify Function booking-ics et, dans netlify.toml, une réécriture de /calendar/* vers /.netlify/functions/booking-ics/:splat avec le statut 200, pour que les liens ressemblent à /calendar/TOKEN.ics. La fonction retire .ics du chemin, charge la réservation par son ics_token aléatoire depuis Supabase avec SUPABASE_SERVICE_ROLE_KEY issue de l'environnement Netlify, et renvoie un VCALENDAR avec un VEVENT (UID stable, DTSTAMP, DTSTART et DTEND en UTC avec Z, SUMMARY, LOCATION, DESCRIPTION avec le lien de la réservation) en text/calendar; charset=utf-8. Ajoutez une colonne ics_token à bookings. Sur la page de confirmation, affichez Ajouter au calendrier dans le même onglet, jamais avec target blank. Quand navigator.userAgent contient WebViewGold-Android, affichez aussi Ajouter à Google Calendar avec un lien calendar.google.com/calendar/render?action=TEMPLATE. Ne mettez jamais la clé service role dans une variable VITE_.

Excellente façon de convertir son app web en app native ! Un délai très court, et un super moyen de mettre ses apps dans les stores sans devoir développer une app native complète !

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Ajouter un bouton « Ajouter au calendrier »

Environ une heure, dont l'essentiel pour l'endpoint .ics.

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

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

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

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

  5. 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, Firebase ou votre propre API.

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.
  • Un bouton de calendrier est une jolie touche native, pas une fonctionnalité qui fait passer une app à l'examen à elle seule. Combinez-le avec des rappels push et des deep links vers la réservation.

Questions fréquentes

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 Bolt ?

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 à Bolt 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.

Voir les offres sur la page principale

Full Service

$698 par plateforme $798

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.

Détails du Full Service Propulsé par WeSetupYourWebViewApp

Prix Soldes d'hiver valables jusqu'au 31 décembre 2026.

Prêt à publier votre app Bolt ?

Garantie d'approbation App Store & Google Play – ou remboursement sous 14 jours

Vous préférez déléguer ? Full Service : nous configurons, compilons et livrons sous 72 heures, dès $698 par plateforme. Des questions ? Chattez avec nous 24/7.

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.