Skip to main content

Calendar View

Before you begin

How it works

Appointments → Calendar is your day-to-day schedule. Click a slot or appointment to open the admin appointment panel for create, view, or edit.

What you need

  • At least one appointment on the calendar (test booking or admin create)
  • Shop manager or administrator role

Month, week, day, and list layouts · sticky toolbar · filters · unavailable overlays · live sync across open tabs.

Live updates

Open calendar tabs stay in sync via Server-Sent Events (/wp-json/wc-appointments/v2/sse) — new bookings and edits appear without refresh.

Drag-and-drop on the calendar does not re-validate availability (same as before). Storefront booking still validates slots.

Views

ViewBest for
MonthLong-range planning and density
WeekDaily operations and staff columns
DayHour-by-hour detail
ListSortable table with filters

Month calendar

Week calendar

Day calendar

Toolbar

The calendar toolbar stays sticky under the WordPress admin bar (and WooCommerce / staff chrome) so one page scrollbar moves the grid. Day headers dock under the toolbar while you scroll.

  • Add New — leading filled button (primary + “New” on wide screens; icon-only under 782px)
  • Today — text button, or a home icon under 600px
  • View — outlined pill select (month / week / day / list)
  • Truncated date range shows the full text on hover (desktop) or tap (mobile)

Filters

Toolbar Filter → multi-select product, staff, and status in the collapsible panel.

Filter panel

FilterNotes
ProductColor dot per product
StaffMulti-select; staff users locked to self
StatusUnpaid, pending, confirmed, paid, complete, cancelled

The filter button shows an active-count badge only; selections stay in the panel (no inline toolbar chips). Clear all resets. Use previous/next, Today, and the title for navigation.

Drag and resize

Move — drag to new time, day, or staff column.

Resize — drag bottom edge; snaps to product interval.

Reschedules add order notes when an order is linked.

Create and open appointments

GesturePanel mode
Empty slot / empty cell clickCreate (prefilled time when a slot is hit)
Drag across empty cells (week/day)Create (range)
Appointment clickViewEdit
Toolbar Add NewCreate (no date/time prefill)
Tap / click an unavailable stripeTip only (does not open create)

Create appointment in panel

Pick from a calendar inside the panel browses slots — Admin appointment panel.

View appointment in panel

Timezone labels: when the customer zone differs from yours, hover the label for their local time — Timezones.

Unavailable overlay

Striped blocks from availability rules (global always; product/staff when filtered). Rules merge by priority, scope, and list order — see How rules combine.

  • Month: full-day blocks only
  • Week/day: time-level blocks; date-only / full-day stripes follow the same civil-day rule as all-day appointments (not shifted by admin timezone)
  • Hover (desktop) or tap (mobile) shows a tip with rule title and scope (no full modal)
  • Overlapping rules share one tip; empty cells still open create

Tapping a stripe does not open the create panel.

Visual cues

  • Product calendar colors on events
  • Past and cancelled appointments use muted styling
  • Skeleton loading while events fetch
  • Status details in the panel, not on every calendar card

Screen options

SettingEffect
Use legacy calendar temporarilyPre-5.1 calendar
Use legacy Create as a customer temporarilyOlder panel header

Troubleshooting

IssueCheck
Blank calendarBrowser console; conflicting plugins
No live updatesSSE blocked by firewall/proxy
Drag failsedit_appointments capability; try another browser
Wrong timesSite timezone and staff profile