=== UZYTAK Booking ===
Contributors: uzytak
Tags: booking, appointment, scheduling, calendar, reservation
Requires at least: 6.3
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Appointment booking for service businesses: services, hours, breaks, holidays, free slots, e-mails with calendar file. 10 languages.

== Description ==

Let customers book appointments on your website — for hairdressers, beauty salons, therapists, consultants, tutors, workshops, photographers, repair services and any business that sells time.

* **Services** with duration, price, description and a break after each appointment (cleaning, travel). Unlimited services and bookings.
* **Working hours** per weekday with a lunch break, **closed days** and holiday ranges, start times every 10–60 minutes or by the length of the service, minimum notice and how far ahead customers may book.
* **Booking form** — block "Booking form" or `[uzytak_booking]`: service → day in a month calendar → free time → details. Only really free times are offered. Keyboard friendly, works on phones, no jQuery.
* **No double bookings** — the time is checked again when the booking is sent, written under a database lock, and a unique key in the table stops two bookings of the same start even under heavy load.
* **Time zones done right** — all times are stored in UTC and shown in the time zone of your site; daylight saving changes are handled.
* **E-mails** — the customer gets a confirmation with a calendar file (.ics) for Google Calendar, Outlook and Apple Calendar, in the language of the page they booked on; you get an e-mail for every booking and cancellation with "reply" going to the customer.
* **Cancel link** with a secret token, up to the hours you choose before the appointment; the time becomes free again at once.
* **Confirm yourself or automatically** — bookings can wait for your confirmation (the time stays held).
* **Admin** — upcoming, waiting, past and cancelled bookings with confirm and cancel buttons, and a month calendar.
* **GDPR** — privacy policy text, personal data export and erase tools, consent checkbox, spam protection without captchas (hidden field, fill time, rate limit).

= 10 languages =

Form, e-mails and admin in Deutsch, English, Español, Français, Italiano, Nederlands, Polski, Svenska, Русский, Українська.

= Private =

Bookings are stored only in your WordPress database. The plugin sends nothing to UZYTAK, loads nothing from other servers and sets no cookies.

= Pro add-on =

UZYTAK Booking Pro (separate plugin) adds several staff members with their own hours and services, reminder e-mails before the appointment, online payment or deposit through WooCommerce checkout, a calendar subscription link per staff member for Google Calendar, Outlook and Apple Calendar, your own form fields and CSV export.

== Installation ==

1. Install the plugin from Plugins → Add New, or upload the zip, and activate it.
2. Go to Bookings → Settings: working hours, breaks, closed days, rules and your e-mail address. Check the time zone in Settings → General.
3. Add your services in Bookings → Services.
4. Add the "Booking form" block to a page, or paste `[uzytak_booking]` (or `[uzytak_booking service="2"]` for one service).

== Frequently Asked Questions ==

= Which time zone is used? =

The time zone of your site (Settings → General). Use a city (for example Europe/Warsaw), not a UTC offset, so that summer time is handled.

= Can two customers book the same time? =

No. The time is checked again when the booking is sent, inside a database lock, and the database itself refuses a second active booking with the same start.

= Do I need a payment plugin? =

No. Prices are shown and sent in the e-mails; customers pay you as usual. Online payment through WooCommerce is part of the Pro add-on.

= What happens to bookings when I delete the plugin? =

The settings are removed; the bookings and services tables are kept, because they are your customer records.

== Screenshots ==

1. Booking form: services, month calendar and free times.
2. Bookings list with confirm and cancel.
3. Month calendar in the admin.
4. Working hours, breaks and closed days.

== Source code ==

All code is included in readable form (assets/booking.js, assets/booking.css, assets/admin.css, blocks/booking/editor.js). There is no build step and no minified or third-party code.

== Changelog ==

= 1.0.0 =
* First release: services, working hours, breaks, closed days, booking form and block, e-mails with calendar file, cancel link, bookings list and calendar, 10 languages.
