Flux iCal (import + export)
Mis à jour le 2026-04-29
Pour les canaux qui n'ont pas d'API (et qui ne passent donc pas par Channex), vous utilisez les flux iCal. Fonctionne avec : Bedandbreakfast.eu, Gites de France, Clévacances, Belvilla, Novasol, Interhome, Logis Hotels et en fait toute plateforme qui propose une URL .ics.
Comment ça fonctionne
| Direction | Ce que fait BedFlow |
|---|---|
| Import | Récupère une URL .ics externe chaque heure et transforme chaque VEVENT en blocage dans /room-availability-overview. Les annulations à la source sont nettoyées automatiquement. |
| Export | Génère une URL .ics publique par chambre avec toutes les réservations + les blocages manuels. Les systèmes externes s'y abonnent. |
| Both | Les deux à la fois (peut être utile pour une synchronisation PMS vers PMS). |
Configuration
- Ouvrez Gestion → Flux iCal dans BedFlow
- Cliquez sur Nouveau flux iCal
- Complétez :
- Nom : libre, p. ex. "Bedandbreakfast.eu — Chambre 4"
- Chambre : sélectionnez la chambre concernée
- Direction : généralement
importpour les blocages entrants - iCal URL : le lien
.icsdu système externe
- Enregistrez
- Cliquez sur Synchroniser maintenant dans la colonne d'actions pour tester immédiatement
- Le cron prend ensuite le relais chaque heure
Pour l'export
- Créez un flux avec la direction
export(pas besoin d'URL) - Après l'enregistrement, cliquez sur Copier l'URL d'export dans la colonne d'actions
- Collez cette URL dans le système externe (p. ex. extranet Booking.com → "Add iCal URL")
Multi-tenancy
Chaque flux iCal est lié à une propriété + une chambre. Le TenantScope garantit qu'un opérateur ne voit que les flux de sa propre propriété. Le token d'export dans l'URL publique fait 48 caractères et est unique par flux — un token divulgué ne révèle que les réservations d'une seule chambre, pas celles de tout le tenant.
Sous le capot
- Table :
ical_feeds(property_id,room_id,direction,source_url,export_token, statut de synchronisation) - Service :
App\Services\Ical\IcalImportService(fetch + parse + reconcile) etApp\Services\Ical\IcalExportService(génère une sortie RFC-5545) - Cron :
php artisan ical:sync-importstourne chaque heure via le scheduler Laravel - Route :
GET /ical/{token}.ics— export public, sans authentification, protégé par token - Réconciliation : les lignes importées reçoivent
source = "ical:{feed_id}"surroom_calendar_data. À chaque synchronisation, seules les lignes portant ce même tag de source sont recomparées — les blocages manuels, la synchronisation MyTourist ou les réservations Channex restent intacts.
Limitations
- iCal est une synchronisation en lecture seule : l'import ne reprend que la disponibilité, pas les prix ni les données des clients. Pour des connexions OTA complètes, utilisez Channex.
- Les éditeurs iCal eux-mêmes ne mettent souvent à jour que quotidiennement — une réservation via Bedandbreakfast.eu n'arrive donc pas en quelques secondes, mais plutôt après 1 à 24 heures.
- Les règles de récurrence (RRULE) ne sont PAS prises en charge. Pour les flux d'hébergement, ce n'est pas un problème (chaque réservation = 1 VEVENT).