JEM 5.x Help

Welcome

Welcome to JEM 5 for Joomla 5.4 and Joomla 6.
JEM 5 runs under Joomla 5.4.x or Joomla 6.x and PHP 8.3 or newer.

This JEM release is intended for Joomla 5.4.x and Joomla 6.x.

Short History

JEM is a fork of Eventlist, one of the most popular non-commercial Event Management components for Joomla.
Since then JEM has continuously been evolved and combines today the functionality of Eventlist together with many code improvements and tweaks and hacks that have been contributed by the community over the last years.

Together with the JEM component, the following modules and plugins have been installed by the JEM package:

As separate install files you could additionally download and install:

The Comments Plugin, for integration with JComments is not needed anymore, since JComments now works without plugin

If you want to use any of these modules and plugins, please do not forget to publish them in the module manager and the plugin manager.

We hope you like this new version of JEM for Joomla 5.4 and Joomla 6!

The JEM Development Team, May 2026

Attention

Read this introduction carefully! If you still have questions click on the Help button and read the screens. If you need additional help and information have a look at the "Get Help" screen on top of the Help center.

Introduction

JEM is an Event Management Component for Joomla. It's not a calendar but an easy way to manage and present your events for your group, company or community. JEM offers a lot of features and possibilities which make your work easier, like the Venue database, Event recurrence, Venue geotagging and much more. But also for your site visitors JEM has some additional features to offer, like a simple registration system, map service links, or the submission/edit of events and venues from the site Frontend.

Quickstart guide

After the successful installation of JEM you need to take at least 3 steps.

The first step is to configure the settings you need in the JEM configuration. Set the format of the date and time, enable image thumbnail creation and set the layout of the table columns.
Optionally you can integrate the community builder enhanced user profile component in the settings.
Most of the settings are self explanatory. If not, move your mouse pointer over the text to get more detailed information or click on the help icon in the toolbar.

The second step is to create the categories. Every event you create must be assigned to a category. For example, if you have a music site you could use Rock, Rap, Dance, Electronic, etc. For each category you can set access permission levels. All events assigned to this category will only be visible for the group you have given access to.

The third step is to create the menu item(s) in the Joomla! menu manager. JEM offers many different menu views:

If you have taken these steps you are ready to input your events. If you want to assign your events to venues you first have to create the venue information.

Backend and frontend permissions

Configure Joomla component permissions under Components → JEM → Options → Permissions. Backend permissions and frontend delegation are intentionally evaluated separately. Backend controllers use Joomla ACL only; frontend User Control settings, record ownership, viewing levels, categories and JEM Groups continue to be evaluated by JemUser::can().

Backend permission combinations

PermissionBackend effectRequired combination
Access Administration Interface (core.manage)Opens JEM.Does not grant event or venue operations by itself.
Access Events / Access VenuesOpens the corresponding list, selectors and related information.Required together with every create, edit, edit-own, state or delete permission for that resource.
Create Events / Create VenuesCreates records of that resource type.The matching access permission is also required.
Edit Events / Edit VenuesEdits any stored record of that resource type.The matching access permission is also required.
Edit Own Events / Edit Own VenuesEdits only records whose stored created_by value is the current user.The matching access permission is also required. Submitted owner values are never trusted.
Edit Event Author / Edit Venue AuthorAllows changing the stored author (created_by) of a record. Without it the field is disabled and read-only, regardless of other edit permissions.Independent from content editing; does not require Joomla's core.manage on Users.
Edit Event State / Edit Venue StateChanges publication state and ordering; the event permission also controls featured state and publication dates.Independent from content editing and requires the matching access permission.
Delete Events / Delete VenuesDeletes records of that resource type according to the normal JEM workflow.Independent for events and venues and requires the matching access permission.
Manage AttendeesDisplays and changes registration and attendee information.Access Events is also required.
Manage JEM ToolsAllows maintenance, import, export, update checks, CSS tools, sample data and related administrative tools.Independent from event and venue editing.
Configure Options (core.options)Changes JEM settings and opens Joomla component options.Independent from content management.
Configure ACL & Options (core.admin)Full JEM control, including all dedicated backend permissions.Joomla standard administrator override.

During an update, JEM grants the new dedicated permissions to groups that already had effective core.manage access, preserving the previous backend behaviour. Existing explicit values for any new permission are not overwritten. Administrators can then narrow each group safely. Categories, groups, types and special days continue to use their existing Joomla core permissions.

Frontend permission decisions

Joomla viewing levels are configured under Users → Access Levels. JEM frontend delegation is configured under Settings → User Control and JEM Groups. The boolean JemUser::can() API remains compatible for layouts, modules and plugins. Extension developers can call JemUser::getAccessDecision() to obtain a stable decision code, stage, source, safe HTTP status and public language key. Internal diagnostics must not be exposed to visitors who cannot view the record.

Frontend examples

Situation Expected result Decision information
A guest requests an event or venue editor. Login is required before record details are evaluated. AUTHENTICATION_REQUIRED, stage authentication.
A frontend user has Edit Own Events and owns the stored event. Editing is allowed after the event viewing level is checked. ALLOWED, stage ownership.
The same user tries to edit an event owned by another user. Editing is denied unless another Joomla or JEM rule grants it. NOT_RECORD_OWNER or the later blocking group/category code.
The record viewing level is not available to the user. The editor is not shown and the public response does not reveal the record. VIEW_LEVEL_DENIED with a safe not-found response.
An event category requires a JEM Group that does not contain the user. The delegated event action is denied. JEM_GROUP_REQUIRED, stage category_group.

Developer example

$decision = JemFactory::getUser()->getAccessDecision(
    'edit', 'event', $event->id, $event->created_by, $categoryIds
);

if (!$decision->isAllowed()) {
    // Safe for the public response:
    $status = $decision->getHttpStatus();
    $messageKey = $decision->getMessageKey();

    // Administrator diagnostics only:
    $internal = $decision->toArray(true);
}

If you like JEM and find it useful, please consider a donation to cover for the hosting expenses of the community.

Notes