=== Bookloom ===
Contributors: aumsrini, bookloom
Tags: appointment, booking, calendar, schedule, reservations
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.1
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A lightweight, user-friendly appointment booking plugin for WordPress.

== Description ==

Bookloom is a clean, lightweight appointment booking plugin built from the ground up for simplicity, security, and performance. 

Designed without bloated dependencies, Bookloom allows customers to select services, inspect real-time available time slots based on your weekly working hours and holidays, and schedule appointments in seconds—all without page reloads.

### Key Features

* **Service Management**: Define custom services with duration (minutes), display price, short description, and maximum capacity per time slot.
* **Flexible Working Hours**: Set open/closed status and custom start/end times per day of the week.
* **Date-Specific Overrides & Holidays**: Close specific dates (such as bank holidays or vacations) or specify custom single-day working hours.
* **Smart Availability Engine**: Generates available slots aligned with service duration, automatically excluding closed dates, past times, and slots with overlapping active bookings.
* **Double-Booking Prevention**: Atomic database transaction locking prevents simultaneous requests from taking the same slot.
* **Frontend Booking Wizard**: Embed with the `[bookloom_form]` shortcode or the dedicated Bookloom Gutenberg block. Accessible, mobile-first, and AJAX-powered.
* **Email Notifications**: Automatically notifies the site administrator of new appointments and delivers instant booking confirmations to customers, customizable with template placeholders.
* **Admin Bookings Table**: Subclassed from `WP_List_Table` with filtering by status and date, customer search, sorting, and inline/bulk status management (`pending`, `confirmed`, `cancelled`).
* **Privacy & Clean Data**: Option to retain or completely purge custom tables and settings upon plugin deletion.

== Installation ==

1. Upload the `bookloom` directory to your `/wp-content/plugins/` directory, or install directly through the WordPress plugin installer.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Navigate to **Bookloom &rsaquo; Services** to create your first service.
4. Visit **Bookloom &rsaquo; Working Hours** to configure your business schedule and holidays.
5. Add the `[bookloom_form]` shortcode or the **Bookloom Booking Form** Gutenberg block to any page or post.

== Frequently Asked Questions ==

= Does Bookloom require customer user accounts? =
No. Bookloom is designed for guest bookings without requiring visitors to register or remember passwords.

= How do I embed the booking form? =
You can use the shortcode `[bookloom_form]` in any page, widget, or post, or insert the "Bookloom Booking Form" Gutenberg block.

= Can two customers book the same time slot? =
By default, each time slot allows 1 booking. If you wish to allow multiple simultaneous bookings (for example, a group class), you can adjust the "Max Bookings Per Slot" setting on that service. Bookloom uses atomic database transaction verification right before insertion to prevent concurrency race conditions.

= Are dates and times displayed in the visitor's or site's timezone? =
All availability calculations and email notifications use the WordPress site timezone configured in **Settings &rsaquo; General**.

= What happens if I uninstall the plugin? =
By default, your appointment data is safely retained in the database. If you wish to permanently delete all Bookloom data on uninstall, enable the "Remove all Bookloom tables and data upon plugin uninstall" checkbox in **Bookloom &rsaquo; Working Hours**.

== Screenshots ==

1. Frontend interactive multi-step booking wizard.
2. Time slot picker displaying available slots based on business hours.
3. Service configuration meta box with duration and capacity.
4. Working hours and date-specific holiday override settings.
5. WP_List_Table admin appointments management screen.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial stable release of Bookloom.
