Available Calender

View real-time availability and choose a time that works best for you!

Select a date to view availability…

Availability Calendar — JavisTab Booking Pro
Tính năngFeatures

Mọi thứ bạn cần để
hiển thị lịch trống cho khách
Everything you need to
show guests live availability

7 tính năng thiết kế cho nhà hàng — hiển thị ngay trên website WordPress.7 features designed for restaurants — rendered directly on your WordPress site.

📅 Live

Xem ca trống theo ngàyLive Slot Availability by Date

Khách chọn ngày → REST API /rbp/v1/availability trả về danh sách ca với số bàn còn trống. Mặc định là ngày hôm nay, tự load khi page load. Guest selects a date → REST API /rbp/v1/availability returns all slots with available table count. Defaults to today and auto-loads on page load.

🌞🌙 UI

Icon Ca Trưa / Ca TốiLunch / Dinner Icons

Ca trưa hiển thị 🌞, ca tối hiển thị 🌙. Tên ca, giờ bắt đầu và loại slot hiển thị riêng biệt giúp khách dễ dàng nhận biết. Lunch slots show 🌞, dinner shows 🌙. Slot name, start time, and type are displayed separately for at-a-glance recognition.

🚫 Admin

Nhãn “fully booked” tuỳ chỉnhCustomisable “Full” Label

Cấu hình nhãn hiển thị khi ca hết bàn trong Settings (full_slot_label). Mặc định “fully booked”. Card ca hết bàn đổi màu đỏ với CSS .rbp-slot-card.full. Configure the label shown when a slot is full in Settings (full_slot_label). Default “fully booked”. Full slot cards turn red via CSS .rbp-slot-card.full.

🔢 Live

2 chế độ sức chứa2 Capacity Modes

by_tables: đếm bàn trống. by_guests: đếm tổng khách trong ca (lý tưởng cho buffet). Cấu hình trong Settings → capacity_check_mode. by_tables: counts available tables. by_guests: tracks total guest count per slot (ideal for buffets). Configured via Settings → capacity_check_mode.

📡 API

REST API tích hợp sẵnBuilt-in REST API

Endpoint GET /wp-json/rbp/v1/availability?restaurant_id=&date= trả về JSON array các slot. Có thể dùng độc lập để tích hợp với app mobile hoặc dashboard riêng. Endpoint GET /wp-json/rbp/v1/availability?restaurant_id=&date= returns a JSON array of slots. Can be used standalone to integrate with mobile apps or custom dashboards.

UX

Load tức thì khi đổi ngàyInstant Load on Date Change

Khi khách chọn ngày mới, JS gọi API ngay lập tức — không reload trang. Loading state hiện “Loading…”, sau đó render danh sách slot card mượt mà. When guests pick a new date, JS calls the API immediately — no page reload. Shows “Loading…” state, then renders slot cards smoothly.

📌 Core

Nhúng bằng shortcodeShortcode Embed

Paste [rbp_availability-calendar] vào bất kỳ trang nào. Hỗ trợ restaurant_id cho multi-restaurant. Tự giới hạn ngày tối đa theo max_advance_days. Paste [rbp_availability-calendar] on any page. Supports restaurant_id for multi-restaurant. Automatically caps max selectable date via max_advance_days.

Giao diệnVisual Demo

Slot cards theo từng caSlot cards per time slot

Mỗi ca hiển thị tên, giờ, loại (trưa/tối), và số bàn còn trống hoặc trạng thái hết bàn. Each slot displays name, time, type (lunch/dinner), and available table count or full status.

Date: 2026-03-18
Chọn ngày để xem ca trống Select a date to view availability
Ca Trưa
Lunch
11:30
🌞 Ca trưaLunch
Còn 5 bàn5 tables left
Ca Trưa 2
Lunch 2
13:00
🌞 Ca trưaLunch
🚫 fully booked
Ca Tối
Dinner
17:30
🌙 Ca tốiDinner
Còn 8 bàn8 tables left
Ca Tối 2
Dinner 2
19:30
🌙 Ca tốiDinner
Còn 3 bàn3 tables left
Ca Tối 3
Dinner 3
21:00
🌙 Ca tốiDinner
🚫 fully booked
Chế độ sức chứaCapacity Mode

2 chế độ kiểm tra sức chứa2 capacity check modes

Chọn chế độ phù hợp với mô hình nhà hàng của bạn — đặt bàn thông thường hoặc buffet. Choose the mode that fits your restaurant model — standard table booking or buffet-style.

🔲 by_tables

Chế độ theo bàn (Mặc định)By Tables Mode (Default)

