External calendar sync
Share this article
Overview
External calendar sync connects Mallard Bay availability with calendars you already use elsewhere. From Integrations → Calendar, you can:
- Import availability from an ICS feed (for example a personal calendar or an online travel agency calendar) so Mallard Bay can block dates on selected listings, lodgings, and resources—helping reduce double bookings alongside Mallard Bay bookings.
- Export Mallard Bay trip and resource availability as a subscription URL you paste into Apple Calendar, Google Calendar, Outlook, or tools that accept calendar feeds—including workflows where you share availability outward (for example toward OTAs like Airbnb or Vrbo), when your setup supports that kind of feed.
The dashboard splits these into Import and Export tabs. Opening Integrations → Calendar lands on /integrations/calendar; if the URL does not match a specific tab path, the UI defaults to the Import tab.
Prerequisites
- Account access: The Calendar integration screen is gated by your Mallard Bay plan / feature access for synced calendars. If you cannot reach it, you may need to upgrade or contact support.
- Outfitter context: On the Import tab, if you are using the dashboard in an admin context without an outfitter selected, you may see a prompt to select an outfitter before import setup appears.
- ICS link for import: Imports require a valid calendar feed URL in ICS (
.ics) format. The Import rule form includes in-product guidance (“Need help finding your ICS link?”) that links to step-by-step help on obtaining the correct link.
What this repo does not spell out (behavior may exist server-side): how often feeds sync, exact limits on the number of import rules or export subscriptions, and every edge case for unusual ICS providers—if something behaves unexpectedly, support can confirm current backend rules.
Step-by-step: Open Calendar integrations
- In the dashboard, go to Integrations.
- Choose Calendar.
Product copy describes this as importing or exporting calendar data to sync availability across platforms. - Use the tab strip:
- Import —
/integrations/calendar/import - Export —
/integrations/calendar/export
Direct URLs work if you bookmark them.
- Import —
Import external calendars (block Mallard Bay availability)
What you are configuring
Each import rule (“synced calendar”) tells Mallard Bay:
- Where to read blocked time (Source label + ICS link).
- How aggressively to reduce availability when events appear (Availability config).
- Which operational inventory should be affected (Listings, Lodgings, Resources).
This ties integration setup to your listing availability model: you are not creating guest bookings from the feed; you are translating external calendar events into Mallard Bay availability changes on the resources you select.
Create an import rule
- Open Integrations → Calendar → Import.
- Select Import Calendar.
- Fill in the form:
- Source: A short label you will recognize (placeholder examples in the app include iCal, Google Calendar, Outlook, Airbnb, Vrbo).
- Link: The ICS URL. The field reminds you it must be ICS format. You cannot edit this URL later when editing a rule—only the label and downstream settings update.
- Availability config:
- Remove all availability — when applicable, clears availability tied to the rule’s behavior for matching events.
- Set a default number of slots to remove — optionally specify how many slots to remove by default (numeric control appears when enabled).
- Listings to update, Lodgings to update, Resources to update — pick the inventory Mallard Bay should adjust when the feed shows busy times.
- Submit (Create). On success you should see a confirmation toast that the synced calendar was created.
Review and manage import rules
Active rules appear in a table (Source and Link columns).
From the row menu:
- View Details — opens a read-only summary (source, copiable link, availability configuration, selected resources).
- Edit Rules — update label, availability behavior, and resource selection. The dashboard shows a banner explaining that updates apply to all related events—both newly fetched feed events and events already imported—so availability adjustments can cascade broadly.
- Archive — stops syncing new events. Confirmation copy states that events already imported remain, but no new events will sync.
Where imported time shows up operationally
Imported blocks surface on your Calendar as calendar events originating from a calendar import source type; selecting them opens calendar event details (distinct from opening a booking record). That distinction matters when you coordinate bookings made in Mallard Bay versus external holds mirrored via import.
Export Mallard Bay availability (subscription links)
What you are configuring
Each export is a named calendar subscription scoped to:
- A display name you choose, and
- All resources or a specific mix of listings, lodgings, and resources.
After creation, you receive a copiable subscription URL on the export card. Subscription rows support Edit and Delete (the delete flow archives the subscription server-side).
Deleting confirms that existing synced events remain on the consumer calendar in many cases, but the feed will no longer receive updates—exact behavior can vary slightly by the calendar app’s caching.
Note: Elsewhere in the app (for example calendar chrome tied to a primary subscription), there may be shortcuts that open Apple / Google / Outlook subscribe URLs. On the Integrations → Calendar → Export surface, the prominent pattern is copying the primary subscription URL from each export card.
Create an export
- Open Integrations → Calendar → Export.
- Select New export.
- Enter a Name.
- Under Select the listing or Resources you want to track, either choose All resources or pick specific listings, lodgings, and resources (the form requires at least one selection approach—specific picks or “all”).
- Submit (Create). On success you should see a confirmation toast for a created subscription.
Use the feed
Copy the URL from the export card and add it as a calendar subscription (not a one-time file import, in most apps) in your personal or third-party calendar. What subscribers see (titles, timing, all-day vs timed) depends on how Mallard Bay serializes the feed for those resources—details beyond the dashboard UI are not documented in this codebase.
Common pitfalls
- Wrong link type: Personal share links that are not ICS feeds fail validation. Use the ICS /
.icssubscription or export link from the external system. - Expecting automatic Mallard Bay bookings: Import rules adjust availability to reflect external busy time; they do not create full booking records with guests and payments.
- Editing an import URL: You cannot change the ICS URL after creation—archive the old rule and add a new one if the upstream feed address changes.
- Archive vs cleanup: Archiving an import stops future sync; it does not automatically delete historical imported calendar events from Mallard Bay—plan cleanup in the Calendar if needed.
- Export delete wording: The UI refers to Delete, but the confirmation explains the subscription stops updating; residual events may linger on external calendars until those apps refresh or you remove the subscription there.
- Access and outfitter selection: Missing feature access or outfitter context can block the Import experience even though Export may still be reachable—resolve context first.
Related workflows
- Operational calendar: Use the main Calendar to see bookings, manual holds, groups, and imported blocks together—your single place to sanity-check double-booking risk across channels.
- Listing availability: Fine-tune base availability and capacity on listings and related resources; import/export sits on top of that model as cross-platform signaling.
- Integrations hub: Other integrations (payments, messaging, website widgets, accounting, and more) complement calendar sync but do not replace it—each solves a different connection.
If you need ICS URLs for specific providers, use the in-product “Need help finding your ICS link?” banner on the import form or your Mallard Bay resource center articles that walk through common third-party sources step by step.