Anybook – Online Booking for Rentals, Tours, Classes & Appointments
Anybook – Online Booking for Rentals, Tours, Classes & Appointments

Anybook – Online Booking for Rentals, Tours, Classes & Appointments

0/5 (0 ratings) — active installs Updated Nov 10, 2026
The booking widget on a WordPress page: guests choose their dates, with prices on the calendar, the extras they can add and the security bond shown before checkout.

The booking widget on a WordPress page: guests choose their dates, with prices on the calendar, the extras they can add and the security bond shown before checkout.

Anybook takes bookings for anything you rent out or run: by the night, the day, the hour, the seat or the item. Boats and houseboats, cabins, kayaks and bikes, tours and charters, classes, and appointments with your team, all in one booking calendar.

Your guests book, pay and sign on your own website, under your name. They never see Anybook, and Anybook takes no commission on their bookings.

Built for rentals, stays and tours: deposits now and the balance later, security deposits (bonds) held on the card, waivers signed online, and several units in one checkout. Appointments are covered too, in the same account.

Nothing to maintain. Your bookings, calendar and payments live in Anybook, not in your WordPress database, so there are no booking add-ons to update and nothing to lose if your site breaks. One price, nothing to add on: every feature is included on every plan.

See it on a live WordPress site: wp-demo.anybookapp.com is a made-up boat hire business using this plugin. Nothing is charged and no email is sent.

This plugin puts the Anybook booking widget on your WordPress site in two clicks. Anybook is an online booking service with a monthly price; the plugin itself is free and has no locked features (see “What it costs”, below).

What you get

Take bookings for anything

  • Nights with changeover days, whole days, hourly time slots with a set number of places, places counted for each time (for example the seats in a class or several of the same item), and appointments with a team member, mixed in one account.
  • An availability overview: a calendar of the weeks ahead where guests click a free day to book.
  • Guests can book several units in one checkout and one payment.
  • The booking widget’s first load is under 12 KB, and it shows free dates straight away, even on a phone.

Get paid, and keep the bond

  • Card payments through your own Stripe account, so the money goes straight to you.
  • Deposits now, with the balance charged automatically later.
  • Security bonds held on the guest’s card, or charged and refunded: your choice.
  • Gift vouchers, sold online and over the counter.
  • Payment at the counter or the dock by QR code, on the guest’s own phone.
  • Sync with Xero: invoices, payments, refunds and card payouts.

Paperwork that writes and signs itself

  • Rental agreements and waivers signed online before arrival, confirmed with an emailed code, with a signed copy sent to the guest and to you.
  • Check-in before arrival: driver’s license details, ID and an emergency contact.
  • A visual builder for your emails, invoices and contracts.

Run the day from one screen

  • A daily manifest with pickup and return check-in.
  • Automation rules that send emails, add notes and tasks, and call webhooks.
  • A follow-up email for unfinished bookings, and offers before arrival.
  • Staff logins with roles and two-step verification, and an API and webhooks on every plan.

What it costs

  • Price: from US$15 a month per site (one business location), priced by bookings a month:
    • US$15 for up to 100;
    • US$39 for up to 500;
    • US$79 for up to 3,000.
  • What’s included: every feature on every plan. Never a percentage of your bookings.
  • Opening special, for a limited time: US$10 a month for your first 6 months, on any plan.
  • Billing: monthly, and you can cancel anytime. Stripe’s normal card fees apply.
  • More: plans and details at anybookapp.com.

Getting help

Anybook has no phone or email help desk. Help comes in three ways:

  1. The help assistant in Anybook. This is the fastest. Click the round ? button in the top bar of Anybook, type your question and press Enter. It answers from the Anybook user guide.
  2. The Anybook user guide. It covers every feature, including this plugin. Open it from the help window in Anybook (the User guide button).
  3. The support forum on WordPress.org. Post here if the first two do not solve it. It is watched, but a reply may take a day.

What the plugin does

The plugin is a small connector. Prices, the calendar, bookings, payments and emails all stay on Anybook, so improvements to the widget reach your site without a plugin update.

  • Connect in two clicks. Click Connect to Anybook, sign in as your business’s Owner and click Allow. Anybook lets your website show the widget. No keys or passwords are copied.
  • A booking page made for you. The plugin can make a “Book online” page, which Anybook uses for your guests’ email links. It stays a draft until the Owner clicks Allow on Anybook.
  • A block and a shortcode. Show all your units, one unit, your appointments or one service, in your colors and with your own button wording, or the availability overview.
  • Status at a glance. The settings page shows whether your site is allowed, where your guest page is and whether online booking is on.
  • Friendly with speed plugins. The widget’s script loads only on pages that show it, in the page’s head, and asks common speed plugins to leave it alone. If the widget does not appear, exclude booking-widget.js and booking-overview.js from delaying and combining in your speed plugin.

The Anybook booking block

