Tiger Booking

Troubleshooting

Four things go wrong more often than everything else put together: the booking form does not appear, no times are offered, emails do not arrive, and a screen you expected is missing from the menu. Each has a short list of real causes. Work down them in order. Where: most checks here are under WP […]

6 min read Updated August 20, 2026

Four things go wrong more often than everything else put together: the booking form does not appear, no times are offered, emails do not arrive, and a screen you expected is missing from the menu. Each has a short list of real causes. Work down them in order.

Where: most checks here are under WP Admin → Tiger Booking → Settings, Availability and Tools.

The booking form doesn’t appear

The public booking widget is placed by a shortcode, a block or an Elementor widget. The page renders, but where the form should be there is nothing.

  1. Check the shortcode is the right one. The appointment booking flow is
    . There is also a generic
    pass-through. A shortcode that is not registered — because its engine is not installed — renders as literal text or as nothing at all.
  2. Check the engine is active. A shortcode belongs to its engine and is only registered while that engine is on. Look at Settings → Modules. Hotel, restaurant, fitness and rental shortcodes need the Tiger Booking Pro add-on.
  3. Check you are looking at the mapped page. Settings → Pages shows which page the plugin considers your booking page. It is easy to end up with a second, older page that has no shortcode on it.
  4. Check the page builder actually saved the shortcode. Some builders escape shortcodes inside certain blocks. View the page source: the widget renders into a container div, so if there is no such container the shortcode never ran.
  5. Check for a JavaScript error. The form is a React app; if another plugin or theme script throws first, the container stays empty. Open your browser console on the page.

If you have no booking page at all, run Settings → General → Run setup again and let the last step create one. It reuses an existing page rather than making a duplicate.

No time slots are offered

The form appears, the customer picks a service, and the calendar is empty. Slots are computed from staff working hours minus holidays minus existing bookings, then trimmed by your booking rules — so an empty result means one of those inputs is empty. Check in this order:

  1. Is anybody assigned to the service? Only staff qualified for that service are considered. A service nobody delivers has no slots.
  2. Does that person have working hours? Set them under Availability. This is by far the most common cause — a site whose setup wizard skipped the opening-hours step has no hours at all, and nobody can pick a time.
  3. Is the date a holiday or day off? Holidays block every slot on that date.
  4. Is the whole window already booked? Existing bookings are subtracted, including ones still pending.
  5. Is Min Notice hiding everything? A minimum notice of 48 hours hides the next two days. Testing “today” against a long notice period looks exactly like a broken calendar.
  6. Is Max Advance too short? The calendar only opens as far ahead as this allows.
  7. Does the service fit? A 90-minute service inside a 60-minute gap yields nothing. Buffer time after each booking eats into the gap too.
  8. Multi-location: is anyone assigned to the branch? Once a customer picks a branch, only staff who work there are offered. Staff with no branches ticked count as working everywhere; staff ticked for other branches do not.
  9. Is the person active? An inactive employee is excluded entirely.

Booking rules live under Settings → Appointment; duration and buffer live on the service.

Emails aren’t arriving

  1. Is that notification switched on? Each email is independently toggleable under Settings → Notifications.
  2. Test the delivery path. Use Send test on the Notifications screen; it reports which provider it used and what failed. There is a second test on Tools that sends a sample booking invoice.
  3. Move off system mail. Your server’s PHP mail is the usual reason messages vanish into spam. Switch Email Delivery to SMTP and use a real mailbox or a service like SendGrid, Mailgun or SES.
  4. Use a From address on your own domain. Sending as a Gmail address from your own server fails modern authentication checks and gets rejected.
  5. Check the SMTP details individually. Host, port (587 for TLS, 465 for SSL), encryption, username, and — for Gmail or Outlook — an app password rather than the account password.
  6. For scheduled sends, check cron. Anything time-based depends on WordPress cron, which only runs when someone visits your site. On a quiet site, wire up a real system cron.

The send log and per-template stats on the Notifications screen tell you whether a message was handed off successfully — which separates “we never sent it” from “we sent it and it was not delivered”.

A screen is missing from the menu

Menu items are assembled from what is actually installed and switched on. There are only a few reasons one can be absent:

  1. Its engine is off. Each engine contributes its own pages. Check Settings → Modules.
  2. Its code is not in your build. On the free wordpress.org plugin, Waitlist, Coupons, Payments, Integrations and the Hotel, Restaurant, Fitness and Rental engines are not present at all — not locked, not greyed out, genuinely not there. They ship in the Tiger Booking Pro add-on.
  3. A feature switch is off. Some pages are opt-in under Settings → Features: the staff roster pages, for instance, and the Customers CRM view.
  4. Your user lacks the capability. The plugin’s pages require permission to manage them; an editor-level account will not see them.
  5. Pro is installed but unlicensed. Here the menu item usually is registered, and clicking it lands on a screen saying a licence is needed rather than bouncing you somewhere unexpected.

Other common situations

Bookings arrive as “pending” and stay there.

Intended. The public widget cannot confirm on your behalf, because confirmation is where deposit and consent checks live. Confirm from Bookings. A daily scheduled task cancels stale pending bookings, so they do not clog your calendar forever.

A payment succeeded but the booking shows unpaid.

The gateway’s webhook is not configured. Point it at the URL shown in that gateway’s panel under Settings → Payments, and check you are on live keys with Sandbox off. The plugin also raises an admin notice when an enabled gateway has no webhook secret.

A customer appears twice.

Customers are matched on contact details. Booking once with one email and again with another produces two profiles.

Something looks wrong in the data after an import or a crash.

Tools → Data repair scans for orphaned bookings and can relink unambiguous cases. It is audit-logged, and it will not touch anything with more than one possible parent.

I want to start again.

Tools can seed and clear demo data — clearing removes only demo records and preserves everything real. To revisit setup decisions, use Settings → General → Run setup again, which merges rather than wipes.

Everything on a Pro screen says a licence is needed.

The add-on is installed without an active licence. Nothing has been deleted — activate a licence and the screens return with your data and your previous module choices intact.

Still stuck?

We’re here to help

Can’t find what you’re looking for, or hit something that looks like a bug? Reach the support team or ask the community.