Calendar and scheduling
Share this article
Overview
The Mallard Bay Calendar (/calendar) is your operational hub: see trips and other calendar activity across dates, open details in a side panel, filter what you see, switch between month, week, and agenda views, and use shortcuts to add bookings, group related items, open the Availability editor, or try Smart Schedule with AI.
Availability—what guests can actually book for a listing or another schedulable resource—is edited on /calendar/edit, not on the main Calendar grid. The Calendar shows what is scheduled and helps you run the day; Availability is where you change bookable dates, slots, and (when your setup supports it) time windows. Together, availability connects your listings and resources to bookings and helps avoid conflicting use of the same assets.
Smart Schedule (/smart-schedule) is a separate flow where you pick a resource type and resource, describe what you want in chat, preview suggested changes on a calendar, and apply them when you are ready.
Items on the calendar can be tied to bookings, event groups you create in the dashboard, or calendar imports (for example, synced personal or third-party calendars). Calendar Subscribe actions generate links so you can follow Mallard Bay in Apple Calendar, Google Calendar, or Outlook—they are for visibility elsewhere, not for changing Mallard Bay availability (which is separate from Integrations calendar import/export settings).
Prerequisites
- An outfitter must be selected. If none is selected, you may see a prompt to choose one before the Calendar area loads meaningfully.
- Your team member permissions must allow the actions you need (for example, creating bookings or editing calendar events).
- Seeing bookings and calendar content on the main Calendar may depend on subscription or feature access: the dashboard wraps that experience in a feature check (
ViewBookingsInCalendar). Not verified in this repo: the exact plan names or upgrade paths shown in the product—use what you see in your account if it differs.
Step-by-step: Main Calendar (`/calendar`)
Open the Calendar and move through time
- Go to Calendar in the dashboard (
/calendar). - Use the toolbar controls to move to the previous or next month or week, or jump to today (behavior follows the active view).
- Switch view using the control in the toolbar: month, week, or agenda (the code uses the standard “big calendar” view set for the main Calendar, not the Availability editor).
The app can keep the current month in the URL when you navigate so the calendar can reopen on the same period.
Filter what appears
- Open Filters from the toolbar (on the main Calendar, not on the Availability editor screen).
- Under Listings, choose which listings to include. New sessions typically start with all outfitter listings selected; you can narrow the set.
- Under Status, toggle booking-related statuses (for example Approved, Requested, Completed, Canceled, Denied). By default, the app pre-selects a subset of statuses; Canceled and Denied may be off until you turn them on—if something is missing, check these boxes.
- Under Other, use non-listing events if you want items that are not tied to a listing (for example some operational or imported entries) to show or hide.
Filtering helps when you have many listings or want a cleaner view of confirmed trips versus exceptions.
Week view and resources
- Switch to week view.
- Use the resource type control (listing, lodge, team member, vehicle, boat, gear, blind, ATV) to choose how rows are grouped. The weekly layout loads calendar events by resource type for that week.
If no resources of that type exist for the range, you may see an empty state for that type.
Work with a day or an event
- Click a day on the month grid (or a day in week view) to open the side drawer. It shows the date range and a list of events in that selection.
- Click an event on the grid to open the same drawer with that event selected; the selection also aligns the chosen dates with that trip.
- In the drawer, use event cards to open details. Depending on the source:
- Booking-sourced items can tie into the booking drawer and booking workflows (payments, forms, guest communication, etc.).
- Event group items open group detail behavior.
- Calendar import items show calendar event details (title, overview, linked resources, notes; edit and delete where the product allows).
On smaller screens, when the drawer is open, the calendar area may hide to give the panel room.
Header shortcuts
From the Calendar header you can:
- Add dashboard booking — start a new booking (context is recorded as coming from the Calendar).
- Create group — build an event group from selected calendar items (the flow uses a modal and the calendar’s multi-select behavior).
- Subscribe — when subscription data exists, open Apple, Google, or Outlook links so your Mallard Bay schedule appears in another calendar app (read-only follow; not a substitute for editing availability here).
- Availability (primary action):
- Update availability →
/calendar/edit(general availability editor). - AI Availability →
/smart-schedule(Smart Schedule with AI).
- Update availability →
Step-by-step: Availability editor (`/calendar/edit`)
Use this when you need to change what can be booked, not only to view operations.
- From Calendar, open Availability → Update availability, or go directly to
/calendar/edit. - If the URL includes a resource type and resource ID, that resource can be pre-selected; otherwise pick type and the specific listing or other resource (lodges, team members, vehicles, boats, gear, blinds, ATVs—matching the selectors in the app).
- Select dates and set available or unavailable, capacity (slots) when supported, and optional custom time windows when the UI offers them; then save.
On wide screens, a side panel shows resource-specific options (including a Smart Schedule entry point where the live UI shows it). Breadcrumbs read Calendar → Availability; for a listing, a link to Manage listing may appear for marketing and setup outside scheduling.
Edit vs main Calendar: The Availability calendar uses different view rules than the main Calendar (for example, toolbar view options are tied to hourly-capability and internal “developer” flags in code). Not verified for every account: whether week or hourly-style grids appear—follow what your dashboard shows.
Step-by-step: Smart Schedule (`/smart-schedule`)
- Open Smart Schedule with AI from the Calendar Availability menu, from a Smart Schedule banner when shown (for example near availability for a resource), or go to
/smart-schedule. - Select a resource type, then the specific resource (the prompts explain that this keeps availability scoped to the right asset).
- In chat, describe what you want (for example open dates or block dates). In-app instructions invite you to say what you want next.
- When the assistant proposes a change, a calendar preview shows the suggestion; use the confirm / cancel controls to accept or dismiss. Applying a suggestion uses the same availability acceptance path as other AI availability updates.
If resource query parameters are incomplete, the flow may wait for you to complete type and resource before chat runs—matching the code guard that skips chat until both are set.
Calendar event page (`/calendar/event/[id]`)
The route /calendar/event/:id loads a full-page calendar event view. In the codebase, links to this page are built from the Availability calendar for non-booking events (bookings instead link to the booking page). Not verified: every other entry point in the live product (notifications, emails, or bookmarks); if you land here from a link, use back to return to the route the app encoded as your return path.
Common pitfalls
- Looking for “why isn’t my trip on the calendar?” Check Filters (listing selection and status toggles) and non-listing events. Canceled or denied trips stay off the default status set until you include them.
- Trying to change bookable dates from the main Calendar only. Use Availability (
/calendar/edit) or Smart Schedule to change what guests can book; the main Calendar is for visibility and operational actions. - Expecting Subscribe links to edit Mallard Bay. They are for following schedule data in another app, not for changing your Mallard Bay availability.
- Wrong outfitter selected — data and resources belong to the active outfitter; switching outfitters changes what you see and edit.
- Smart Schedule without choosing a resource — complete resource type and resource so chat and preview can run.
Related workflows
- Bookings — Calendar entries sourced from bookings connect to reservation status, payments, guest readiness (forms, waivers, onboarding), and messaging; handle changes to confirmed trips in booking workflows, not only on the calendar surface.
- Quotes and booking invites — Sales flows may precede a confirmed booking; availability still determines which dates can complete into a live trip.
- Listings — Manage listing covers pricing, marketing, documents, and more; Availability is the scheduling slice for bookable windows.
- Integrations (calendar import/export) — Separate from the Subscribe buttons on the Calendar; use Integrations for deeper sync scenarios described there.
- Website and booking widget — What you make bookable feeds guest-facing flows; keeping availability accurate protects bookings from avoidable conflicts.
Unknown from this repository alone: Exact subscription tier names, in-app paywall copy, and every notification that deep-links to /calendar or /calendar/event. Rely on the live dashboard and your account’s feature flags for those details.