Channel manager — exporting and importing iCal feeds

Turtini Lodging includes a basic channel manager built on iCal. You can publish your availability to external listing sites (Airbnb, VRBO, Booking.com) and pull their bookings back so they appear on your unified reservation board.

Exporting your availability (outbound feed):
• Open Lodging → Properties → [your property] → Channel.
• Each property has a generated icalFeedToken (created at first activation). Combined with the property id, it produces a feed URL of the form:
https://api.turtini.com/v1/lodging/ical?property=<id>&token=<token>
• Paste this URL into Airbnb / VRBO / Booking.com's "Sync calendar from another site" field.
• The feed is regenerated on every request from your live reservation data — there's no scheduled refresh to wait for.
• Confirmed reservations and inquiries appear as BUSY blocks; cancelled reservations are excluded.

Importing external bookings (inbound feed):
• In the same Channel tab, paste a feed URL from Airbnb / VRBO / Booking.com under "Import from".
• Turtini calls the importLodgingICal callable, fetches the remote feed, and writes each block as a reservation in our system with status: 'inquiry'.
• Imported reservations are deduped by externalUid — running the import again won't create duplicates.
• Once imported, the reservation behaves like any other (you can confirm, cancel, room-charge, etc.).

If you change the icalFeedToken (e.g. you suspect it leaked):
• Generate a new token from the Channel tab. The old URL stops working immediately.
• Update each external listing site with the new URL.

This is a basic single-direction sync. Two-way real-time channel management (instant double-booking prevention across multiple sites) is on the roadmap; for now, treat the import-export model as "good enough for one or two channels".