Title: Appointment Booking Calendar – Dynamic Reservation
Author: Vdux
Published: <strong>September 16, 2026</strong>
Last modified: September 17, 2026

---

Search plugins

![](https://ps.w.org/appointment-booking-calendar-dynamic-reservation/assets/banner-
772x250.png?rev=3699776)

![](https://ps.w.org/appointment-booking-calendar-dynamic-reservation/assets/icon-
256x256.png?rev=3699760)

# Appointment Booking Calendar – Dynamic Reservation

 By [Vdux](https://profiles.wordpress.org/dynamicreservation/)

[Download](https://downloads.wordpress.org/plugin/appointment-booking-calendar-dynamic-reservation.1.2.34.zip)

 * [Details](https://wordpress.org/plugins/appointment-booking-calendar-dynamic-reservation/#description)
 * [Reviews](https://wordpress.org/plugins/appointment-booking-calendar-dynamic-reservation/#reviews)
 *  [Installation](https://wordpress.org/plugins/appointment-booking-calendar-dynamic-reservation/#installation)
 * [Development](https://wordpress.org/plugins/appointment-booking-calendar-dynamic-reservation/#developers)

 [Support](https://wordpress.org/support/plugin/appointment-booking-calendar-dynamic-reservation/)

## Description

**[Dynamic Reservation](https://dynamicreservation.com)** brings a full appointment
booking calendar into WordPress. Customers book online through a clean shortcode
widget, while you manage everything from the WordPress admin.

👉 **Website, free account & live demo:** [dynamicreservation.com](https://dynamicreservation.com)

#### 🚀 Key Features

 * **Admin Dashboard Calendar** – week & month view with bookings, blocked slots
   and live status
 * **Confirm / Reject / Remove Bookings** – manage reservation status directly in
   WordPress
 * **Block Time** – block individual slots, full days or recurring time ranges (
   daily / weekly / monthly) with optional notes and color labels (amber / red /
   blue / green / purple / slate)
 * **Booking Shortcode** `[apboca_calendar]` – embed the public booking calendar
   on any page, post or block
 * **Live Design Settings** – change surface, border, header and accent colors and
   see a live preview of the calendar, rendered locally inside WordPress
 * **Multilingual** – built-in translations for 10 languages (EN, DE, FR, ES, IT,
   PT, NL, PL, SV, TR)
 * **Customer e-mails** – automatic confirmation, rejection and cancellation e-mails
 * **Auto-Updates** – plugin updates are delivered through WordPress
 * **No external CSS / JS dependencies** – Tailwind is precompiled and shipped with
   the plugin (wp.org compliant)

#### ⚙️ How it works

The public booking widget is embedded on your site through the `[apboca_calendar]`
shortcode and is connected to your WordPress site via an Embed Token (API Key). 
All booking data is stored on the Dynamic Reservation backend. The WordPress admin
screens do not embed any external page: the dashboard, the settings and the live
calendar preview are rendered by the plugin itself and talk to the backend through
server-side REST API requests only.

#### 🔌 External services

This plugin is a client for the hosted booking service **[Dynamic Reservation](https://dynamicreservation.com)**.
Reservations, blocked times and calendar settings are not stored in your WordPress
database; they live on the Dynamic Reservation backend and are read and written 
through its REST API. Without an account and an Embed Token the plugin only offers
a local demo mode.

**Which service is used**

 * **Service**: [Dynamic Reservation](https://dynamicreservation.com), operated 
   by the plugin author
 * **Base URL**: `https://dynamicreservation.com`
 * **API documentation & your API key**: [dynamicreservation.com/admin/api](https://dynamicreservation.com/admin/api)(
   after logging in)

**Which API routes the plugin calls**

All calls to the REST API are made server-side from PHP (`wp_remote_*`) and – except
for login and password reset – authenticated with your Embed Token. The plugin only
calls routes from a fixed allow-list:

 * `/api/v1/reservations` – list, create, confirm / reject (update) and remove bookings(
   GET, POST, PATCH, DELETE)
 * `/api/v1/blocked-times` – list, create, update and delete blocked time slots,
   including recurring series (GET, POST, PATCH, DELETE)
 * `/api/v1/calendar-settings` – read and save opening hours, slot length and blocked
   weekdays (GET, POST)
 * `/api/v1/design` – read and save colors, title, description and default view 
   of the booking calendar (GET, POST)
 * `/api/v1/billing`, `/api/v1/checkout`, `/api/v1/cancel`, `/api/v1/verify-session`–
   show and manage your Dynamic Reservation subscription. Paid plans are checked
   out on a payment page of [Stripe](https://stripe.com) ([privacy policy](https://stripe.com/privacy));
   the plugin never receives or stores card data.
 * `/api/v1/admin/customers`, `/api/v1/customer-magic-link` – list your customers
   and create or send their personal booking link (“Send Booking Link”)
 * `/api/v1/contact` – the optional support contact form in the plugin settings
 * `/api/wp-auth`, `/api/forgot-password` – log in / register to connect your site,
   and reset your password

The public booking widget is loaded from `https://dynamicreservation.com/embed/calendar`
in a frame on the pages where you place the `[apboca_calendar]` shortcode.

**What is sent and when**

 * **Data sent**: your Embed Token (API key), booking data (date, time and the contact
   details a visitor enters into the booking form), block-time entries, calendar
   and design settings, and – only when you use them – your login e-mail / password
   or a support message
 * **When**: when a visitor opens the booking widget or submits a booking, when 
   an admin opens the plugin dashboard or settings, when a booking is confirmed /
   rejected / removed, when a block is created / deleted, and when settings are 
   saved
 * **Not sent**: no data is sent before you connect the site; the demo mode works
   completely locally in your browser

**Legal**

 * **Privacy policy**: [dynamicreservation.com/privacy](https://dynamicreservation.com/privacy)
 * **Terms of service**: [dynamicreservation.com/terms](https://dynamicreservation.com/terms)

You need a Dynamic Reservation account and an Embed Token to use the booking features.
A [free plan](https://dynamicreservation.com) is available.

#### ⭐ Organization

Dynamic Reservation is developed and maintained by **[vdux](https://github.com/vdux-org)**–
a team creating innovative app solutions. Dynamic Reservation and our other apps
are published in the vdux organization on GitHub. Have a look, leave a star ⭐ and
follow the development:

👉 **GitHub:** [github.com/vdux-org/apps](https://github.com/vdux-org/apps)

👉 **Company:** [vdux.de](https://vdux.de)

### Reservation Booking Calendar

## Screenshots

[⌊Admin Dashboard – manage bookings in the week view: pending, confirmed and rejected
counters, "Send Booking Link", "Block Time" and one-click blocking of free days.⌉⌊
Admin Dashboard – manage bookings in the week view: pending, confirmed and rejected
counters, "Send Booking Link", "Block Time" and one-click blocking of free days.⌉[

**Admin Dashboard** – manage bookings in the week view: pending, confirmed and rejected
counters, “Send Booking Link”, “Block Time” and one-click blocking of free days.

[⌊Booking Calendar – the public month view your customers see, embedded with the[
apboca_calendar] shortcode. Title, description, colors and default view are configurable.⌉⌊
Booking Calendar – the public month view your customers see, embedded with the [
apboca_calendar] shortcode. Title, description, colors and default view are configurable
.⌉[

**Booking Calendar** – the public month view your customers see, embedded with the`[
apboca_calendar]` shortcode. Title, description, colors and default view are configurable.

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/` or install it via the WordPress
    Plugins screen.
 2. Activate the plugin through the **Plugins** menu in WordPress.
 3. Go to **D-Reservation  Settings** and paste your **Embed Token** (API Key) from
    https://dynamicreservation.com.
 4. Place the shortcode `[apboca_calendar]` on any page or post to display the booking
    calendar.
 5. Manage incoming bookings under **D-Reservation  Dashboard**.

## FAQ

### Do I need an account on dynamicreservation.com?

Yes. The plugin connects to the Dynamic Reservation hosted backend. You can sign
up for a free account and receive an Embed Token to use the plugin.

### Where is my booking data stored?

Bookings are stored on the Dynamic Reservation backend. The plugin reads and writes
them through the public REST API using your Embed Token.

### Can I change the look of the calendar?

Yes. Under **D-Reservation  Settings  Design** you can change surface, border, header,
primary and hover colors, the border radius, the title and description and switch
between week and month view. A live preview is shown next to the form.

### Is the plugin translation-ready?

Yes. The text domain is `appointment-booking-calendar-dynamic-reservation`. The 
plugin ships with translations for English, German, French, Spanish, Italian, Portuguese,
Dutch, Polish, Swedish and Turkish.

### Does the plugin load any external CSS or JavaScript at runtime?

No. Tailwind CSS is precompiled and bundled inside the plugin, and the WordPress
admin loads no external CSS, JavaScript, fonts or frames — the dashboard and the
live calendar preview are rendered locally. Requests to https://dynamicreservation.
com are made server-side from PHP. On the front end the booking widget itself is
rendered in a frame from https://dynamicreservation.com, which is the hosted booking
service this plugin is a client for.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Appointment Booking Calendar – Dynamic Reservation” is open source software. The
following people have contributed to this plugin.

Contributors

 *   [ Vdux ](https://profiles.wordpress.org/dynamicreservation/)

[Translate “Appointment Booking Calendar – Dynamic Reservation” into your language.](https://translate.wordpress.org/projects/wp-plugins/appointment-booking-calendar-dynamic-reservation)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/appointment-booking-calendar-dynamic-reservation/),
check out the [SVN repository](https://plugins.svn.wordpress.org/appointment-booking-calendar-dynamic-reservation/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/appointment-booking-calendar-dynamic-reservation/)
by [RSS](https://plugins.trac.wordpress.org/log/appointment-booking-calendar-dynamic-reservation/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.34

 * wp.org compliance: the WordPress admin no longer embeds any external page. All
   four iframes that loaded content from dynamicreservation.com have been removed.
 * Live preview: the calendar preview in Design, Themes and Position is now rendered
   by the plugin itself (`assets/preview.js`). It reacts to colors, title, description,
   header, view mode and border radius exactly as before, is navigable, and loads
   nothing from an external site.
 * Demo mode: the demo dashboard is now the plugin’s own dashboard, driven by sample
   data stored in the browser (localStorage). Bookings, block times, recurring blocks
   and statistics all work locally; nothing is sent to or loaded from an external
   service.
 * Privacy: because no admin screen loads remote content anymore, opening the plugin’s
   screens no longer causes any browser request to an external host. All communication
   with the booking service happens server-side via PHP, only after the site has
   been connected.
 * Cleanup: removed the unused preview-iframe CSS, a leftover debug log, and corrected
   the text domain named in the FAQ.
 * Compat: “Tested up to” raised to WordPress 7.1.

#### 1.2.33

 * Security: the AJAX API proxy no longer forwards the posted JSON body after a 
   plain `json_decode()`. The posted string is sanitized on read, the decoded payload
   is sanitized recursively (keys via `sanitize_key()`, string values via `sanitize_email()`/`
   sanitize_textarea_field()`, numbers and booleans keep their type) and invalid
   JSON is rejected with a 400 response.
 * Security: the proxied endpoint is validated against an allow-list of the routes
   the plugin actually uses, its query string is rebuilt from sanitized key/value
   pairs, and the HTTP method is restricted to GET/POST/PATCH/DELETE.
 * Security: all remaining `$_POST` reads are unslashed and sanitized before use;
   toggles are compared against sanitized values, calendar hours and slot lengths
   are range-validated, blocked weekdays are cast to int and clamped to 1-7.
 * Security: login and registration now validate the email format and the password
   length/characters before the credentials are forwarded to the authentication 
   API.
 * Compat: “Tested up to” raised to WordPress 7.0.

#### 1.2.32

 * wp.org compliance: front-end embed CSS and JS are no longer emitted as inline`
   <style>` / `<script>` blocks. The static wrapper styles now live in `assets/embed.
   css` and are enqueued via `wp_enqueue_style()`; the full-bleed breakout runtime
   lives in `assets/embed.js` and is enqueued via `wp_enqueue_script()`, with per-
   shortcode config passed through `wp_add_inline_script()`.
 * wp.org compliance: removed the legacy generic `[dynamic_reservation]` shortcode
   alias. Only the prefixed `[apboca_calendar]` tag is registered now, eliminating
   the only remaining non-prefixed identifier flagged by the wp.org reviewer.

#### 1.2.31

 * Build/structure: renamed plugin source folder and main file to match the wp.org
   slug `appointment-booking-calendar-dynamic-reservation`. Resolves WordPress.WP.
   I18n.TextDomainMismatch warnings reported by the Plugin Check tool.
 * No functional changes for end users.

#### 1.2.30

 * Settings: unified empty-state across Layout, Calendar, Connection and Subscription
   tabs when not connected.
 * Settings: each tab now shows the same banner with two CTAs — “Go to General” (
   login/register) and “Try Demo” (opens demo on the dashboard).
 * Connection tab: removed obsolete “Go to Dashboard” link; the connection status
   card is now hidden until the site is connected.
 * Translations: added new setup banner + button strings for all 10 supported languages.

#### 1.2.29

 * Login form: added password reveal eye icon (admin login + register).
 * Login form: added “Forgot password?” link with reset email flow.
 * Translations: added forgot/reset/eye strings for all 10 supported languages.

#### 1.2.28

 * Fix: Fullwidth-Modi überlaufen nicht mehr rechts aus dem Viewport. Die Breakout-
   Routine nutzt jetzt `position: relative` + `left` (rein visuelle Verschiebung
   ohne Layout-Seiteneffekte) statt negativer Margins, und misst den Wrapper selbst
   nach einem sauberen Reset. Damit ist die Positionierung exakt: links bei `0`,
   rechts bei `clientWidth` (ohne Scrollbar-Gutter).

#### 1.2.27

 * Fix: Fullwidth-Modi („bricht aus dem Inhaltscontainer aus“ und „gesamter Bildschirm“)
   positionieren sich jetzt zuverlässig links bei `0` und füllen die Viewport-Breite.
   Die Breakout-Routine misst nun das **Parent-Element** (statt des Embeds selbst),
   wodurch die Positionierung unabhängig vom Theme-Layout (zentriert, links-ausgerichtet,
   mit Sidebar etc.) deterministisch wird. Zusätzliche Re-Runs nach Font-Load und
   mit kurzem Timeout fangen späte Layout-Shifts (Page-Builder Hydration, Sticky-
   Header) ab.
 * New: Welcome-Card und Demo-Banner im WP-Admin sind jetzt in 10 Sprachen verfügbar(
   en, de, fr, es, it, pt, nl, pl, sv, tr) — die Sprache wird automatisch aus der
   WordPress-Locale des Nutzers abgeleitet, ohne dass eine `.mo`-Datei nachgeladen
   werden muss.

#### 1.2.26

 * Fix: “Volle Breite – bricht aus dem Inhaltscontainer aus” — the proportional 
   scale slider no longer applies a `transform: scale()` in this mode, which had
   been shrinking the iframe to a tiny corner when the slider was below 100%. Scale
   is now disabled (forced to 100%) in both full-width modes; only height is configurable.
 * Fix: “Volle Breite – gesamter Bildschirm (Rand zu Rand)” — replaced the brittle
   JS measurement-based breakout with a deterministic CSS approach. The wrapper 
   now uses `width: var(--apboca-vw)` + `margin-left: calc(50% - var(--apboca-vw)/
   2)`, where `--apboca-vw` is set to the document’s `clientWidth` (excludes vertical
   scrollbar). This eliminates the right-edge overflow that used to appear when 
   the breakout JS mismeasured the parent offset.
 * Fix: Live-Vorschau in den Plugin-Einstellungen verhält sich jetzt identisch zu„
   Volle Breite“ am Frontend (kein winziger Kalender beim Verstellen des Skalierungs-
   Sliders).

#### 1.2.25

 * Fix: Welcome card — the “Start in Demo Mode” button now has at least 30px breathing
   room below it. Previously the spacing classes (`pb-8`, `py-7`) used in the markup
   were not part of the precompiled Tailwind bundle and therefore had no effect;
   spacing is now applied via inline styles so it cannot be silently dropped.

#### 1.2.24

 * Fix: Frontend full-width breakout no longer triggers a horizontal scrollbar on
   the document. The runtime now sets `overflow-x: clip` on `<html>` / `<body>` 
   so the calendar can extend to the viewport edge without enabling page-level horizontal
   scrolling.
 * Fix: Welcome card spacing — the “Start in Demo Mode” button now has additional
   bottom breathing room (≥25px between the button and the bottom edge of the WP
   admin content area).

#### 1.2.23

 * Fix: Settings  Layout  Position — full-width modes now also tell the embedded
   calendar (SvelteKit) to render responsively via a `responsive=1` URL flag. Previously
   the iFrame wrapper was stretched correctly but the calendar inside kept its internal`
   max-width` and stayed centered at 800px, making the breakout look like a no-op.
 * Fix: Settings  Layout  Position — the proportional scale slider now actually 
   updates the iFrame Width (px) and iFrame Height (px) input values as it is dragged,
   instead of only scaling the preview visually.
 * Fix: Settings  Layout  Position — “Full width — breaks out of content container”
   now disables the Width (px) input and shows a `100%` placeholder. Previously 
   the field kept a meaningless number (e.g. `2000`) which made the configuration
   confusing.
 * Fix: Settings  Layout  Position — saving from the Position sub-tab now lands 
   the user back on the Position sub-tab after the redirect from `options.php`, 
   instead of falling back to the Reservation sub-tab.
 * Feature: Dashboard before login — added a “Start in Demo Mode” CTA on the welcome
   card. Demo mode loads the public demo dashboard inside an iFrame so the user 
   can explore time-blocking and the booking flow with sample data before registering.
   A clear amber banner reminds the user that bookings made in demo mode are not
   stored on the live site.

#### 1.2.22

 * Fix: Backward compatibility — the original `[dynamic_reservation]` shortcode 
   tag is registered again as an alias of `[apboca_calendar]`, so existing pages
   continue to render the calendar after upgrading from 1.2.19 or earlier.
 * Fix: Frontend full-width breakout actually widens the calendar now. The previous
   build only applied a negative margin which shifted the element but left the width
   at the parent column width. The runtime now sets an explicit pixel width (document
   width minus optional 16px gutter) AFTER neutralising `overflow:hidden`/`overflow:
   clip` on every ancestor up to `<body>`, so the calendar reliably stretches across
   Elementor sections, Gutenberg groups, Divi rows etc.
 * Fix: Admin Dashboard month view — a single combined scrollable list now contains
   both blocked time entries and reservations. Previously only reservations were
   scrollable and blocked time entries were still truncated with a `+N` counter.

#### 1.2.21

 * Fix: Admin Dashboard month view — scrollable list when a day has more than 3 
   bookings now actually scrolls (the previous build relied on an arbitrary Tailwind
   class that was not in the precompiled CSS bundle; replaced with inline `max-height`
   + `overflow-y:auto`).
 * Fix: Settings  Layout  Position live preview — “Full width — breaks out of content
   container” and “Full width — entire screen (edge to edge)” now correctly stretch
   the calendar iFrame across the simulated page frame instead of the iFrame staying
   constrained to the 720px content column.
 * Fix: Frontend full-width breakout now uses a JS-based runtime adjustment (measures
   the document width, applies negative margins relative to the actual element position
   and neutralises `overflow:hidden` on ancestor containers up to `<body>`) so the
   calendar reliably breaks out inside Elementor sections, Gutenberg groups, Divi
   rows and similar builders.

#### 1.2.20

 * Fix: Renamed all generic `dr_` / `DR_` prefixes to the unique `apboca_` / `APBOCA_`
   prefix (functions, classes, defines, options, AJAX actions, settings group, nonces
   and the JS global) to comply with WordPress.org plugin naming guidelines.
 * Change: Booking shortcode tag is now `[apboca_calendar]`.
 * Fix: Admin Dashboard month view — when a day contains more than 3 bookings, the
   list is now scrollable (vertical scroll inside the day cell) instead of being
   truncated with a `+N` counter.
 * Fix: Settings  Layout  Position — “Full width — breaks out of content container”
   and “Full width — entire screen (edge to edge)” now use the standard full-bleed
   CSS technique (`margin-left: calc(50% - 50vw)`) so the iFrame reliably escapes
   the content column on common page builders such as Elementor, Gutenberg and Divi.
 * Fix: When “Full width — entire screen (edge to edge)” is selected, Width (px)
   and Proportional Scale are now disabled (only iFrame Height stays editable), 
   since width scaling is meaningless in edge-to-edge mode.

#### 1.2.19

 * New: “Service Information” tab in Settings with links to Terms & Conditions, 
   Privacy Policy, and Imprint.
 * New: Contact form to reach support directly from WordPress (rate-limited to 1
   message per day).

#### 1.2.17

 * Fix: WordPress dashboard calendar now actually opens in the configured Default
   View (Week / Month) from Settings  Layout  Admin.

#### 1.2.16

 * Fix: “Remove all in series” now actually deletes every block in the recurring
   series via the v1 API endpoint used by the WordPress plugin (1.2.15 fixed only
   the web app).
 * Fix: Default Calendar View toggle (Week / Month) no longer overlaps the description
   text in Settings  Layout.

#### 1.2.15

 * Fix: “Remove all in series” now reliably cascades and deletes every block in 
   a recurring series (daily / weekly / monthly).
 * New: Default Calendar View toggle (Week / Month) per area in Settings  Layout(
   Booking & Admin sub-tabs).
 * UI: Calendar Settings – “Booking Description” is now a toggle switch (consistent
   with the rest of the settings).
 * Live preview: switching the default view in Layout updates the embedded preview
   iframe immediately.

#### 1.2.13

 * WordPress.org compliance: removed in-plugin auto-updater (updates are delivered
   via WordPress.org).
 * Hardening: stricter input sanitization on AJAX endpoints (api proxy body, blocked
   dates, calendar settings).
 * Hardening: all template output is escaped (esc_attr / esc_html) to satisfy Plugin
   Check ERROR-level rules.
 * Compat: replaced date() with gmdate() to be timezone-safe.
 * Tested up to WordPress 6.9.

#### 1.2.12

 * UI: Calendar Settings – renamed “Blocked weekdays” to “Block weekdays (recurring)”(
   DE: “Blocke beliebig Wochentage (wiederkehrend)”).
 * UI: Weekday tiles use a green default state and turn red when selected – matches
   the web app.
 * Fix: Surface and border color pickers in Design Settings now apply correctly 
   to the embedded calendar preview.
 * Fix: Hover on day tiles in the WordPress dashboard week / month view no longer
   removes the tile border.

#### 1.2.9

 * Fix: Block Time popup is translated into the WordPress user language (10 locales).
 * Fix: When the selected day already has bookings, the Block Time  Advanced tab
   now shows a banner explaining that the entire day cannot be blocked, the all-
   day toggle is disabled and From/To dropdowns only list still-free hours.

#### 1.2.8

 * Fix: Disable “Advanced / Block entire day” tab when the day already has bookings.
 * Fix: Reservation delete via SvelteKit `/api/reservations` endpoint uses `delete({
   count: "exact" })` for reliable RLS detection.

#### 1.2.7

 * Month view: blocked day tiles now show the actual block label, note and chosen
   color.
 * Reservation Remove: surfaces backend errors instead of silently appearing to 
   fail.

#### 1.2.6

 * Block Time: recurring blocks (daily/weekly/monthly) now correctly create individual
   entries on every interval day via the public REST API.
 * Block Time: tile color palette (amber/red/blue/green/purple/slate) visible on
   day, week and month tiles.
 * Booking Details popup: new “Remove” button for confirmed/rejected bookings – 
   confirmed bookings trigger a cancellation e-mail to the customer.

#### 1.2.5

 * Fix: recurring blocks (daily/weekly/monthly) only blocking the start day in some
   timezones.
 * Block Time: color palette picker (amber/red/blue/green/purple/slate) for block
   tile border + background.
 * Remove Blocked Time popup: now displays the saved note text.

#### 1.2.4

 * Block Time: validation for repeat “Until” date (required + must be on/after start).
 * Block Time: auto-fill “Until” with start +30 days when picking a repeat type.
 * Calendar tiles: show truncated note (max 15 chars) on blocked time entries.

#### 1.2.3

 * Replaced Tailwind CDN with locally bundled, precompiled CSS (wp.org compliance–
   no external resources).
 * Block Time: optional note field (max 120 characters) in advanced mode.
 * Booking details popup: Close button right-aligned.

#### 1.2.2

 * Admin dashboard visually aligned with the web app calendar.
 * Booking details popup matches web app structure (incl. note field).
 * Fixed missing borders on status cards and grey calendar wrapper.

#### 1.2.0

 * Status card layout improvements.
 * Tailwind utility scoping for WP admin.

#### 1.0.0

 * Initial release.
 * Admin dashboard with week/month calendar view.
 * Reservation management (confirm/reject).
 * Booking calendar shortcode.
 * Auto-update from GitHub releases.

## Meta

 *  Version **1.2.34**
 *  Last updated **21 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.1.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [appointment](https://wordpress.org/plugins/tags/appointment/)[booking](https://wordpress.org/plugins/tags/booking/)
   [calendar](https://wordpress.org/plugins/tags/calendar/)[reservation](https://wordpress.org/plugins/tags/reservation/)
   [scheduling](https://wordpress.org/plugins/tags/scheduling/)
 *  [Advanced View](https://wordpress.org/plugins/appointment-booking-calendar-dynamic-reservation/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/appointment-booking-calendar-dynamic-reservation/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/appointment-booking-calendar-dynamic-reservation/reviews/)

## Contributors

 *   [ Vdux ](https://profiles.wordpress.org/dynamicreservation/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/appointment-booking-calendar-dynamic-reservation/)