Release notes

Changelog

Every release of the CalNative Booking plugin — new features, improvements, and fixes.

Current version v1.1.9
20 Aug
2026

1.1.9

Latest

Export your bookings, and filter them by date range.

  • Added CSV export to the Bookings page. The Export CSV button downloads exactly what your filters show — status, timeframe or date range, search term and sort order all carry through — so you can pull a single month for invoicing instead of the whole history. The file holds every stored field, including the message, meeting link and Google event ID, and opens straight into Excel, Numbers and Google Sheets with accented names intact.
  • Added a date range filter to the Bookings page. Set From, To, or just one of the two for an open-ended range. A range replaces the All/Future/Past tabs rather than narrowing them, so choosing a range in the past while the Future tab happens to be selected shows that range instead of an empty table — Clear range returns you to the tab you were on. The range carries through the status tabs, the date sort and Load more, so an export always matches what is on screen.
  • The Booked column now shows the date and the time on separate lines, matching the Date / Time column.
  • Four booking widget messages can now be translated — the two form validation notices and the two booking-failure messages. These were fixed English in the widget's JavaScript and were the last visitor-facing strings the translation template could not reach. Re-import the bundled .pot file to pick them up.
  • Cleaner admin screens — focus outlines and drop shadows removed from buttons, inputs and links throughout the plugin.
09 Aug
2026

1.1.8

Every email button is now yours to word.

  • Added a Button Labels section in Settings → Email. The wording inside the Join Meeting and cancellation links was fixed in code until now. You can set all three — the meeting button, the cancel link in your own notification, and the cancel link your client sees — and each accepts the same tokens as the email body: {name}, {full_name}, {host_name}, {title}, {date}, {time}.
  • The Join Meeting button no longer ends with an arrow.
  • Added a Cancellation Notice section in Settings → Email. The message you receive when a client cancels was hardcoded English with no translation support — the one email in the plugin that ignored your email settings entirely. It is now editable, translatable, and sent in the same branded card as your other booking emails. It also names the guest: {full_name}, {email} and {phone} sit alongside {date} and {time}, and a line whose token is empty is dropped, so an uncollected phone number never leaves a stray label behind.
  • Added a Select a Date Prompt setting in Settings → Booking → Schedule, for the "Select a date to see available times." message shown beside the calendar in the Combined layout.
  • Admin labels now use US spelling. The Styling tab reads Colors, Brand Color and Text Color, and booking status wording is "canceled". Stored booking data is untouched, so bookings you canceled before this release still display and filter exactly as they did.
  • Rebuilt the translation template. It was missing 60 strings that exist in the plugin — the entire Video Meeting tab, the Sender Address settings, the Schedule Limit field, the Shortcode guide and the booking delete flow could not be translated at all. It also still carried 30 strings from the license screen that moved to Freemius several releases ago.
04 Aug
2026

1.1.7

Delete old bookings, branded emails, and a separate sender address.

  • Added a Delete option to the Bookings page, for clearing out old records. It appears once a booking has been canceled or its time has passed — upcoming bookings must be canceled first, so the guest is notified and the calendar event is removed properly. Deleting removes the booking record only; your Google Calendar is left unchanged.
  • Booking emails now follow your Styling settings. The header bar uses your primary color, the Join Meeting button uses your button colors, and the card, body text and font all match the booking widget. Previously these were fixed to the default blue and Arial regardless of what you had set.
  • Email corners now use your Border radius setting, so the card and buttons match the widget. Outlook ignores rounded corners and will always render them square.
  • Added a Sender Address setting in Settings → Email. Booking emails can now be sent from an address of your choosing, separate from the Host Email. This matters when sending through an SMTP service — those will only send from an address you have verified with them, while the Host Email has to stay set to the Google account that owns your calendar. Leave it empty and emails send from the Host Email exactly as before.
  • Fixed the plugin changing the sender address on emails sent by other plugins. The sender name and address were applied site-wide, so password resets, WooCommerce receipts and contact form notifications could all go out labeled as the booking host. They are now applied only to CalNative's own emails.
03 Aug
2026

1.1.6

Full compatibility with page caching and CDNs.

  • Works with any caching setup out of the box. The booking widget previously sent a WordPress REST nonce with each request — because nonces expire after 24 hours and are tied to the visitor they were issued to, a booking page served from a full-page cache could pass along a token WordPress no longer accepted, resulting in a 403 response. The widget no longer depends on nonces, so no page exclusions or cache rules are required.
  • No change to booking security. The availability, slots, and booking endpoints are public by design (permission_callback is __return_true) and never read the current user, so the nonce was not providing access control. Rate limiting (5 attempts per IP per 10 minutes) and atomic slot locking are unchanged.
  • More reliable availability on cached sites. Availability requests now always reach your calendar, so days already busy in Google Calendar are correctly grayed out — previously, if the request could not complete, the widget left every day selectable.
