Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/nookieslaya/rdev-calendar/archive/refs/heads/main.zipProfessional booking calendar for WordPress with availability management, temporary holds, booking requests, admin approval workflow, and email notifications.
Description
rdev-calendar is a standalone WordPress booking calendar designed for service businesses (photo/video events, sessions, appointments, etc.).
PHP compatibility: 7.1 or newer.
Main capabilities:
- Visual availability calendar with statuses (
available,tentative,booked) - Frontend booking form for available days only
- Temporary hold logic (configurable hold duration in minutes)
- Automatic hold expiration cleanup (WP-Cron + traffic fallback)
- Booking requests stored in wp-admin as a custom post type
- Approve / Reject actions for each booking request
- Optional client emails:
- after initial booking request
- when hold expires
- Configurable frontend style presets:
- theme presets
- background styles
- font presets
- No ACF Pro required
Booking status state machine
Request statuses:
holdapprovedrejectedreleasedexpired
Allowed transitions:
hold -> approvedhold -> rejectedhold -> expiredapproved -> releasedrejected -> approvedexpired -> approvedreleased -> approved
Reference:
- See
STATE_MACHINE.mdin plugin root for full details.
Installation
- Upload the
rdev-calendarplugin folder to/wp-content/plugins/. - Activate the plugin in Plugins > Installed Plugins.
- Go to Calendars and create a new calendar.
- Configure settings and availability.
- Save the calendar and copy the shortcode shown in the admin notice.
Usage
Shortcode:
[rdev_calendar id="123"]
Alias:
[rdev_booking_calendar id="123"]
Replace 123 with your calendar post ID.
Booking Workflow
- Visitor clicks an
availableday and submits the booking form. - A booking request is created in Booking Requests.
- The selected day becomes
tentative(hold active). - Admin can:
- Approve -> day changes to
booked - Reject -> day returns to
available
- Approve -> day changes to
- If not approved in time, hold expires automatically and day returns to
available.
Security
The plugin includes:
- Nonce validation for form submission and admin actions
- Honeypot anti-spam field
- Input sanitization/validation for all submitted fields
- Capability checks for admin-only actions
Frequently Asked Questions
Does it require ACF Pro?
No. The plugin is fully standalone.
Will expired holds clear automatically?
Yes. Cleanup runs via WP-Cron and also has a fallback trigger on regular traffic.
Can I change hold duration?
Yes. Set it per calendar in minutes in calendar settings.
Can I customize labels and email texts?
Yes. Most form labels, notices, and email templates are editable in calendar settings.
Changelog
1.0.0
Initial public release.
Highlights:
- Booking workflow with temporary hold, approve/reject, release, and expiration cleanup.
- Hybrid date/time availability model:
- default hours
- per-date hour overrides
- full-day mode and per-day mode overrides
- Slot-level reservation consistency (hold/booked), including server-side conflict validation.
- Frontend privacy model: public view shows only Available / Unavailable statuses.
- Frontend booking constraints:
- past date/time blocking
- lead time (hours)
- time buffer (minutes)
- Admin availability manager with time preview, date locks, and safer slot remove behavior.
- Automatic historical data retention cleanup (configurable in days).
- Configurable client email templates and toggles (initial/expired/approved/rejected).
- Responsive, sectioned admin settings layout.