Skip to main content

FluentBooking 2.5.0 is live. This one grew out of your feedback, and it covers the small everyday things that were slowing you down.

What's new

  • Private booking notes: Add notes to any booking. Only your team sees them, and they're kept apart from the activity timeline. They also sync to FluentCRM and work with the MCP tools.
  • Reschedule from the admin. No more sending the attendee a link and waiting. Open the booking or the calendar, pick a new date and time slot, add a reason, and you're done. Timezone picker included.
  • Fluent Forms field mapping. Map form fields straight to your event's booking questions. The attendee's answers fill in on their own.
  • Landing pages from the share modal. Turn one on and copy the URL in one step.
  • "Block attendee reschedule" is back for one-off single and group events.
  • Retry button when locations fail to load, so you don't have to refresh the page.

Plus a bunch of smaller fixes across payments, calendar connections, FluentCart, and dark mode.

Full notes are here: https://fluentbooking.com/articles/fluentbooking-2-5-0/

Let me know what you think about this update in the comments.

For several months, I've heard that FluentBooking doesn't work with organizational accounts on M365 or Outlook.com. It's been a pain in the neck, but I have a client's M365 accounts working correctly.

I wanted to share how I resolved the Microsoft Outlook calendar integration issue when standard, non-admin Microsoft 365 users encounter the "Admin consent required" block.

Because FluentBooking is an unverified multi-tenant application, Microsoft Entra ID blocks standard users by default unless the tenant administrator configures specific permission classifications and application settings.

Here is the process that allows standard users to connect their Outlook calendars without needing administrative roles:

1: Add the required permissions to the low-impact classification list.

In the Microsoft Entra admin center, go to Identity, then Applications, then Enterprise applications, then Consent and permissions, and open Permission classifications.

Under the Low classification, add the delegated Microsoft Graph permissions that FluentBooking requests:

Calendars.ReadWrite
User.Read
offline_access
openid
profile
email

2: Grant initial tenant consent as an administrator.

An administrator must trigger the connection once from an admin account. When the Microsoft consent prompt appears, accept it so the FluentBooking service principal registers inside the tenant Enterprise applications list.

3: Adjust the enterprise application properties.

In Enterprise applications, select FluentBooking and open Properties. Set Assignment required to No and save. This prevents Entra ID from blocking users who do not have an explicit app role assigned.

4: Have standard users connect from a clean browser session.

After these tenant settings propagate, standard users must use a fresh private or incognito window to connect their calendar under FluentBooking Host Settings. This clears any cached token sessions that previously failed with error 90095.

Once completed, calendar sync, conflict detection, and automated event creation work reliably for standard users.

Hopefully this helps your team assist other customers running into Microsoft 365 tenant consent issues.

I wonder if it is possible to have and show VAT related to a booking fee and to send an invoice for a paid booking. As a business I need to show the VAT data to the clients and for B2B I need to state the VAT so the client is able to declare it correctly in the books.

How have you solved this or do I miss a setting?

Hi everyone,

Today, Booking Leads 5.99.67 is out. It takes care of two moments: your first minutes with the plugin, and every update that follows.

---------------------
Booking Leads is the smart calendar for WordPress. It sits in front of Fluent Booking, which you keep just as it is 😍

Before the time slots, an access screen keeps every visitor's contact details. It qualifies the request with a few questions, then hands it to the right rep.

You follow every appointment through to the deal, with your team's statistics. Fluent Booking gains abilities it didn't have before, and you keep three times more contacts from the same traffic.

If your business runs on a booking form, take a close look at Booking Leads. I think you're going to love it.
---------------------

A welcome that guides you

As soon as you activate it, a welcome screen is waiting for you. You paste your key, and the wizard opens straight on your calendar.

1.00

Your leads stay with you

Reinstalling the plugin? Your leads, settings and license are still there. And for a fresh start, one switch does it: β€œOn uninstall”, in Settings, Data section.

1.00

A one-click update

A new screen shows you what the release brings, then each step in turn. You land back on your dashboard right after.

1.00

The dashboard also opens on the first try right after you activate your license.

To update: one click on the banner in your WordPress. Your calendars, leads and settings stay in place.

Every new feature in pictures: https://bookingleads.pro/en/booking-leads-5-99-67-release/

There is currently a LTD available for founders. Don't hesitate to give it a try, it's a great deal : https://bookingleads.pro/en/#tarifs

What would you like to see in the next release? Tell me in the comments.

Thank you
Dragan

if you create a private note in FluentBooking and choose to also add it as a note in FluentCRM, deleting the note later from FluentBooking does not delete the copy from FluentCRM.

