---
url: /modules/events.md
---
# Events

Events with a date, a location and a description, an optional registration form with participant management, and an ICS download for calendars.

::: glance

* **Module key** `event`
* **Default** on
* **Switch** `EVOLVE_MODULE_EVENT`, see [Modules](/modules/#switching-a-module-on-or-off)
* **Role access** `evolve.roles.modules.event`
* **Panel** `/evolve/event/event`
  :::

## Configuration

| Variable | Default | Panel | Effect |
|---|---|---|---|
| `EVENT_ALLOW_ROUTEABLE` | `true` | no | Give every event a detail page under `/{locale}/event/{slug}`. |
| `EVENT_MAX_FILE_COUNT` | `5` | no | Files a participant may attach to a registration. |
| `EVENT_MAX_FILE_SIZE` | `10240` | no | Size limit per attachment, in KB. |

`config/event.php` also sets `sortable` and the route prefix `event`.

## In the panel

* **Events** at `/evolve/event/event`: title, dates, location, description with the block editor, publish state, and the registration form to use.
* **Participants** at `/evolve/event/event/{id}`: who registered for an event, with the submitted form data and attachments.
* Cmd-K: "Events", "Create event". Events are in the global search.

### Registration

An event can reference a form from the form builder. Its fields become the registration form on the event page. When someone registers, the participant is stored, the participant receives a confirmation mail, and the form's recipient receives a new-registration notification. Registrations run the same spam protection as forms: honeypot and, when configured, reCAPTCHA (since 2.16). See [Form Spam Protection](/panel/form-spam-protection).

## On the site

* **Events block** (blueprint `Events`): title, intro text and a filter: all, upcoming or past events. Renders from the module.
* **Detail pages** at `/{locale}/event/{slug}` with the registration form and an "add to calendar" link.
* **ICS download** at `/api/event/{event}/ics`.
* **JSON** at `/api/event/event` for custom frontends.

A CMS page with the slug `events` takes precedence over the module's routes (since 2.6), so a project can build its own events page without a conflict.

## Publishing

| Tag | Publishes |
|---|---|
| `event.config` | `config/event.php` |
| `event.blueprints` | `Events.php` to `app/Blueprints` |
| `event.components` | Livewire components and views |

## Verifying

Create an event with a registration form, register on the site from an incognito window, and check that the participant appears under the event and both mails arrived. On staging, mail is redirected to `EVOLVE_MAIL_REDIRECT`, see [Mail](/getting-started/mail).
