Each major version of Booking Activities is focused on one, or two major features. 1.8 will be the exception. Since 1.7, a lot of highly requested small features were developed. 1.8 is the conclusion of this approach, offering the most substantial of them.
Bookings preview
Preview on mouseover, filter on click
On the backend “Bookings” page, you will find a calendar displaying the booked events. So you know at a glance which events are booked, their amount of bookings / their total availability. Mouseover over an event (long press on mobile) to see its bookings list in a tooltip.

This provides an instant preview of the event bookings. If you want to change these bookings, or learn more about them, simply click the event. The booking list will be automatically filtered for this event.
On the frontend too with Display Pack
Note that you can display the events participants list in the same way on your site thanks to the Display Pack add-on. You will find an option to display this tooltip and to select the desired columns, in the desired booking form’s “Calendar” field settings.

Customize the bookings calendar
On the backend “Bookings” page, click the bookings calendar “gear” icon () to open its settings. Here you can:
- Turn ON / OFF the calendar automatic display
- Turn ON / OFF the list automatic filtering
- Turn ON / OFF the event bookings preview in a tooltip
- Select the columns to display in the event bookings preview
- Define the working hours to make the calendar smaller
- More customization options are available with the Display Pack add-on
These options are saved per user, everyone is free to choose their display preferences.

Bookings iCal export / sync
Filter and export / sync
Filter the booking list as you want, the bookings you see are the bookings you export. Once done, click the “Export bookings” button. You will have to choose between a CSV export (for spreadsheets), or an iCal export for calendar apps like Google Calendar.

Select iCal, and generate the export link. Now you can click on “Export” to get a .ics file, or use the given link for synchronization.

About the import or the synchronization process on your app, follow their documentation. For example:
Import | Sync | |
---|---|---|
Google Calendar | import events (Step 2: Import events into Google Calendar) | Use a link to add a public calendar |
Outlook.com | import a calendar (below “Upload a calendar from a file”) | subscribe to a calendar (below “Subscribe to a calendar”) |
Microsoft Outlook | import a .ics file (below “Import .ics or .vcs file”) | add an internet calendar (below “Add internet calendars”) |
Lastly, it is possible to append relative dates to the URL to dynamically restrict the synced period. For example: https://my‑export‑link[...]&export_id=20
&from=today&to=+12month
will export events beginning between today and next year. So if you sync this URL, the past events will disappear everyday.
See the bookings on the exported events
You can fully customize the event title and description. Special tags allow you to display event-related data. For example, by default, the title displays the amount of bookings / the total availability and the event title ([{event_booked_quantity}/{event_availability_total}] {event_title}
). The description displays the booking list ({booking_list}
).

You can also customize this booking list, including choosing the displayed columns.

Log in / register beforehand
…before booking
Some options were added in the “User data (login / registration)” field, “Login” tab.

If you display the login / registration form submit button, users will have the possibility to log in / register before booking.
If you turn ON the “Users must log in first” option, only the login / registration form will appear. The whole booking form will appear only once the user is logged in.

…before seeing the booking list
Use the [bookingactivities_list
shortcode in order to display a login / registration form if the customer is not logged in. login_form="xx"
]xx
corresponds to the booking form ID from which the login form will be taken. This booking form must therefore have a “User data (login / registration)” field.

For example: [bookingactivities_list login_form="5"]
will display the login / registration form used in the booking form #5 if the user is not logged in. If he is, it will display the user booking list.
…at anytime thanks to the shortcode
The new [bookingactivities_login form="xx"]
shortcode displays the login / registration form of the booking form #xx
. Go to Booking Activities > Booking forms > your booking form > and click on the “code” icon () in the “User data (login / registration)” field header to get the shortcode.

Custom fields during registration thanks to Advanced Forms
Note that this feature is fully compatible with the Advanced Forms add-on. So you can add custom fields to the registration forms, the values will be properly saved and attached to the customer.

Trim empty days
This feature makes your calendars start on the first displayed event, and end on the last one. It gives an highlight to your upcoming events, and your customers don’t have to navigate through empty views anymore to find the events.
To activate it, go to the Calendar field settings, “Availability” tab, in the desired form editor.

Moreover, if this feature is activated and if there are no events to display, a message will feedback the user.
Various features
Availability period in days, hours, minutes
The Calendar field settings allow you to set an availability period. For example, “Display events starting between tomorrow and in two weeks only”. Now you can set this period down to the minute.

Booking changes delay in days, hours, minutes
Similarly, it is possible to set a min delay before cancelling / rescheduling a booking. For example, “Prevent the cancellation if the event starts in less than 2 days.”. Now you can also set this delay down to the minute.

This option can be found in Booking Activities settings, “Cancellation” tab. You can set it independently for each activity / group category in the activity / group category settings, in the calendar editor.
“Customer role(s)” column
Now you can display the customer role(s) in a dedicated column in any booking list.

Personal data protection in booking lists
Many of you want to display the events participants on the frontend, when you mouseover the event. This is now possible thanks to the Display Pack add-on.
However, this cannot be done without considering your customers privacy. That’s why all data relating to third-party customers will be hidden in the booking lists if you are not allowed to view or manage user data (list_users
ou edit_users
capabilities).
You can deactivate this protection in Booking Activities general settings, but this is strongly discouraged.

Instead, define which columns should be private, and create new columns that don’t compromise privacy using the API. For example, the demo site allows the “First name” column, and creates a column showing only the initial of the last name (demo). You will find the code below for reference:
function my_theme_allow_first_name_column( $private_columns ) {
$key = array_search( 'customer_first_name', $private_columns, true );
if( $key !== false ) { unset( $private_columns[ $key ] ); }
return array_values( $private_columns );
}
add_filter( 'bookacti_user_booking_list_private_columns', 'my_theme_allow_first_name_column', 10, 1 );
function my_theme_add_user_booking_list_columns( $columns ) {
$columns[ 'customer_last_name_short' ] = 'Last name (private)';
return $columns;
}
add_filter( 'bookacti_user_booking_list_columns_labels', 'my_theme_add_user_booking_list_columns', 20, 1 );
function my_theme_fill_user_booking_list_new_columns( $values, $booking, $group, $grouped_bookings, $user, $filters, $columns ) {
$values[ 'customer_last_name_short' ] = $values[ 'customer_last_name' ] ? strtoupper( substr( trim( $values[ 'customer_last_name' ] ), 0, 1 ) ) . '.' : '';
return $values;
}
add_filter( 'bookacti_user_booking_list_item', 'my_theme_fill_user_booking_list_new_columns', 10, 7 );
You can add this code in your child theme functions.php
, or with a plugin such as Code Snippets.
Same reschedule calendar as the original
The calendar displayed while rescheduling an event now uses the same parameters as the initial booking form calendar. The user will therefore find exactly the same calendar as the one he used to make the reservation.
qTranslate-XT support
Booking Activities used to support qTranslate X, but it is not longer maintained. New developers have resumed the plugin development under the name of qTranslate-XT, so that it works with the latest versions of WordPress and PHP. Booking Activities now supports qTranslate-XT.

Booking management permissions
More and more of you are using Booking Activities on a marketplace site, or at least using the access rights system to ensure that each vendor has access only to their own calendars, forms, and bookings.
We made sure Booking Activities can be used under these conditions, and we have written a tutorial to help you configure Booking Activities for a marketplace.
These are all very, nice! Good work!