Title: Occupancy Plan
Author: tharkun69
Published: <strong>జూలై 28, 2020</strong>
Last modified: ఆగస్ట్ 27, 2026

---

Search plugins

![](https://ps.w.org/occupancy-plan/assets/banner-772x250.png?rev=2347591)

![](https://ps.w.org/occupancy-plan/assets/icon-128x128.png?rev=2347591)

# Occupancy Plan

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

[Download](https://downloads.wordpress.org/plugin/occupancy-plan.1.6.3.zip)

 * [Details](https://te.wordpress.org/plugins/occupancy-plan/#description)
 * [Reviews](https://te.wordpress.org/plugins/occupancy-plan/#reviews)
 *  [Installation](https://te.wordpress.org/plugins/occupancy-plan/#installation)
 * [Development](https://te.wordpress.org/plugins/occupancy-plan/#developers)

 [Support](https://wordpress.org/support/plugin/occupancy-plan/)

## Description

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 that limits how many days in advance a booking
can be made * 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`, `monthly` or `yearly` (default: `weekly`); use `weekly!`
   to force the weekly view even with many sub-courts
 * `weekdays`: visible weekdays as digits from `1` (Monday) to `7` (Sunday), for
   example `12345`
 * `showheader`: set to `false` to hide the frontend navigation header
 * `shortweekdays`: set to `true` to use abbreviated weekday names
 * `weeks`: `1` or `2` consecutive weeks in weekly mode (default: `1`); navigation
   advances by one week
 * `monthpicker`: set to `true` to replace the week field and date range with the
   compact monthly week picker (default: `false`)
 * `calendar`: set to `true` to show protected iCalendar actions to occupancy managers
 * `columns`: number of month columns in the yearly view (default: `3`)
 * `theme`: `classic`, `modern`, `cards`, `minimal` or `dark` (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](https://te.wordpress.org/plugins/occupancy-plan/support@software-kunze.de?output_format=md).

## Screenshots

[⌊Weekly occupancy schedule in the frontend⌉⌊Weekly occupancy schedule in the frontend⌉[

Weekly occupancy schedule in the frontend

[⌊Occupancy schedule configuration in the administration area⌉⌊Occupancy schedule
configuration in the administration area⌉[

Occupancy schedule configuration in the administration area

[⌊Booking details and recurring interval configuration⌉⌊Booking details and recurring
interval configuration⌉[

Booking details and recurring interval configuration

[⌊Frontend booking details dialog⌉⌊Frontend booking details dialog⌉[

Frontend booking details dialog

[⌊Frontend booking request dialog⌉⌊Frontend booking request dialog⌉[

Frontend booking request dialog

[⌊Email notification and approval configuration⌉⌊Email notification and approval
configuration⌉[

Email notification and approval configuration

## Installation

 1. Upload the plugin ZIP through **Plugins > Add New > Upload Plugin**, or copy the`
    occupancy-plan` folder to `/wp-content/plugins/`.
 2. Activate **Occupancy Plan** in the WordPress plugin list.
 3. Open **Occupancy Plan** in the administration area and create or configure a schedule.
 4. Configure courts, time slots, booking permissions, email notifications and optional
    approval settings.
 5. Insert `[occupancy_plan id="1"]` into a page or post and replace `1` with the ID
    of your schedule.

## Reviews

![](https://secure.gravatar.com/avatar/364e4604b957e1ddc5a014f08c85c21352e2e50dffc6aa111bbc5abaec36fe78?
s=60&d=retro&r=g)

### 󠀁[Absolut Top!](https://wordpress.org/support/topic/absolut-top-5/)󠁿

 [](https://profiles.wordpress.org/space-rat/) మే 7, 2024

Absolut top das Plugin! Ein Riesen Dankeschön an den Entwickler – sehr durchdacht&
funktional; so sollte es sein!! Und das Ganze noch Free – perfekt. Als kleinerer
Verein kämpft man eh mit und um Kosten an allen Ecken und enden; das Plugin erleichtert
die tägliche Arbeit und macht’s digital. Andere Plugins kosten dafür oder man muss
seine Vereinsdaten zentralisiert irgendwo an einen Anbieter abgeben. Sehr empfehlenswert!

![](https://secure.gravatar.com/avatar/17f3676e8b76fc028ee842bb272514d327b179038a17a072ce88a7de316e460c?
s=60&d=retro&r=g)

### 󠀁[Highly flexible and effective plugin](https://wordpress.org/support/topic/highly-flexible-and-effective-plugin/)󠁿

 [davidalabaster](https://profiles.wordpress.org/davidalabaster/) మార్చి 16, 2023

This is a great little plugin that is very adaptable with a very responsive and 
helpful developer. I am using to manage tennis court and bowling green booking at
our local sports and social club. Highly recommended

![](https://secure.gravatar.com/avatar/9fea2930171ad03d50a160ade2223189c226c047e3cae63a34333a63264fbbf9?
s=60&d=retro&r=g)

### 󠀁[Tolles Plugin, engagierter Entwickler](https://wordpress.org/support/topic/tolles-plugin-engagierter-entwickler/)󠁿

 [cidgmbh](https://profiles.wordpress.org/cidgmbh/) అక్టోబర్ 30, 2022

Ein praxistaugliches Plugin von einem Entwickler, der die Praxis versteht. Auf Fehler
und Anregungen wird sehr schnell reagiert. Engagierter Entwickler!

![](https://secure.gravatar.com/avatar/8d0c24023b25acdec2635d7a5d29521fb7364b317a9476048c0bd5398640246f?
s=60&d=retro&r=g)

### 󠀁[Super Entwickler](https://wordpress.org/support/topic/super-entwickler/)󠁿

 [sandroanderegg](https://profiles.wordpress.org/sandroanderegg/) ఏప్రిల్ 1, 2021

Danke für die Tolle Unterstützung, kann ich nur weiterempfehlen und das Plug-In 
ist Toll.

![](https://secure.gravatar.com/avatar/7c965ff21255d34dea1067457bacce3a810ebb46e758a7a6c51e23a3e40881c8?
s=60&d=retro&r=g)

### 󠀁[Toller, flexibler Belegungsplan](https://wordpress.org/support/topic/toller-flexibler-belegungsplan/)󠁿

 [SV Motor Zwickau-Süd – Sportkegeln e.V.](https://profiles.wordpress.org/svmozwisued/)
నవంబర్ 3, 2020

Das Plugin ist genau das, was wir brauchen für unsere Kegelhomepage: Eine Halle,
mehrere Unterteilungen (Kegelbahnen) und ein übersichtlicher Belegungsplan. Top 
gelungen!

 [ Read all 5 reviews ](https://wordpress.org/support/plugin/occupancy-plan/reviews/)

## Contributors & Developers

“Occupancy Plan” is open source software. The following people have contributed 
to this plugin.

Contributors

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

“Occupancy Plan” has been translated into 1 locale. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/occupancy-plan/contributors)
for their contributions.

[Translate “Occupancy Plan” into your language.](https://translate.wordpress.org/projects/wp-plugins/occupancy-plan)

### Interested in development?

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

## Changelog

#### 1.6.3

 * Fix: Run the database/role migration check on `init` instead of `plugins_loaded`
   so localized role names no longer trigger WordPress 6.7+ `_load_textdomain_just_in_time`
   notices.
 * 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 `theme` shortcode parameter with Classic, Modern, Cards, Minimal,
   Dark, Soft, Outline and Sport frontend themes
 * Feature: Add the independent `density` shortcode 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

#### 1.5.8

 * Improvement: Redesign the frontend period selector as a compact toolbar with 
   grouped navigation, date range and resource selector
 * Improvement: Add clearer hover/focus states and responsive wrapping for narrow
   screens

#### 1.5.7

 * Fix: Remove theme-added borders around the empty top-left schedule corner, including
   collapsed table-border conflicts
 * Accessibility: Mark structural empty corner cells as hidden from assistive technology
 * Repository: Use the numeric stable tag 1.5.7 for the corresponding WordPress.
   org SVN release tag

#### 1.5.6

 * Maintenance: Correct PHPCS suppression scopes for 15 prepared queries that use
   trusted plugin table identifiers
 * Compatibility: Retain the declared WordPress 4.9 baseline instead of requiring
   the newer %i identifier placeholder

#### 1.5.3

 * Compatibility: Replace deprecated readonly() calls with a WordPress 4.9-compatible
   plugin helper
 * Maintenance: Clarify translator comments for CSV upload-size placeholders
 * Maintenance: Document trusted plugin table identifiers and prepared query variables
   for static analysis
 * Maintenance: Mark the WordPress core plugin_locale filter as an intentional unprefixed
   hook

#### 1.5.2

 * Security: Add direct-access protection to executable PHP files
 * Security: Validate and unslash request values, enforce nonces and capabilities
   for protected actions
 * Security: Prepare dynamic database queries and allowlist list-table sorting and
   bulk operations
 * Security: Escape frontend and administration output according to HTML, attribute,
   URL and style context
 * Security: Validate remote email-template URLs and retrieve them through the WordPress
   HTTP API
 * Compatibility: Remove PHP string helpers unavailable on the declared WordPress
   baseline and use WordPress-aware date handling
 * Reliability: Correct sample schedule installation formats, default color values
   and schedule defaults
 * Reliability: Fix time-slot initialization, weekday rendering, exception edit 
   links and several malformed or duplicated form controls
 * Maintenance: Normalize line endings, resource versions, footer loading, translation
   comments and plugin text domains
 * Maintenance: Consolidate permanent data removal in uninstall.php and remove all
   plugin roles, capabilities, options, calendar tokens and tables

#### 1.5.1

 * Fix: Keep booking dialogs visible and scrollable on narrow Android screens
 * Troubleshooting: If forms are blank after an update, clear browser cache and 
   site data (including cookies), then reload
 * Improvement: Add a responsive CSV import with validation and progress feedback
 * Reliability: Support long rows and UTF-8 BOM; fix upload validation and field
   mappings
 * Documentation: Add administration help for lists, forms, CSV, previews, templates,
   resources, time slots and exceptions
 * Documentation: Add practical shortcode examples to the schedule settings
 * Improvement: Make the monthly week picker optional with `monthpicker="true"`;
   the default uses the week field and date range
 * Improvement: Add contextual schedule help and a copyable shortcode reference
 * Documentation: Share shortcode defaults between frontend and administration help
 * Feature: Show one or two consecutive weeks with the `weeks` shortcode attribute
 * Feature: Select weeks from a compact, AJAX-powered monthly overview
 * Feature: Export bookings as iCalendar files or subscribe through a secret calendar
   URL
 * Calendar: Include recurring bookings, recurrence exceptions, courts, details 
   and contact data
 * Privacy: Restrict calendar management to occupancy managers and allow subscription
   tokens to be reset

#### 1.5.0

 * Documentation: Complete the description, feature overview, shortcode usage and
   installation instructions
 * Improvement: Keep fixed time-slot labels readable in the first schedule column
 * Improvement: Show each day’s date below the weekday in the weekly print view
 * Improvement: Navigate between schedule periods without reloading the complete
   page
 * Improvement: Load frontend dialog markup only when requested via AJAX
 * Fix: Preserve an existing booking ID in AJAX edit dialogs to prevent self-conflicts
 * Fix: Complete AJAX rendering for frontend booking and details dialogs
 * Fix: Keep frontend dialog behavior consistent for guests and logged-in users
 * Fix: Detect booking conflicts for edits, enclosing time ranges and recurring 
   bookings
 * Fix: Show the actual server error when a frontend booking cannot be saved
 * Security: Enforce capabilities and nonces for all backend write actions
 * Security: Restrict frontend booking updates, moves and deletes to authorized 
   users
 * Security: Validate booking plans, dates, times, courts, booking windows and colors
   server-side
 * Security: Escape stored booking data and configuration before frontend output
 * Privacy: Show the booking dashboard widget only to occupancy managers

#### 1.4.20

 * Fix: Import CSV => Set of correct court number
 * Fix: Select correct plan tab
 * Tested with WordPress version 7.0
 * New Feature: Booking window – Number of days in advance that an booking can be
   booked

#### 1.4.19

 * Fix: Correct check for number of courts

#### 1.4.18

 * Fix: Delete of block exceptions
 * Tested with WordPress version 6.9.4
 * Improvements to the block table => Changed from POST to GET

#### 1.4.17

 * Fix: CSV Import of schedules and blocks
 * Tested with WordPress version 6.9.1

#### 1.4.16

 * Fix: Display of the correct week when the first week begins in the previous year

#### Earlier versions

Release notes before version 1.4.16 are available in `changelog.txt`.

## Meta

 *  Version **1.6.3**
 *  Last updated **6 గంటలు ago**
 *  Active installations **100+**
 *  WordPress version ** 4.9 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 5.3 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/occupancy-plan/) మరియు [German](https://de.wordpress.org/plugins/occupancy-plan/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/occupancy-plan)
 * Tags
 * [Belegungsplan](https://te.wordpress.org/plugins/tags/belegungsplan/)[booking](https://te.wordpress.org/plugins/tags/booking/)
 *  [Advanced View](https://te.wordpress.org/plugins/occupancy-plan/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  5 5-star reviews     ](https://wordpress.org/support/plugin/occupancy-plan/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/occupancy-plan/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/occupancy-plan/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/occupancy-plan/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/occupancy-plan/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/occupancy-plan/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/occupancy-plan/reviews/)

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/occupancy-plan/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.software-kunze.de/)