=== Exvent – by Xonet ===
Contributors: xonetse
Tags: events, event-grid, popup, event-calendar
Requires at least: 6.2
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

Display events in a responsive grid with accessible popups, categories, opening dates and an automatic archive.

== Description ==
Exvent is a free event plugin for businesses, galleries and community organizations.

* Create events with an image, summary, description, date, time, location and an optional booking link.
* Display events using [exvent_events].
* Show an optional exhibition opening date and time in the top-left corner of the event image.
* Assign multiple categories and filter upcoming or archived events by category.
* Automatically add ended events to the Archive category while retaining their original categories.
* Reveal additional events using a Show more button.
* Configure columns, batch size, button labels, accent color, button color and card image format.
* Import ten clearly labeled demo events with bundled illustrations.
* Move imported demo events to the trash without deleting your own events or media.
* Enable optional, discreet attribution without a link. Attribution is disabled by default.

The plugin interface and in-dashboard manual currently use Swedish source strings with translation support. This readme uses English for the WordPress.org directory.

All scripts, styles and demo illustrations are bundled locally. No external service, tracking, license key or payment is required. This free plugin has no time limit.

This is the first stable release of Exvent Free.

== Installation ==
1. Upload the plugin ZIP using Plugins → Add New → Upload Plugin.
2. Activate Exvent – by Xonet.
3. Create an event in Exvent. The excerpt supplies the card summary; the main editor supplies the popup description.
4. Add [exvent_events] to a page.
5. Configure display and design options in Exvent → Settings. An in-dashboard manual is included.

Use a Text element in Flatsome UX Builder or a Shortcode element in Breakdance. These builders require validation on your own website. No other plugins are required.

== Frequently Asked Questions ==
= How do I display events? =
[exvent_events]
The defaults are three columns and twelve events per batch, unless changed in Settings.
[exvent_events columns="2" limit="6"] overrides these defaults for one grid.

= How do I display a category or a separate archive? =
[exvent_events view="archive" filter="no"]
[exvent_events category="your-category-slug" filter="no"]
[exvent_events category="your-category-slug" view="archive" filter="no"]
Use the category slug from the category administration screen. filter="no" hides both the view selector and category filter.
The older category="arkiv" shortcode remains supported. show_past="yes" displays all dates in ascending order.

= How do dates and archiving work? =
The WordPress timezone is used. Without an end time, an event stays visible until the end of its start day. With an end time, it stays visible until it ends. Events without a valid start date are not displayed.
Archiving runs when the grid is rendered, in administration and through hourly WP-Cron. WP-Cron depends on site visits. Page caching can delay updated output; use a short cache lifetime for the events page.
Moving an event into the future removes the automatically assigned Archive category. Other categories remain.
The optional exhibition opening date is informational and does not affect sorting or archiving.

= How does Show more work? =
The button reveals cards already loaded on the page, separately for each grid, and disappears when all matching events are visible. Without JavaScript, all matching events are displayed. Changing the category or view reloads the page and resets the visible batch. Category and view selections apply to all grids with filter="yes" on that page.

= What happens when I remove demo data? =
Only events with Exvent's internal demo identifiers are moved to the trash, including edited demo events. Your own events, categories and media are retained. Reimporting skips existing demo events, including events in the trash. Restore them from the trash or permanently delete them before reimporting.

= Does the plugin include booking or payment processing? =
You can link to an external booking page. The free version does not include an internal booking system, payments or recurring events.

= What happens on uninstall? =
Events, categories, settings and media are retained. Scheduled archiving stops on deactivation. Reinstall the plugin to restore the event administration screens. Back up your site and media separately.

= Are shortcodes executed inside event descriptions? =
Formatted content is supported, but shortcodes inside event descriptions are not executed.

== Screenshots ==
1. Event grid with category filtering, exhibition opening information and Show more.
2. Mobile event popup with opening information and a booking link.

== Changelog ==
= 1.0.0 =
* First stable release of Exvent Free, including event grids, accessible popups, categories, automatic archiving, design settings and demo data.
* Includes the input validation, output escaping and translation improvements from the release candidates.

= 1.0.0-rc.2 =
* Correct output escaping and remove translations from HTML attributes.
* Sanitize event inputs and public display filter values.
* Add translator comments and ordered placeholders.
* Provide an English directory readme and remove development notes from the production package.

= 1.0.0-rc.1 =
* Design settings and automatic button text contrast.
* Demo removal and optional attribution.
* Translation support and a POT file.
* Integration tests on WordPress 6.2 / PHP 7.4 and WordPress 7.1.2 / PHP 8.2.

= 1.0.0-beta.1–beta.8 =
Development of event management, popup display, dates, categories, demo import, exhibition opening details, archive, settings and Show more.

== Upgrade Notice ==
= 1.0.0 =
Replaces earlier candidates and betas. Existing events and settings are retained. Clear your page cache after updating.
