iCal-Feeds (Import + Export)
Aktualisiert am 2026-04-29
Für Kanäle, die keine API haben (und daher nicht über Channex laufen), nutzen Sie iCal-Feeds. Funktioniert mit: Bedandbreakfast.eu, Gites de France, Clévacances, Belvilla, Novasol, Interhome, Logis Hotels und im Grunde jedem Anbieter, der eine .ics-URL bereitstellt.
So funktioniert es
| Richtung | Was BedFlow tut |
|---|---|
| Import | Ruft eine externe .ics-URL stündlich ab und wandelt jedes VEVENT in eine Blockierung in /room-availability-overview um. Stornierungen an der Quelle werden automatisch bereinigt. |
| Export | Generiert eine öffentliche .ics-URL pro Zimmer mit allen Buchungen + manuellen Blockierungen. Externe Systeme abonnieren sie. |
| Both | Beides gleichzeitig (kann für PMS-zu-PMS-Sync sinnvoll sein). |
Einrichtung
- Öffnen Sie Verwaltung → iCal-Feeds in BedFlow
- Klicken Sie auf Neuer iCal-Feed
- Füllen Sie aus:
- Name: frei wählbar, z. B. "Bedandbreakfast.eu — Zimmer 4"
- Zimmer: wählen Sie das gewünschte Zimmer
- Richtung: meist
importfür eingehende Blockierungen - iCal URL: der
.ics-Link des externen Systems
- Speichern Sie
- Klicken Sie auf Jetzt synchronisieren in der Aktionsspalte, um sofort zu testen
- Der Cron übernimmt danach stündlich
Für den Export
- Erstellen Sie einen Feed mit Richtung
export(URL nicht nötig) - Nach dem Speichern klicken Sie auf Export-URL kopieren in der Aktionsspalte
- Fügen Sie diese URL im externen System ein (z. B. Booking.com Extranet → "Add iCal URL")
Multi-Tenancy
Jeder iCal-Feed ist an eine Property + ein Zimmer gebunden. Der TenantScope sorgt dafür, dass ein Betreiber nur die Feeds seiner eigenen Property sieht. Das Export-Token in der öffentlichen URL ist 48 Zeichen lang und pro Feed einzigartig — ein geleaktes Token gibt nur die Buchungen eines einzelnen Zimmers preis, nicht die des gesamten Tenants.
Unter der Haube
- Tabelle:
ical_feeds(property_id,room_id,direction,source_url,export_token, Sync-Status) - Service:
App\Services\Ical\IcalImportService(Fetch + Parse + Reconcile) undApp\Services\Ical\IcalExportService(generiert RFC-5545-Output) - Cron:
php artisan ical:sync-importsläuft stündlich über den Laravel Scheduler - Route:
GET /ical/{token}.ics— öffentlicher Export, ohne Auth, Token-geschützt - Reconciliation: importierte Zeilen erhalten
source = "ical:{feed_id}"aufroom_calendar_data. Bei jedem Sync werden nur Zeilen mit demselben Source-Tag neu abgeglichen — manuelle Blockierungen, MyTourist-Sync oder Channex-Buchungen bleiben unberührt.
Einschränkungen
- iCal ist ein read-only Sync: der Import übernimmt nur Verfügbarkeit, keine Preise oder Gästedaten. Für vollwertige OTA-Anbindungen nutzen Sie Channex.
- iCal-Publisher aktualisieren selbst oft nur täglich — eine Buchung über Bedandbreakfast.eu kommt also nicht binnen Sekunden an, sondern eher nach 1-24 Stunden.
- Recurrence Rules (RRULE) werden NICHT unterstützt. Für Unterkunfts-Feeds ist das kein Problem (jede Buchung = 1 VEVENT).