=== CraftRoq Schedule ===
Contributors: craftroq
Tags: booking, appointments, events, calendar, registration
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

Bookings & Events, simplified for WordPress. Appointments, events, classes, workshops and registrations.

== Description ==

CraftRoq Schedule is a flexible booking and event management plugin for appointments, events, classes, workshops and registrations.

**Bookings**

* Booking calendar with available dates and time slots
* Services with duration, buffer time and a display price (e.g. "₹500")
* Booking form with guest booking or optional account creation
* Booking statuses: Pending, Confirmed, Cancelled, Completed, No-show
* Customers can reschedule or cancel from a secure link (with a cut-off you control)
* Optional auto-cancel of bookings not approved within X hours; pending count on the admin menu
* Booking notes and private internal notes
* Basic customer management

**Events**

* Events with image, date/time, location, online URL and capacity
* Event registration with automatic sold-out handling
* Upcoming / past events, event archive
* Attendee list with CSV export
* Choose your events URL (e.g. /events/ or /workshops/), with a warning if a page already uses it

**Staff**

* Staff members with weekly working hours and days off
* Assign staff to services; "any available" staff option
* Private iCal feed per staff member for Google Calendar, Apple Calendar or Outlook

**Notifications**

* New booking, confirmed, cancelled, rescheduled, reminder, event registration and event reminder emails
* Admin and staff are told when a customer cancels or reschedules
* "Add to calendar" (.ics) links for customers and attendees
* Editable templates with placeholders

**Privacy**

* Works with WordPress's Export / Erase Personal Data tools
* Optional consent checkbox linked to your privacy policy; consent time is stored
* Suggested privacy policy text

**Accessibility**

* Calendar and time slots announce full dates and selections to screen readers; keyboard focus follows each step

**Design & customization**

* Settings → Appearance: accent colour (or your theme's colours), corner style and font, with a live preview; emails follow the same colour
* Per-form colour in the block sidebar, the Elementor Style tab (colours, radius, typography) or `accent="#hex"` on shortcodes
* Every colour, corner and font is a CSS variable (`--crs-accent`, `--crs-radius`, ...)
* Theme-overridable templates with version tracking; outdated copies are flagged in Settings → Developers and Site Health
* Custom form fields: add your own questions (text, number, date, dropdown, checkbox) to the booking and event forms, with answers in the admin, emails, CSV exports and privacy tools
* 90 documented actions and filters; a JavaScript API to change the booking widget's cards, days and times or replace whole steps; events for analytics; and a REST API
* Developer documentation built in (Settings → Developers) and in the `docs/` folder

**WordPress integration**

* Gutenberg blocks: Booking Form, Events List, Event Registration
* Shortcodes: `[craftroq_booking]`, `[craftroq_events]`, `[craftroq_event_registration]`, `[craftroq_manage_booking]`
* Elementor widgets
* REST API (`craftroq-schedule/v1`)
* Translation ready, responsive, theme overridable templates

== Installation ==

1. Upload the plugin and activate it.
2. A default staff calendar and two pages ("Book an Appointment" and "My Bookings") are created for you.
3. Go to **Schedule → Services** and add a service.
4. Adjust working hours under **Schedule → Staff** and rules under **Schedule → Settings**.

== Frequently Asked Questions ==

= How do staff add bookings to their own calendar? =

Open Schedule → Staff → edit a person and copy the "Calendar feed (iCal)" link into Google Calendar ("From URL"), Apple Calendar or Outlook. Regenerate the link to revoke old subscriptions.

= How do I change the colours to match my brand? =

Go to Schedule → Settings → Appearance and pick an accent colour, corner style and font; the preview updates as you go. Block themes can follow the theme's colours instead. For one form only, use the Colours panel in the block sidebar, the Elementor Style tab, or `[craftroq_booking accent="#0f766e"]`.

= How do I override a template? =

Copy any file from `templates/` into `yourtheme/craftroq-schedule/` (ideally in a child theme) and edit the copy. Schedule → Settings → Developers lists your overrides and flags any that are out of date after an update. See `docs/templates.md`.

= Can I add my own fields to the booking or event form? =

Yes, without code: Schedule → Settings → Form fields. Add questions (short or long text, number, date, dropdown, checkbox), choose which form they appear on and whether they're required. Answers are shown on the booking or attendee, in emails (`{custom_fields}` or one field's placeholder), in CSV exports and in the personal data tools. Developers can also add fields with the `craftroq_schedule_form_fields` filter.

= Is the plugin translatable? =

Yes. Every string, including the booking widget, emails, block editor panels and CSV column titles, uses the `craftroq-schedule` text domain. Right-to-left languages are supported.

= Where is the developer documentation? =

Inside WordPress under Schedule → Settings → Developers, which shows every guide (overview, styling, templates, form fields, JavaScript, hooks reference, REST API, recipes) with code you can copy. The same guides are in the plugin's `docs/` folder as Markdown.

= Is my data removed when I delete the plugin? =

No. To remove all bookings, customers, staff and settings on uninstall, add `define( 'CRAFTROQ_SCHEDULE_REMOVE_ALL_DATA', true );` to wp-config.php first.

== Screenshots ==

1. Customers choose a service, with duration and price shown on each card.
2. Pick a date and time: only free slots are offered, based on staff hours, existing bookings and buffers.
3. Booking confirmation with a link to manage the booking and an "Add to calendar" (.ics) download.
4. Upcoming events in a responsive grid with dates, locations and spots left.
5. Event page with details, "Add to calendar" and the registration form.
6. Dashboard: key numbers, appointments-per-day chart, today's agenda, items needing attention, staff workload and upcoming events.
7. Bookings list with status filters, search, CSV export, one-click status actions and bulk changes.
8. Month and week calendar of bookings and events, colour-coded by status and filterable by staff.
9. Staff member: profile, working hours, days off, services they provide and a private calendar feed.
10. Event details (dates, location, online link, capacity) right in the block editor sidebar.
11. Notification settings: sender and reminders, plus every email template with click-to-copy placeholders.

== Changelog ==

= 1.0.0 =
* Initial release.
