Occupancy Plan
Create configurable occupancy schedules and let visitors view, request and manage bookings directly in the WordPress frontend.
Solid choice
Occupancy Plan is a solid plugin choice in 2026, with a few things worth checking first. It runs on 100+ sites, is rated 5/5 and was last updated 1 month ago, and scores 65/100 on our health check.
- Tested with the latest WordPress (7.1)
- Small user base (100+ active installs)
How does it stack up?
Side-by-side on installs, updates, ratings & supportDaily downloads
Download spikes usually follow a new release — each site that auto-updates counts as a download.
Rankings
Where Occupancy Plan stands todayWordPress.org search rankings
Live position in the plugin search, top 100| Keyword | Position |
|---|---|
| Belegungsplan | #2 |
| booking | >100 |
| Buchungen | #1 |
| Hallenbelegung | #1 |
| occupancy plan | #1 |
Version adoption
Share of active sites per release.
Rating breakdown
★★★★★★★★★★ 5 from 5 reviews
About Occupancy Plan
From the official readme · v1.6.4Description
Occupancy Plan provides schedules for sports facilities, rooms, courts, halls and other shared resources. Create schedules in WordPress and publish each with a shortcode.
Visitors can browse available periods without reloading the complete page. Depending on the schedule configuration and their permissions, guests or logged-in users can create bookings, view details and manage existing bookings directly in the frontend.
SCHEDULE DISPLAY AND NAVIGATION
* Daily, one-week, two-week, monthly and yearly schedule views
* Responsive desktop and mobile layouts
* AJAX navigation between dates, weeks, months, years and courts without reloading the page
* Optional compact monthly week picker for fast navigation in weekly views
* Configurable weekday selection, abbreviated weekday names and optional navigation header
* Print-optimized schedule, including the date below each weekday in the weekly view
* Configurable header, text, border, booking background and booking text colors
* Eight selectable frontend themes via shortcode: Classic, Modern, Cards, Minimal, Dark, Soft, Outline and Sport
* Independent display density via shortcode: Normal, Compact or Spacious
* Anonymized frontend display and configurable booking tooltips
PLANS, COURTS AND TIME SLOTS
* Create and manage multiple independent occupancy schedules
* Limit each schedule to a configurable start and end date
* Configure operating hours and time intervals from 5 to 90 minutes
* Define break periods and optional breaks between consecutive slots
* Use automatically generated periods or individually configured fixed time slots with display names
* Manage multiple courts, rooms or other resources with custom names, short names and sort order
* Divide resources into named child courts or sub-resources
* Configure schedules for time-based or full-day bookings
BOOKINGS AND SERIES
* Create, edit, delete and move authorized bookings in the frontend
* When enabled per schedule, reserve a second court/resource with one logical booking; both entries stay synchronized
* Create and manage bookings in the WordPress administration area
* One-time, weekly, monthly, flexible and every-second-week booking intervals
* Exceptions for individual dates in recurring bookings, for example holidays
* Conflict detection for times, courts, child courts and recurring bookings
* Configurable booking window with independent minimum and maximum lead times
* Booking priorities to control the display order of overlapping entries
* Prepared booking templates for frequently used booking data
* Custom booking colors, contact information, comments and authorized users
* Up to four configurable custom fields, including mandatory fields and selectable values
PERMISSIONS, PRIVACY AND APPROVALS
* Optional guest booking or capability-based access for logged-in users
* Dedicated Occupancy User, Editor, Owner and Manager roles
* Users can be allowed to edit their own bookings; managers retain full administration access
* Separate permissions for changing booking times, intervals and courts in the frontend
* Optional provisional booking and approval workflow
* Confirm or reject requests in the administration area and send corresponding notifications
* Optional confirmation checkbox, information text and information link in the booking dialog
* Server-side validation, nonce protection and escaped frontend output for protected booking actions
ADMINISTRATION, EMAIL AND DATA EXCHANGE
* Searchable administration lists and bulk deletion for schedule data
* Context-sensitive help for schedule, booking, template, court, time-slot, exception and preview pages
* Copyable shortcode reference with defaults and practical examples
* CSV import and export for schedules and bookings
* Protected iCalendar download and secret subscription feed with recurrence rules and exceptions
* Configurable email notifications to administrators and booking users
* Custom sender, recipients, CC, subjects and message templates with booking placeholders
* Dashboard widget for occupancy managers showing the latest bookings
* Optional automatic cleanup of old bookings
* Complete bundled German translation and WordPress.org-compatible localization support
Usage
Create a schedule in Occupancy Plan in the WordPress administration area. The schedule ID is shown in the schedule overview. Add the shortcode to a page or post:
[occupancy_plan id="1"]
The id attribute is required. The following optional attributes are supported:
mode:daily,weekly,monthlyoryearly(default:weekly); useweekly!to force the weekly view even with many sub-courtsweekdays: visible weekdays as digits from1(Monday) to7(Sunday), for example12345showheader: set tofalseto hide the frontend navigation headershortweekdays: set totrueto use abbreviated weekday namesweeks:1or2consecutive weeks in weekly mode (default:1); navigation advances by one weekmonthpicker: set totrueto replace the week field and date range with the compact monthly week picker (default:false)calendar: set totrueto show protected iCalendar actions to occupancy managerscolumns: number of month columns in the yearly view (default:3)theme:classic,modern,cards,minimalordark(default:classic)
Examples:
[occupancy_plan id="1" mode="weekly" weekdays="12345" shortweekdays="true"]
[occupancy_plan id="1" mode="weekly" weeks="2" monthpicker="true" calendar="true"]
[occupancy_plan id="1" mode="daily"]
[occupancy_plan id="1" theme="modern"]
[occupancy_plan id="1" theme="cards" weeks="2"]
[occupancy_plan id="1" mode="yearly" columns="3" theme="minimal"]
SUPPORT
The plugin is continuously developed and supported. Please send support inquiries by email to support@software-kunze.de.
Installation
- Upload the plugin ZIP through Plugins > Add New > Upload Plugin, or copy the
occupancy-planfolder to/wp-content/plugins/. - Activate Occupancy Plan in the WordPress plugin list.
- Open Occupancy Plan in the administration area and create or configure a schedule.
- Configure courts, time slots, booking permissions, email notifications and optional approval settings.
- Insert
[occupancy_plan id="1"]into a page or post and replace1with the ID of your schedule.
Changelog
1.6.4
- Feature: Turn the one-sided booking limit into a true booking window with independent Start and End values
- Feature: Booking Window Start is a signed calendar-day offset; negative values allow retrospective bookings, zero starts today and positive values block spontaneous bookings by requiring lead time
- Feature: Booking Window End continues to limit how far in advance bookings are allowed; zero means no upper limit, so 0/0 means today onward without a future limit
- Compatibility: Migrate the former
bookingwindowvalue tobookingwindowendand initializebookingwindowstartwith zero - Security: Enforce both booking-window boundaries when opening, creating and drag-and-drop moving frontend bookings, not only when rendering available slots
- Data exchange: Export the new booking-window fields and remain compatible with legacy schedule CSV imports
- UI: Update schedule fields, tooltips and contextual help for the two-sided booking window
- Localization: Polish the bundled German translation, including booking-window wording and consistent backend terminology
- Localization: Merge bundled translations as a fallback after the normal WordPress language pack so newly added release strings do not temporarily remain untranslated
- Compatibility: Resolve Plugin Check findings for the WordPress 4.9 translation fallback and safely escaped plugin-owned table identifiers during the 1.6.4 schema migration
1.6.3
- Fix: Run the database/role migration check on
initinstead ofplugins_loadedso localized role names no longer trigger WordPress 6.7+_load_textdomain_just_in_timenotices. - UI: Compact the read-only frontend booking details dialog to 24px fields with reduced row spacing
- Fix: Frontend details remain available when booking is disabled; current pages use the detail endpoint directly and stale cached edit markup is resolved server-side without a 403 round-trip.
- Feature: Add the
themeshortcode parameter with Classic, Modern, Cards, Minimal, Dark, Soft, Outline and Sport frontend themes - Feature: Add the independent
densityshortcode parameter with Normal, Compact and Spacious spacing - UI: Add Theme and Density selectors to the backend Preview and show the resulting shortcode for easy reuse
- Compatibility: Keep Classic and Normal as defaults so existing shortcodes retain their current appearance
- Improvement: Preserve theme and density during AJAX date, week, month, year and court navigation
- Improvement: Scope schedule colors per plan and expose them as CSS custom properties so multiple themed schedules can coexist on one page
- Documentation: Add theme/density parameters and practical examples to the contextual shortcode help
- UI: Refine the Dark theme so weekday/resource headers and the complete time column stay consistently dark while individual booking colors remain unchanged
- UI: Make frontend booking form controls more compact and resistant to oversized theme defaults
- UI: Further reduce booking field heights and remove the explanatory Court 2 text for a denser dialog
- Feature: Make the optional second court selectable per schedule; existing grouped bookings remain editable when the option is switched off
- Fix: Restore reliable confirmation/privacy checkbox interaction and validate required confirmation on the server
- Fix: Preserve the explicitly configured weekday of recurring weekly, monthly and biweekly bookings when an existing booking is opened and saved
- Fix: Reconcile stale cached court IDs with current court/child-court labels before rendering a new booking dialog
1.6.2
- UI: Align the contextual Help panel with the Create/Edit Booking panel and keep a consistent gutter between both columns
- Fix: Restore the backend booking form on current WordPress/PHP versions by replacing the unavailable required() helper with a plugin-owned compatibility helper
- Maintenance: Silence five false-positive prepared-SQL warnings by attaching PHPCS exceptions directly to trusted plugin table identifiers
- Compatibility: Verified PHP syntax with PHP 8.4
1.6.1
- Feature: Add an optional second court/resource to frontend bookings
- Feature: Store multi-court reservations as synchronized booking groups while continuing to render one normal booking per court
- Validation: Check both selected resources for conflicts before saving and prevent overlapping selections within the same booking
- Improvement: Editing or deleting either entry updates or deletes the complete multi-court booking
- Improvement: Keep recurring-booking exceptions synchronized across both resources
- Improvement: Move one-time grouped bookings together when using drag and drop
- Improvement: Make administration and bulk deletion group-aware
- Data exchange: Preserve booking group identifiers in block CSV export/import
1.6.0
- Tested with WordPress version 7.1
- Fix: Let Occupancy Editors edit, move and delete bookings they created themselves while keeping Authorized Users restricted to Occupancy Owners and managers
- Fix: Delete frontend bookings through a dedicated authenticated AJAX endpoint with nonce, schedule and ownership checks
- Fix: Decouple the core frontend click/AJAX script from optional jQuery UI and color-picker dependencies so optimization or theme changes cannot suppress booking interaction entirely
- Compatibility: Enqueue Occupancy Plan assets during the regular wp_enqueue_scripts phase when the shortcode is present, with shortcode-time loading retained as a fallback for dynamic builders
- Fix: Repair missing capabilities on existing Occupancy Plan roles during normal plugin updates, including legacy Occupancy Editor installations, so editors retain permission to create frontend bookings
- Fix: Keep the current day bookable when a booking window is configured; compare booking windows by calendar date instead of clock time.
- Fix: Make frontend availability cache-safe: render structurally available slots independently of the cached viewer and verify booking permission when the AJAX dialog is requested
- Privacy: Populate logged-in user name and email only in the fresh AJAX booking dialog instead of embedding user-specific defaults in cacheable schedule markup
- Fix: Ensure clicks on free frontend slots always reach the booking dialog, even if optional jQuery UI drag/drop or color-picker enhancements are unavailable or loaded late
- Fix: Read booking slot metadata robustly from the clickable schedule cell and its inner element
- Fix: Route frontend booking saves through WordPress AJAX and return structured validation errors
- Fix: Restore reliable frontend booking dialogs on cached pages while keeping booking writes protected by a fresh nonce
- Fix: Use the localized admin-post endpoint and the fresh dialog nonce for frontend booking actions
- Fix: Render the administration preview without stripping shortcode form controls
- Fix: Load frontend schedule assets early enough for a correctly styled administration preview
- Internationalization: Rebuild the translation catalog from the current plugin source
- Translation: Complete the bundled German translation for all current plugin strings
- Translation: Add missing strings introduced after the previous POT generation
- Translation: Rely on WordPress just-in-time localization using the plugin Text Domain and Domain Path metadata
- Maintenance: Add a reproducible WP-CLI translation update script for future releases
- Improvement: Increase horizontal spacing in the compact weekly date range for readability
1.5.9
- Improvement: Shorten the weekly date range by omitting repeated month and year components
- Improvement: Remove the “from”/”to” labels, emphasize the separator and add more horizontal breathing room
- Fix: Critical-Error in admin help page
For developers
Is this your plugin? Show off the numbers.
Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.
Best Occupancy Plan alternatives
All Belegungsplan plugins →| Rank | Plugin | Active installs |
|---|---|---|
| 1 |
|
20K+ |
FAQ
Occupancy Plan: quick answers
Straight answers, pulled from live WordPress.org data.
Live data from WordPress.org · checked Oct 11, 2026
Is Occupancy Plan free?
Yes. Occupancy Plan is free to download and use from the official WordPress.org plugin directory.
Is Occupancy Plan safe to use in 2026?
Occupancy Plan is a solid plugin choice in 2026, with a few things worth checking first. It runs on 100+ sites, is rated 5/5 and was last updated 1 month ago, and scores 65/100 on our health check.
How many websites use Occupancy Plan?
Occupancy Plan is active on 100+ WordPress websites and has been downloaded 15,878 times since it launched in July 2020. It was downloaded 372 times in the last 30 days.
Does Occupancy Plan work with WordPress 7.1?
Yes. The developer has tested Occupancy Plan up to WordPress 7.1.3, the latest release. It requires WordPress 4.9 or newer.
What PHP version does Occupancy Plan need?
Occupancy Plan requires PHP 5.3 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.
When was Occupancy Plan last updated?
The latest version, 1.6.4, was released on August 28, 2026 (1 month ago).
Who makes Occupancy Plan?
Occupancy Plan is developed and maintained by tharkun69.
What are the best alternatives to Occupancy Plan?
The most popular alternatives to Occupancy Plan are WP Simple Booking Calendar (20K+ installs).
Powered by PageForge
Want thousands of pages that rank like these? Build them in an afternoon.
This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.
- CSV, Google Sheets & API data sources
- AI content, schema & internal links per page
- Works with Elementor, Gutenberg, Yoast & Rank Math
- Free on WordPress.org — no credit card