Ca được coi là “hết” khi tất cả bàn available trong ca đó đã bị book (confirmed/seated). Phù hợp với nhà hàng à la carte thông thường. A slot is “full” when all available tables for that slot are booked (confirmed/seated). Best for standard à la carte restaurants.

Ví dụ:Example: 10 bàn, 7 bàn đã book → Còn 3 bàn. Khi 10/10 bàn book → “fully booked”. 10 tables, 7 booked → 3 available. When 10/10 booked → “fully booked”.
👥 by_guests

Chế độ theo khách (Buffet)By Guests Mode (Buffet)

Ca được coi là “hết” khi tổng số khách đã đặt đạt max_guests của ca đó. Lý tưởng cho buffet, brunch, set menu cố định — nơi sức chứa tính theo người. A slot is “full” when total booked guests reaches the slot’s max_guests cap. Ideal for buffets, brunches, fixed set menus — where capacity is counted per person.

Ví dụ:Example: max_guests = 80, đã có 74 khách → Còn sức chứa 6 người. Khi 80 khách → “fully booked”. max_guests = 80, 74 guests booked → 6 capacity remaining. When 80 guests reached → “fully booked”.
Quy trìnhHow it works

Từ shortcode đến slot cardsFrom shortcode to slot cards

1

Nhúng shortcode vào trangEmbed shortcode on a page

Paste [rbp_availability-calendar] vào trang. Plugin render date picker + vùng slot. Tự load slot của ngày hôm nay ngay khi trang mở. Paste [rbp_availability-calendar] on any page. Plugin renders the date picker + slot area. Auto-loads today’s slots on page load.

[rbp_availability-calendar]
2

Khách chọn ngàyGuest selects a date

Date picker bị giới hạn từ hôm nay đến max_advance_days ngày tới. Khi đổi ngày, JS gọi REST API ngay lập tức với ngày mới. Date picker is limited from today to max_advance_days ahead. On date change, JS immediately calls the REST API with the new date.

3

REST API tính toán sức chứaREST API calculates availability

RBP_Availability::get_daily_summary() trả về array slot. Mỗi slot có: tên, giờ, loại (lunch/dinner), số bàn/khách còn lại, và flag is_full. RBP_Availability::get_daily_summary() returns a slot array. Each slot includes: name, time, type (lunch/dinner), remaining tables/guests, and is_full flag.

4

JS render slot cardsJS renders the slot cards

Mỗi slot render thành .rbp-slot-card. Slot hết bàn thêm class .full. CSS tự đổi màu nền và cursor. Khách thấy ngay ca nào còn chỗ. Each slot renders as .rbp-slot-card. Full slots add class .full. CSS automatically changes background and cursor. Guests instantly see which slots are open.

REST API Response (ví dụ)REST API Response (example)

GET /wp-json/rbp/v1/availability?restaurant_id=1&date=2026-03-18 [ { “slot_id”: 1, “slot_name”: “Ca Trưa”, “start_time”: “11:30:00”, “end_time”: “14:00:00”, “slot_type”: “lunch”, “available”: 5, “total”: 10, “capacity_mode”: “by_tables”, “is_full”: false }, { “slot_id”: 2, “slot_name”: “Ca Tối”, “start_time”: “17:30:00”, “slot_type”: “dinner”, “available”: 0, “is_full”: true } ]
Kỹ thuậtTech Specs

Thông số kỹ thuậtTechnical Specifications

Thuộc tínhPropertyChi tiếtDetail
Shortcode[rbp_availability-calendar]  [rbp_availability-calendar restaurant_id=”N”]
REST EndpointGET /wp-json/rbp/v1/availability?restaurant_id=&date=
PHP methodRBP_Availability::get_daily_summary()
Capacity modesby_tables (default)  |  by_guests (buffet)
Giới hạn ngàyDate range limitTừ hôm nay đến max_advance_days ngày tới (Settings)From today to max_advance_days ahead (Settings)
Nhãn hết bànFull slot labelfull_slot_labeltuỳ chỉnh trong Settingscustomisable in Settings
CSS classes.rbp-slot-card / .rbp-slot-card.full
Response fieldsslot_id, slot_name, start_time, end_time, slot_type, available, total, total_capacity, max_guests, guests_booked, remaining_guests, bookings_count, capacity_mode, available_info, is_full
Cập nhậtUpdate methodReal-time qua fetch() — không reload trangReal-time via fetch() — no page reload
Plan requiredTất cả plan (Free Trial → Annual)All plans (Free Trial → Annual)