I was checking out the new private notes feature, and it looks amazing! It could save me money by letting me stop paying for other programs I currently use; however, to make that work, I need to integrate it with a tool that takes notes and generates summaries using AI. Whenever I meet with a client, I use AI to automatically generate a note and save it to my digital case management system. Is there a way to synchronize thisβ€”perhaps via Make, MCP, or another platformβ€”so that a note is generated and saved to these private notes (and added to the user's CRM) while the session is in progress? I also have Plaud AI, in case that helps achieve this.

Hi everyone,

is anyone else experiencing issues with Zoom and calendar synchronization after the latest updates?

In our case:

  • Zoom is connected correctly.
  • The booking location is set to β€œVideo Zoom”.
  • Bookings are created and confirmation emails are sent.
  • However, no Zoom meeting link is generated.
  • Calendar synchronization also seems not to work correctly.
  • We already disconnected and reconnected the calendar, but nothing changed.
  • Existing calendar events do not seem to block availability correctly.
  • This can result in multiple bookings being accepted for time slots that should already be unavailable.

The biggest problem is that we now have several upcoming appointments that require a Zoom call, but there is no Zoom link attached to them.

The integrations appear as connected, but it looks like no real synchronization or Zoom meeting creation is happening.

Has anyone else had the same issue recently, especially after the latest updates? If yes, did you find a workaround or solution?

Thanks.

Hi,
I’m trying to connect FluentBooking with my Microsoft 365 Outlook/Teams calendar, but I keep getting:

AADSTS90094 – Admin consent is required for the permissions requested by this application.

Tenant-wide admin consent has already been granted in Microsoft Entra for the FluentBooking app, includingΒ Calendars.ReadWrite.

The actual calendar belongs to my normal user account, while the admin account has no Exchange calendar.

I checked the OAuth request from FluentBooking and it includes:

scope=Calendars.ReadWrite offline_access openid

and also:

prompt=consent

My suspicion is thatΒ prompt=consentΒ forces Microsoft to request consent again for the normal user, which then gets blocked by our tenant policy even though admin consent has already been granted.

Has anyone run into this with FluentBooking + Microsoft 365/Teams?
Is there a workaround, or does this need to be fixed in FluentBooking’s Microsoft OAuth flow?

I’m running out of ideas at this point, so any pointers would be very welcome.

recurring booking for one-off events like webinars or workshops
- weekly
- bi-weekly
- monthly
- custom dates
- x occurences

Environment

  • FluentBooking (free): 2.4.0
  • FluentBooking Pro: 2.4.0
  • PHP: 8.3

Issue
Adding available time to a Single One-off Event throws a fatal error:

Class "\FluentBookingPro\App\Http\Controllers\FluentBookingPro\App\Modules\SingleEvent\SingleEventController" does not exist

This happens consistently when opening the availability picker for a One-off Event. I've reproduced it after a full reinstall of both plugins from fresh downloads, so it isn't a corrupted install on my end.

In fluent-booking-pro/app/Core/Application.php, requireRouteFile() wraps the entire app/Http/Routes/api.php file in:

php

$router->namespace($this->bindings['__namespace__'] . '\App\Http\Controllers')->group(function($router) {
    require_once $this['path.http'] . 'Routes/api.php';
});

Every controller referenced in api.php lives in FluentBookingPro\App\Http\Controllers, except SingleEventController, which lives in FluentBookingPro\App\Modules\SingleEvent.

The actual namespace-prepending happens in the free plugin, in parseRestHandler() (vendor/wpfluent/framework/src/WPFluent/Foundation/Concerns/FoundationTrait.php):

php

if ($ns && str_contains($handler, $ns)) {
    if (strpos($handler, $ns) !== false) {
        $handler = trim(str_replace($ns, '', $handler), '\\');
    }
}

$handler = $ns ? $ns . '\\' . $handler : $handler;

For controllers that already live inside the group's namespace, the first block strips it off, and the second line correctly re-adds it once. For SingleEventController, which lives in a different namespace entirely, the first block finds nothing to strip, so the second line unconditionally glues the group's namespace onto the controller's already-complete namespace, producing the doubled string in the error.

When I used Calendly, it was easy to manage my calendar in one place and embed it across several of my blogs and websites. With FluentBooking, I need to configure the settings, connect Zoom, my calendar, and Teams, set up availability, and create the integrations again on every website. When something breaks, or even when I just need to reschedule a booking manually, I have to figure out which website it was booked through and manage it there.

Here's my idea: I don't know if it's technically possible, but I'd like to manage everything from one website and simply embed the booking calendar on my other websites, similar to how Calendly works.

I understand this could conflict with the current licensing model. I have a lifetime deal for 50 websites, so perhaps each website where I embed the calendar could still count toward my license, or there could be another way to account for embedded sites.

I hope you can find a solution for this.