Features
OperationsLive

Booking Calendar

Visual monthly and weekly calendar with OTA-colored booking pills, manual date locks, and conflict detection.

Overview

The VillaTax booking calendar gives you a visual layout of all your property's occupancy (across every connected OTA and manual booking) in one unified view. Monthly and weekly modes, OTA-colored pills, conflict detection, and manual date locking are all built into booking calendar.

This is not a planning tool disconnected from your data. Every pill on the calendar traces back to a real booking record with full financial and tax detail.

Calendar Views

Monthly View

The default view shows the full month as a grid. Each booked date range appears as a colored pill spanning the appropriate cells. Booking pills display the guest name directly on the calendar so you can identify reservations at a glance without opening any detail page.

Color coding by OTA:

  • Airbnb bookings: red
  • Booking.com: dark blue
  • Agoda: blue
  • Traveloka: sky blue
  • Direct bookings: green
  • Manual locks: grey

A color legend below the grid explains the OTA mapping. Navigation arrows move forward and backward by month.

Weekly View

The weekly view shows 7 days in a column layout, each column is one day, each booking is a pill in the relevant column. The same OTA color system applies. Navigation moves the 7-day window forward or backward.

The weekly view is useful when your calendar is dense or when you need to review a specific period in detail without the compression of the monthly grid.

Clicking into Bookings

Every pill on the calendar is clickable. Clicking a booking pill opens the full booking detail at the booking detail, showing gross amount, taxes, guest contact, platform, and reconciliation status. The calendar is a navigation layer over your booking data, not a separate system.

Manual Date Locking

You can block dates without a booking record, for maintenance windows, owner stays, or any period you want to mark as unavailable.

Creating a manual lock:

  1. Click on any unbooked date in the grid
  2. Fill in the lock modal: date range, reason (optional)
  3. The lock appears as a grey pill on the calendar

Manual locks are stored as availability records. They are distinct from OTA bookings; they do not trigger tax calculations, do not create journal entries, and do not appear in booking reports.

Locks can be removed at any time from the lock modal or by clicking the existing lock pill.

Conflict Detection

When two availability records overlap (for example, an OTA booking and a manually created block covering the same dates), the calendar displays a visual conflict indicator on the affected dates.

Conflicts can arise from:

  • iCal sync delays between two connected platforms
  • A manual lock placed over an already-synced booking
  • Overlapping date ranges in an imported CSV

The conflict indicator highlights the affected cells. You resolve conflicts manually by reviewing the two overlapping records and either removing the lock or cancelling one of the entries from the booking detail page.

Data Source and Sync Timing

The calendar reads from your property's availability records, which are populated by:

  • iCal sync: polled every 4-24 hours per connected integration. Not real-time.
  • CSV import: applied immediately on upload.
  • Manual booking entry: applied immediately.

Because iCal polling is not instantaneous, there can be a lag of up to 24 hours between a new OTA booking and its appearance on your VillaTax calendar. This is expected behavior, not an error.

Multi-Property Use

The calendar is scoped to one property at a time. Use the property selector in the dashboard header to switch between properties. Each property has its own availability timeline.

Sync History

If you want to review sync logs per OTA integration (last sync time, number of bookings imported, errors) the sync history is accessible from Integrations and sync history.

What the Calendar Does Not Do

  • It does not push availability back to OTAs (read-only view of imported data)
  • It does not block OTA availability in real-time when you create a manual lock
  • It does not handle pricing or minimum-stay rules
  • Airbnb and Booking.com real-time webhooks are not yet live (requires official OTA partner status)

Getting Started

Navigate to booking calendar after connecting at least one OTA integration or importing a booking CSV. If you have existing bookings without availability records, a backfill is required, contact support or use the import flow to regenerate availability from your booking history.

Open in dashboard

Access this feature in your workspace.