=== Circumflex Booking Events ===
Contributors: sutregutt
Tags: booking, events, registration, tickets, check-in
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.3
Requires Plugins: circumflex-booking
Stable tag: 1.0.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Accept event registrations, manage places and check in attendees with QR admission passes.

== Description ==

Accept registrations, keep track of available places and welcome attendees at
the door. Each confirmed place has its own QR admission pass. Circumflex Booking
Events is a free add-on for Circumflex Booking Core 1.6.17 or newer; it does not
require Pro or a Pro subscription.

* Present events with an image, introduction, formatted description, time and venue.
* Accept individual and group registrations, with optional place types and limits.
* Confirm registrations automatically or review requests before approving them.
* Send confirmation emails with individual QR passes for phones or printing.
* Scan passes, look up attendees manually or check in a group together.
* Let attendees find their tickets using their email address and a code.

Share each event's link or add an event overview to a WordPress page. Event
information remains readable when an event is full or registration is closed.
An optional Previous events section keeps past events below upcoming ones.
Choose defaults for new events and adjust them for each event.

By default, people can register without creating a WordPress account. Optional email
verification asks the contact person to enter a code sent to their email address.
The confirmation email contains a pass for each attendee in the registration.
When a group arrives together, staff can count the attendees and check in those
who have arrived. Each attendee still has an individual pass.

Administrators can manage and check in every event. Give other WordPress users
access to selected events for check-in or event management without changing
their role. Manual lookup is available if a camera cannot be used. Check-in
requires an internet connection and closes when the event ends. You can set an
optional earliest check-in time for each event.

If someone has lost their confirmation email, Find my tickets lets them enter
their registration email address and use a code to open their passes. Showing
links to this page on event pages and overviews is optional and off by default.
You can also copy the link into your site's menu or another page.

Pause new registrations, send email reminders or notify attendees about changes
and cancellations. The contact person can view the registration and cancel
places before the cancellation deadline using a private registration link.
Places are reserved when a registration is accepted, not while filling in the form.

One type of booking is active per WordPress site. Selecting Events does not
convert existing appointment, airspace or meeting-room bookings. Those records
are kept if you change the booking setup later.

== Privacy and External Services ==

Event registrations and messages are stored on the WordPress site. The site
owner must publish appropriate privacy information before accepting real
registrations. Core provides configurable retention and WordPress privacy
export and erasure for event data.

Cloudflare Turnstile is an optional security check, disabled by default.
If an administrator enables it in Core's Privacy and tools settings, the event
form loads code from `https://challenges.cloudflare.com` and sends a one-time
response token to the site's server. The server sends that token and its
private Turnstile key to Cloudflare Siteverify; it does not explicitly send
the visitor's IP address. Cloudflare processes technical signals such as IP
address, browser information, site key and origin. Registration fails if the
check cannot be verified. Review the
[Turnstile Privacy Addendum](https://www.cloudflare.com/turnstile-privacy-policy/),
[Cloudflare Privacy Policy](https://www.cloudflare.com/privacypolicy/) and
[Cloudflare Terms](https://www.cloudflare.com/policies/terms/) before enabling
it, and describe this processing in the site's privacy information.

== Installation ==

1. Install and activate Circumflex Booking Core 1.6.17 or newer.
2. Install and activate Circumflex Booking Events.
3. In CB Booking settings, select Events as this site's booking profile.
4. Create an event, publish it and share its link. Add the Event overview block
   to a page if you also want people to browse listed events.

== Frequently Asked Questions ==

= Can I share an event without listing it publicly? =

Choose Only via link and share the event link with your intended attendees.
The event will not appear in the public overview. Anyone who receives the link
can still open it, so this option does not make an event private.

= Can more than one person register together? =

Yes. One registration can reserve several places, and each confirmed place
gets its own pass. You can also offer different place types within an event.

= Does Events take payments or assign seats? =

No. This first version handles free registration and place capacity, not
payments or assigned seats.

== Source Code ==

Source and build instructions are in the
[public Forgejo repository](https://git.etter.no/gvar/circumflex-booking).

== Changelog ==

= 1.0.0 =

* First public release.
* Create events with images, formatted descriptions, place types and capacity limits.
* Accept individual or group registrations with automatic or organizer approval.
* Send confirmation emails, QR admission passes, reminders and event-change notices.
* Check in guests individually or together, with camera scanning and manual lookup.
* Give staff access to selected events and let guests find tickets with an email code.

== Upgrade Notice ==

= 1.0.0 =

Requires Circumflex Booking Core 1.6.17 or newer. Back up the site before updating.
Existing Events registrations, admission passes and settings are kept.
