Title: Prenoteca – Booking Requests
Author: Luca Borghese
Published: <strong>Gwynngala 22, 2026</strong>
Last modified: Hedra 8, 2026

---

Search plugins

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

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

# Prenoteca – Booking Requests

 By [Luca Borghese](https://profiles.wordpress.org/lucaborghy/)

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

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

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

## Description

Prenoteca adds a booking request form to any page through a shortcode, and a simple
list in your dashboard to manage what comes in. No account, no external service,
no calendar sync you did not ask for.

It is built for the case most sites actually have: let people ask for an appointment,
get notified, keep a record.

Good for:

 * professional practices
 * beauty salons and barbers
 * consultants and freelancers
 * small businesses taking appointments

What it does:

 * Responsive booking form, added with a shortcode
 * Booking list in the dashboard, filterable by date
 * CSV export of the bookings you filtered
 * Email notification to the site administrator
 * Optional confirmation email to the customer
 * Notifications page to customise every email subject and text, with placeholders
 * Available times added one at a time from the settings page
 * Optional booking statuses (new, confirmed, completed, cancelled), managed from
   the booking list; cancelled bookings free their time slot
 * Optional cancellation link in the customer email: a personal, token-protected
   link to cancel the booking
 * Optional reminder email to the customer the day before a confirmed appointment
 * Optional minimum notice: set how far in advance (minutes, hours or days) a booking
   must be made
 * Optional maximum booking window: set how far ahead (minutes, hours or days) customers
   can book
 * Closing days: single dates, weekly closing days (for example every Sunday) and
   closing periods such as holidays
 * No double bookings: times already taken are disabled in the form, accounting 
   for service duration and breaks
 * Daily booking limit
 * Works with the WordPress privacy tools: personal data export and erasure, and
   suggested privacy policy text
 * Optional “Book Services”: let customers pick a service (duration, break, short
   description, optional price), managed from the dashboard

No external dependencies and no bloat. Only what you really need.

## Installation

 1. Upload the `prenoteca-booking` folder to `/wp-content/plugins/`, or install the
    plugin through the Plugins screen.
 2. Activate the plugin through the “Plugins” screen in WordPress.
 3. Go to **Bookings  Settings** to configure available times and limits.
 4. Add the form to a published page with the shortcode: `[prenoteca_booking_form]`

## FAQ

### Where should I place the form?

In a published page, using the `[prenoteca_booking_form]` shortcode. The cancellation
link in the customer email leads back to that page, which shows the cancellation
request in place of the form. Do not place the form in widgets, archives or theme
templates: there the link falls back to the home page, where customers cannot cancel
unless the home page also shows the form. Keep the page published while bookings
are active, otherwise links already sent will stop working.

### Can I customise the form?

You can change its look with CSS from your theme: the form and its main elements
have classes and IDs starting with `prenoteca` (for example `.prenoteca-form`, `.
prenoteca-btn` and `#prenoteca_name`). Email texts can be edited from **Bookings
Notifications**. Editing the plugin files is not recommended, because changes are
lost when the plugin is updated.

### Can I add custom fields?

Not from the settings. Custom fields require editing the form template and the code
that validates and saves the booking (`includes/class-prenoteca-frontend.php`), 
and changes to the plugin files are lost when the plugin is updated.

### Are the emails customisable?

Yes. Go to **Bookings  Notifications** to edit the subject and text of every email.
Placeholders such as `{nome}`, `{data}` and `{ora}` are replaced with the booking
details, and a button restores the default text.

### When is the reminder email sent?

Enable **Reminder** and **Booking statuses** in **Bookings  Settings**. Between 
09:00 and 20:00 (site time) the plugin emails customers whose booking for the next
day is confirmed, once per booking. The reminder does not depend on the “Send a 
confirmation to the customer” option. The check runs every hour, so bookings confirmed
later in the day still get their reminder, and a failed email is retried up to 3
times. If it still cannot be sent (or no attempts are left before 20:00), a notice
in the admin area and a label in the booking list tell you to contact the customer
directly. The text can be edited from **Bookings  Notifications**. The reminder 
uses WP-Cron, which runs when someone visits the site: on low-traffic sites, disable
WP-Cron in `wp-config.php` (`define( 'DISABLE_WP_CRON', true );`) and have your 
server call `wp-cron.php` every 15 minutes, so reminders are sent on time.

### How do I offer bookable services?

Enable **Book Services** in **Bookings  Settings**. A **Services** menu appears 
where you manage the list; the form then asks the customer to pick one. Each booking
keeps a copy of the service name and duration, so your history stays accurate even
if you later edit or delete the service. Disabling the option hides the field from
the form.

### Can I change the services created on first activation?

Yes, with the `prenoteca_default_services` filter, before you enable the option 
for the first time:

    ```
    add_filter( 'prenoteca_default_services', function () {
        return array(
            array( 'nome' => 'Taglio', 'durata_min' => 30, 'pausa_tra_appuntamenti' => 10, 'attivo' => 'si', 'descrizione_breve' => 'Lavaggio incluso', 'prezzo' => '25' ),
        );
    } );
    ```

### Can I change the anti-spam limit?

By default the form accepts at most 3 booking requests per hour from the same IP
address; administrators are not limited. You can change the number, or set it to
0 to turn the limit off:

    ```
    add_filter( 'prenoteca_rate_limit', function () {
        return 5;
    } );
    ```

The time window is set with the `prenoteca_rate_limit_period` filter, in seconds.

### Where are the bookings stored?

In a dedicated database table, `wp_prenoteca_bookings`. Uninstalling the plugin 
drops that table and removes its options.

### Does it send data anywhere?

No. Everything stays on your site.

### Does the plugin use cookies?

Only one technical cookie, and only when a customer opens the cancellation link 
from their email. The cookie (`prenoteca_cancel_` followed by the booking ID) temporarily
stores the cancellation token, so the token can be removed from the page address.
It expires after 30 minutes, is deleted once the booking is cancelled, and is not
used for tracking. Visitors who only use the booking form receive no cookies from
the plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

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

Contributors

 *   [ Luca Borghese ](https://profiles.wordpress.org/lucaborghy/)

[Translate “Prenoteca – Booking Requests” into your language.](https://translate.wordpress.org/projects/wp-plugins/prenoteca-booking)

### Interested in development?

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

## Changelog

#### 2.1.0

 * Reminder: optional email to the customer the day before a confirmed appointment,
   sent once per booking by an hourly WP-Cron event between 09:00 and 20:00, with
   up to 3 attempts if sending fails (requires Booking statuses)
 * Admin notice and “Reminder not sent” label in the booking list when a reminder
   still fails after 3 attempts
 * Reminder email subject and text editable from Notifications
 * Reminders are sent between 09:00 and 20:00 (site time), never at night; disabling
   the option, or deactivating the plugin, removes the scheduled event
 * Weekly closing days: pick the days of the week when you are always closed, with
   a warning if every day is closed
 * Closing periods: add holidays and other closures with a start and an end date,
   both included
 * Requires WordPress 5.3 or later (previously 5.0)
 * Weekly closing days and closing periods cannot be picked in the form calendar
   and are also checked when the booking is submitted
 * Settings warns when active bookings fall on closing days added later, so you 
   can cancel them and notify the customers
 * Database: a new column records when the reminder was sent; the table is updated
   automatically

#### 2.0.1

 * Customer email when the administrator cancels a booking (if “Send a confirmation
   to the customer” is enabled), editable from Notifications
 * Phone field accepts only numbers, spaces and the characters + – / ( )
 * Minimum notice or maximum booking window set to 0: the option is now turned off
   with a notice, instead of showing the default value
 * The default subject of the “booking received” email to the customer is now “Prenotazione
   ricevuta”, so it is not mistaken for the confirmation email
 * Anti-spam: at most 3 booking requests per hour from the same IP address (adjustable
   with the `prenoteca_rate_limit` and `prenoteca_rate_limit_period` filters; administrators
   are not limited)

#### 2.0.0

 * Book Services: customers pick a service with duration, break, short description
   and optional price
 * Booking statuses: new, confirmed, completed, cancelled, with an email to the 
   customer on confirmation
 * Cancellation link in the customer email, protected by a personal token
 * Notifications page to customise every email subject and text, with placeholders
 * Minimum notice and maximum booking window
 * Closing days
 * No double bookings: taken times are disabled in the form, accounting for service
   duration and breaks
 * “Upcoming” and “Today” views in the booking list, sorted by date and time
 * Paginated booking list, with the total number of bookings
 * CSV export follows the active filters (dates, status, “Upcoming” and “Today” 
   views), with no row limit
 * Dates shown as dd-mm-yyyy with a date picker
 * Clear error messages in the form, with the entered data kept so customers can
   correct it
 * Works with page caching: the form security token is refreshed automatically
 * A booking is confirmed and emailed only after it has been saved
 * Personal data export and erasure through the WordPress privacy tools; erased 
   bookings are anonymised, upcoming active bookings are kept until cancelled
 * Suggested privacy policy text under Settings  Privacy

#### 1.0.0

 * First stable release
 * Front-end booking form
 * Booking management in the dashboard
 * CSV export
 * Administrator and customer emails
 * Plugin settings
 * Daily limit
 * Configurable available times

## Meta

 *  Version **2.1.0**
 *  Last updated **7 dydh ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.3 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/prenoteca-booking/)
 * Tags
 * [appointments](https://cor.wordpress.org/plugins/tags/appointments/)[booking](https://cor.wordpress.org/plugins/tags/booking/)
   [form](https://cor.wordpress.org/plugins/tags/form/)[reservation](https://cor.wordpress.org/plugins/tags/reservation/)
   [schedule](https://cor.wordpress.org/plugins/tags/schedule/)
 *  [Advanced View](https://cor.wordpress.org/plugins/prenoteca-booking/advanced/)

## Ratings

No reviews have been submitted yet.

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

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

## Contributors

 *   [ Luca Borghese ](https://profiles.wordpress.org/lucaborghy/)

## Support

Got something to say? Need help?

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