17 Jul
2026

1.1.5

Block theme compatibility fix.

  • Fixed booking widget not loading on block themes (e.g. Twenty Twenty-Five) — wp_localize_script was called inside the shortcode, which fires too late in block theme rendering. Moved to wp_enqueue_scripts so config data is always available before the script executes.
  • Fixed "calNativeBooking is not defined" JS error — loading text tokens were accessed as bare globals instead of from the destructured config object, causing failures when the global wasn't in scope.
16 Jul
2026

1.1.4

Jitsi Meet, plain-text email templates, sidebar settings nav, and timezone consistency.

  • New Jitsi Meet video provider — unique per-booking room links with no account or API key required.
  • New Static link video provider — use any personal recurring meeting URL (Google Meet, Zoom, Teams).
  • Detailed Google Meet setup guide in Settings → Video with step-by-step domain-wide delegation instructions.
  • Settings tabs moved to a vertical left sidebar for easier navigation on long settings pages.
  • Email templates now use plain text — the card shell is applied automatically at send time, no HTML in the textarea.
  • New {cancel_button} email token — a pre-styled cancellation link, no HTML authoring needed.
  • Time slots in the booking widget now match the WordPress time format from Settings → General.
  • All dates and times now use the plugin timezone consistently across emails, booking history, and slot display.
  • Plugin timezone now falls back to the WordPress site timezone when not explicitly configured.
  • Fixed booking history and confirmation emails showing times offset from the actual booking time.
  • Fixed created_at timestamp display parsing incorrectly when server and WordPress timezones differed.
  • Fixed Google Meet link generation breaking the slots endpoint on sites without domain-wide delegation.
02 Jun
2026

1.1.3

Schedule limit, shortcode attributes, and Shortcode guide.

  • New Schedule Limit setting — controls how many months ahead visitors can book from today.
  • New Shortcode admin page with a full usage guide and examples.
  • Shortcode now accepts inline attributes: design, text_size, max_width, booking_title, and booking_desc — each overrides the global setting for that page only.
29 May
2026

1.1.2

Admin UI polish and full mobile support.

  • Bookings table redesigned — card-style shell with rounded corners, clean row separators, smoother hover state, and a better empty state.
  • Status badges now include a colored dot indicator for faster visual scanning.
  • Settings page is now fully responsive — field rows stack on mobile, tabs scroll horizontally, design picker collapses to a single column.
  • Bookings page is now fully responsive — table rows become individual cards on mobile with labeled fields, search and filters go full width.
  • Timeframe filter updated to match the rest of the admin UI with a blue active state.
08 May
2026

1.1.1

Combined layout and the new bookings dashboard.

  • Combined widget layout — calendar and time slots side-by-side on one screen.
  • Admin Bookings dashboard with search, status filter, and CSV export.
  • Faster Google Calendar sync — availability requests now cached for 30 seconds.
  • Email templates now support variables for date, time, and client name.
  • Time slots displayed in the wrong timezone when the WP server and Google Calendar were in different regions.
22 Apr
2026

1.0.4

Stability and translation updates.

  • Hardened nonce validation on the booking submission endpoint.
  • Spanish, French, and German translations updated.
  • Border-radius setting was not applied to confirmation step buttons.
  • Cancellation link occasionally generated with a trailing slash, breaking the URL.
14 Apr
2026

1.0.3

RTL polish and settings panel fixes.

  • RTL layout adjustments for the date picker arrows and weekday labels.
  • Settings panel briefly flashed unstyled content on first paint.
28 Mar
2026

1.0.2

Setup wizard improvements.

  • Setup wizard now validates the Google service-account JSON file before saving it.
  • Clearer error messages when the calendar ID is missing or malformed.
  • Plugin failed to activate on PHP installations with the openssl extension disabled — now warns gracefully.
19 Feb
2026

1.0.1

First post-launch hotfix.

  • Buffer time setting was ignored when the previous appointment was a recurring event.
  • Confirmation emails sometimes arrived with the wrong sender name on certain SMTP servers.
  • Reduced front-end CSS payload by 18 KB.
12 Feb
2026

1.0.0

First public release.

  • Live Google Calendar sync — availability calculated in real time from your calendar.
  • Two widget layouts: Classic and Picker.
  • Full admin settings panel — slot duration, buffer time, booking window, appearance.
  • Client and admin email notifications, including one-click cancellation links.
  • RTL support and full WordPress translation hooks.
  • Built-in rate limiting to prevent fake bookings.