Add the Anybook booking block anywhere in the block editor. In its sidebar choose what it shows (all your units, one unit, your appointments or one service, listed from your Anybook account), its colors (your theme’s palette is offered), the wording of the booking button and two headings, and whether it opens guests’ email links. Choose Availability overview to show which days are free in the weeks ahead instead; then choose the weeks shown (2 to 26, 12 if left alone), whether prices show, which units (all of them if none is ticked) and whether appointments have one row per service or one row per team member for one service. The overview uses the colors on the plugin’s settings page. A guest who clicks a free day gets the booking widget. The editor shows a preview card; the live widget shows on the published page. A Shortcode block holding [anybook ...] can be turned into the block, keeping its choices.

Shortcode

For the classic editor and page builders, [anybook] shows the same widget with the same choices:

  • show="all", show="unit", show="appointments" or show="service": what to show (all units if left out).
  • unit="belle": one unit (its code in Anybook).
  • service="cut": one service; services="yes" also means appointments.
  • accent="#0b6e4f" and text="#1f2933": colors.
  • guest_links="yes": this widget opens guests’ email links when a page has several.
  • button_text="Book now", details_heading="About you", dates_text="Pick your dates": wording.

The availability overview: [anybook show="overview"], with these choices:

  • weeks="12": how many weeks it shows, 2 to 26 (12 if left out).
  • prices="yes": show prices.
  • units="belle,kayak": only these units (their codes in Anybook, separated by commas); all units if left out.
  • rows="people" service="...": one row per team member for that one service (its id or code in Anybook); otherwise one row per service.

Page builders

In Elementor, put the shortcode in a Shortcode widget; in Divi, in a Code or Text module. The plugin finds the shortcode in both, so the widget’s script loads in the page’s head and the settings page knows your booking page still holds the widget. With other page builders the widget works too, but its script loads at the end of the page; if a guest’s email link does not open the booking, put the shortcode in the page’s main content as well, or ask the builder’s support to call the anybook_page_has_widget filter.

External services

This plugin connects your website to Anybook (https://anybookapp.com), the booking service that takes your bookings and payments. Without Anybook the plugin does nothing.

Your website contacts Anybook only after an administrator or editor has done one of these things:

  • When you click Connect to Anybook, your browser goes to the Anybook booking site with your website’s name and address, the address of the plugin’s settings page to come back to, a single-use check value, and the address of your booking page if you chose to make one. Anybook sends your browser back with your business’s code and name.
  • When you connect or enter a business code, and when you open the plugin’s settings page, your web server asks Anybook’s public API whether your business exists and whether your website is allowed, sending your business code and your website’s address. No personal data is sent. The answer is kept for ten minutes (a failure for one minute).
  • When someone edits a page with the Anybook booking block, your web server asks Anybook’s public API for your business’s units and services (sending your business code) to fill the block’s choices; the answer is kept for ten minutes.

Your visitors’ browsers contact Anybook as well:

  • On pages that show the booking widget, each visitor’s browser loads the widget script from the Anybook booking site (https://site.anybookapp.com/widget/booking-widget.js), and on pages that show the availability overview its script (https://site.anybookapp.com/widget/booking-overview.js) and, once the overview shows, the script that opens the widget from it and the widget’s own script (booking-overview-open.js and booking-widget.js, from the same address). The widget loads further parts of itself, named booking-*.js, from the same address as a guest moves through it. Each of these requests sends Anybook the visitor’s IP address, browser details and the address of the page, even if they do not book. When a guest books, what they type in the booking form (such as name, email address, phone number and booking details) is sent from their browser to Anybook. For card payments the widget loads Stripe (https://stripe.com), and card details go to Stripe. The widget stores nothing in the browser.

The plugin loads remote scripts only on pages that show the widget or the availability overview, never in the WordPress admin, and only once a business is connected. They are part of the Anybook service and are the widget itself, so they are not in the plugin. They load over https from the booking site’s plain address, so changes to the widget reach your site without a plugin update.

Anybook terms of service: https://anybookapp.com/terms
Anybook privacy policy: https://anybookapp.com/privacy
Stripe terms: https://stripe.com/legal and privacy policy: https://stripe.com/privacy

The plugin adds no tracking and stores no booking, guest or payment details on your website. It suggests words for your privacy policy under Settings, Privacy.

Source code and build

The folder build/booking/ holds generated files, made from human-readable source that ships in this plugin.

  • Source: blocks/booking/ is the source of everything in build/booking/, including the minified build/booking/index.js. Start with blocks/booking/index.js, edit.js, shortcode.js, editor.scss and block.json.
  • Build set-up: package.json and package-lock.json, in the plugin’s main folder, list the exact tools and versions.
  • Tools: Node.js 20 with npm, and @wordpress/scripts 30.27.0 (webpack and Sass), which npm ci installs.

To rebuild the block, run these two commands in the plugin’s main folder:

npm ci
npm run build

npm run build runs `wp-scripts build --webpack-src-dir=blocks --output-path=build` and writes `build/booking/`. All the plugin's other files are plain PHP and need no build. The Anybook widget scripts are not part of this plugin: see External services.