Title: Shed Booking
Author: teamstaccato
Published: <strong>October 27, 2026</strong>
Last modified: October 27, 2026

---

Search plugins

![](https://ps.w.org/shed-booking/assets/banner-772x250.png?rev=3768114)

![](https://ps.w.org/shed-booking/assets/icon-256x256.png?rev=3768114)

# Shed Booking

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

[Download](https://downloads.wordpress.org/plugin/shed-booking.0.9.12.zip)

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

 [Support](https://wordpress.org/support/plugin/shed-booking/)

## Description

Shed Booking lets visitors reserve a bookable target (a room, a piece of equipment,
a Zoom account, and so on) for a period of time. Place the `[shedbook_calendar]`
shortcode on a page to show a month and day calendar where visitors pick a time 
slot and submit their details.

**Main features**

 * **Month and day calendar** with a time slot of 5 to 60 minutes (set in the settings
   screen) and a mobile-friendly day view
 * **Bookable targets** with weekly available hours, date-specific exceptions, capacity,
   and preparation time before and after a booking
 * **Confirmation and cancellation** with email notifications. Each reservation 
   includes a link to review or cancel the booking without creating an account
 * **Editable notification text** for the confirmation and cancellation emails (
   visitor and notification recipients) and the Google Chat message, with merge 
   tags and a preview
 * **Notifications** to the people in charge by email (TO and CC) and by Google 
   Chat webhook, with “send test” buttons
 * **Zoom integration (optional)** using Server-to-Server OAuth. The plugin creates
   a Zoom meeting for each reservation and includes the joining details in the confirmation
   email and the booking completion screen. Cancelling a reservation also deletes
   the associated Zoom meeting. Existing Zoom meetings are imported to help prevent
   overlapping bookings. Zoom credentials are stored encrypted
 * **Admin reservation list** with search, date range, status badges, correction
   of a visitor’s name and email address, resend of the confirmation email, and 
   warnings for failed emails or sync problems
 * **Abuse protection** for the public form: rate limits per IP address and per 
   email address, and a hidden honeypot field
 * **Optional spam protection** through the separate Shed Turnstile plugin, which
   adds Cloudflare Turnstile to the booking form

Shed Booking is an independent project and is not affiliated with, endorsed by, 
or sponsored by Zoom Video Communications, Inc. or Google LLC. Zoom is a trademark
of Zoom Video Communications, Inc. Google and Google Chat are trademarks of Google
LLC.

If you need customization, please contact us via [wpshed.jp](https://wpshed.jp/contact/).

### External services

All external integrations are optional. Basic booking works without any external
service.

The plugin communicates with an external service only when the site administrator
has configured or enabled the matching integration. The services, the data sent 
and the circumstances of the transmission are described below.

**Zoom (optional)** — Used to create, read and delete Zoom meetings for bookable
targets that the administrator has linked to a Zoom account. The administrator creates
a Server-to-Server OAuth app in their own Zoom account and enters its credentials
in the plugin. The plugin calls the Zoom API (`https://zoom.us/oauth/token` and `
https://api.zoom.us/v2/`): when it requests an access token, when a reservation 
needs a meeting, when a reservation is cancelled, and when it synchronizes the existing
meetings of the account. Data sent: the Zoom Account ID, Client ID and Client Secret(
to obtain an access token), and for each reservation the meeting topic, start time,
duration and an identifier containing the reservation number. The topic is the meeting
title entered by the visitor (or “Reservation” if none was entered), so it can contain
whatever the visitor typed there. The visitor’s name and email address are not sent
to Zoom. [Terms of Service](https://explore.zoom.us/en/terms/) / [Privacy Statement](https://explore.zoom.us/en/privacy/)

**Google Chat (optional)** — When the administrator enters a Google Chat (or compatible)
webhook URL (https only), the plugin sends a short message to that URL each time
a reservation is created or cancelled. The message contains the date, time and bookable
target name only, not the visitor’s name, email address or meeting details. The 
destination is whatever webhook the administrator enters. [Terms of Service](https://policies.google.com/terms)/
[Privacy Policy](https://policies.google.com/privacy)

**Cloudflare Turnstile (optional)** — Available only through the separate Shed Turnstile
plugin, which must be installed and configured; it is not needed for basic booking.
When it is active, the visitor’s browser loads the Turnstile widget from Cloudflare,
and the Shed Turnstile plugin sends the response token and the visitor’s IP address(
when it can be determined) to Cloudflare (`https://challenges.cloudflare.com/turnstile/
v0/siteverify`) to verify the submission. See the Shed Turnstile readme for details.
[Terms of Service](https://www.cloudflare.com/website-terms/) / [Privacy Policy](https://www.cloudflare.com/privacypolicy/)

## Screenshots

[⌊Month calendar on the booking page⌉⌊Month calendar on the booking page⌉[

Month calendar on the booking page

[⌊Day view with the booking form⌉⌊Day view with the booking form⌉[

Day view with the booking form

[⌊Cancellation and reservation details screen (opened from the email link)⌉⌊Cancellation
and reservation details screen (opened from the email link)⌉[

Cancellation and reservation details screen (opened from the email link)

[⌊Reservation list in the admin screen⌉⌊Reservation list in the admin screen⌉[

Reservation list in the admin screen

[⌊Bookable targets list⌉⌊Bookable targets list⌉[

Bookable targets list

[⌊Weekly available hours of a bookable target⌉⌊Weekly available hours of a bookable
target⌉[

Weekly available hours of a bookable target

[⌊Editable notification text with merge tags and preview⌉⌊Editable notification 
text with merge tags and preview⌉[

Editable notification text with merge tags and preview

[⌊Zoom integration settings of a bookable target⌉⌊Zoom integration settings of a
bookable target⌉[

Zoom integration settings of a bookable target

## Installation

 1. Upload the plugin ZIP from Plugins > Add New > Upload Plugin, then activate it
 2. Create bookable targets under Shed Booking > Bookable targets
 3. Create a page containing the `[shedbook_calendar]` shortcode and select it as the
    booking page in Shed Booking > Settings
 4. Optionally enter the notification email addresses and a Google Chat (or compatible)
    https webhook URL in Shed Booking > Settings
 5. To use Zoom, create a Server-to-Server OAuth app in your own Zoom account (the 
    steps are shown in the bookable target editor), enter its credentials and link 
    the bookable target
 6. To use Cloudflare Turnstile, install and configure the separate Shed Turnstile 
    plugin

## FAQ

### Where is reservation data stored?

Reservation data, including visitors’ names, email addresses, meeting titles and
details, is stored in the database of your WordPress site. The plugin adds suggested
text to the privacy policy guide under Settings > Privacy; please review it and 
include the relevant parts in your site’s privacy policy.

### What happens to the data when I deactivate or uninstall the plugin?

Deactivating the plugin keeps your data. Deleting the plugin from the Plugins screen(
uninstall) removes its reservation tables, settings, stored credentials and scheduled
events.

### How do I customize the emails?

Open Shed Booking > Settings and edit the text under “Notification text”. Merge 
tags such as {reservation_number} are replaced when the message is sent. The tags
are listed on the screen.

### Do I need Zoom?

No. Zoom integration is optional and is configured per bookable target.

### The booking form is rate limited. What if my site is behind a CDN or proxy?

Requests are limited per IP address (30 per hour) and per email address (20 per 
hour). If your site is behind a CDN or reverse proxy, define `SHEDBOOK_TRUSTED_PROXY_HEADER`
in wp-config.php with the name of the header that carries the visitor’s IP address(
for example `define( 'SHEDBOOK_TRUSTED_PROXY_HEADER', 'HTTP_CF_CONNECTING_IP' );`).
The limits can be changed with the `shedbook_rate_limit` filter (return 0 to disable
a limit).

### Is the plugin free?

Yes. It is released under the GPL. Customization is available via [wpshed.jp](https://wpshed.jp/contact/).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Shed Booking” is open source software. The following people have contributed to
this plugin.

Contributors

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

[Translate “Shed Booking” into your language.](https://translate.wordpress.org/projects/wp-plugins/shed-booking)

### Interested in development?

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

## Changelog

#### 0.9.12

 * Prepared the plugin for WordPress.org: English source strings with a bundled 
   Japanese translation, and the GPL license text
 * Notification merge tags now use English names (for example {reservation_number}).
   Text saved with the previous Japanese tag names is converted automatically
 * Dates in emails and on the booking pages follow the site language
 * Improved validation and security for the Google Chat webhook (https only), booking
   dates, available hours and the public booking requests
 * Added rate limits (adjustable with the `shedbook_rate_limit` filter) and a honeypot
   field to the public booking form
 * Added privacy policy guidance. The Zoom host key is now stored encrypted and 
   is no longer shown in the settings form; a host key saved by an earlier version
   is encrypted automatically on update
 * Uninstalling now also removes the Zoom tables, saved Zoom sync status, mail failure
   record, fallback encryption key and scheduled sync

#### 0.9.11

 * Administrators can now correct a visitor’s name and email address from the reservation
   list (“Correct”). When the email address changes, the cancellation link can be
   reissued so the old (possibly misdelivered) link stops working, and the confirmation
   email can be sent again to the corrected address

#### 0.9.10

 * Plugin Check fix: input handling of the Google Chat webhook test-send was adjusted(
   no change in behavior)

#### 0.9.9

 * The notification email setting now supports TO and CC (several addresses each,
   comma-separated); the test-send button sends to both. Removed the words “office”
   and “secretariat” from the screens and emails (neutral wording such as “notification
   recipients” and “the person in charge” is used instead)

#### 0.9.8

 * Added a step-by-step guide to the target editor for creating the Zoom Server-
   to-Server OAuth app (credentials, required scopes, activation)

#### 0.9.7

 * Plugin Check fixes: the license is now declared as GPL-2.0-or-later, the readme
   is written in English (the Japanese readme is kept as readme-ja.txt), and input
   handling in the test-send screen was tightened (no change in behavior)

#### 0.9.6

 * Notification text for emails and Google Chat can now be edited in the settings
   screen (six messages: confirmation and cancellation for the visitor, the office
   and Google Chat), with merge tags, a reset-to-default button and a preview. The
   cancellation link and the Zoom details are added automatically if you leave them
   out. Personal data tags are not available for Google Chat

#### 0.9.5

 * Added “send test” buttons for the office notification email and the Google Chat
   webhook URL

#### 0.9.4

 * Redesigned the day view on smartphones: one target at a time with a target switcher,
   page-level scrolling, larger rows, larger buttons and inputs, and a fixed bar
   showing the selected time slot

#### 0.9.3

 * Plugin Check fixes (no behavior change)

#### 0.9.2

 * Reservation list: search, date range, status badges and counts; “Zoom not issued”
   and email failure indicators; Zoom sync delay warning; Zoom credentials are collapsed
   in the target editor; clearer wording in the admin screens

#### 0.9.1

 * Mobile and wording improvements on the booking pages; notes about Zoom on the
   cancellation and completion screens

#### 0.9.0

 * Resending the confirmation email keeps the same cancellation URL (the token is
   derived from a per-reservation seed and the encryption key). Cancelled or unknown
   cancellation URLs now show a clear message instead of redirecting

#### 0.8.x

 * Added Zoom integration (Server-to-Server OAuth): meeting creation and deletion,
   15-minute sync of existing meetings, connection test with host user picker, encrypted
   credentials with an optional `SHEDBOOK_ENCRYPTION_KEY` constant, retry of failed
   Zoom deletions, passcode support, and the full reservation details on the completion
   and cancellation screens
 * Added a configurable time slot (5 to 60 minutes) and automatic refresh of expired
   page access

#### 0.7.x and earlier

 * Calendar, targets, weekly hours, date exceptions, week start setting and layout
   improvements

## Meta

 *  Version **0.9.12**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [booking](https://wordpress.org/plugins/tags/booking/)[calendar](https://wordpress.org/plugins/tags/calendar/)
   [Rental](https://wordpress.org/plugins/tags/rental/)[reservation](https://wordpress.org/plugins/tags/reservation/)
   [zoom](https://wordpress.org/plugins/tags/zoom/)
 *  [Advanced View](https://wordpress.org/plugins/shed-booking/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

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

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/shed-booking/)