JEM can organise a large event as a parent event with a daily programme, while a venue can contain rooms, stands, buildings or any other number of nested subvenues. Every item remains a normal JEM event or venue, so existing menus, registrations, categories, types, exports and permissions continue to work.
Available from JEM 5.1.0. Existing events and venues remain top-level records. No hierarchy is created automatically during an upgrade.
What this feature solves
One public event
Publish a conference, fair or festival once with its overall dates, description, registration and main venue.
A structured programme
Add talks, performances, workshops or sessions as programme items and display them grouped by day on the parent event page.
Real venue structure
Model a site and its buildings, floors, rooms and stands. All descendants inherit the parent venue timezone.
Structure at a glance
Parent event
Internet Fair · 10–12 September
Opening Workshop Closing session
↔
uses
Main venue
Exhibition Centre
Building A Room 1 Stand 24
Event hierarchy: one parent level. Venue hierarchy: any practical depth.
Important design rules
- Events use exactly two levels: a top-level parent and its programme items. A programme item cannot contain another programme item.
- Venues may use multiple levels: for example, site → building → floor → room.
- A programme item must start and finish inside the parent event date and time range.
- A programme item may use the parent event venue, any descendant of that venue, no physical venue, or an online meeting.
- If the parent event has no venue, its programme items may use any venue.
- A subvenue always inherits its parent's effective timezone. Descendants cannot define a conflicting timezone.
- A parent record cannot be deleted while it still has children. Cycles and self-references are rejected.
Create the venue tree
- Create or edit the main venue in Components → JEM → Venues. Leave Parent venue set to No parent venue and select its timezone.
- Create a room, stand or building and select the main site in Parent venue.
- Use Subvenue order to control the order of sibling spaces.
- Repeat the process when another level is required. The parent selector excludes the current venue and all its descendants to prevent cycles.
- Open the main venue page to check its direct subvenues. Events assigned anywhere below that venue are included in the venue event list when visible to the visitor.
Venue hierarchy fields
| Field | Internal name | Purpose |
| Parent venue |
parent_venue_id |
The venue that contains this space. Leave empty for a main or independent venue. |
| Subvenue order |
venue_tree_order |
Numeric order among venues that share the same parent. Name and ID provide stable fallback ordering. |
| Timezone |
timezone |
Editable on a root venue. A subvenue inherits the effective root/parent timezone automatically. |
Create a parent event and its programme
- Create the main event with its complete start/end range and, normally, the main venue. Leave Parent event set to No parent event.
- Create a second event for the first session, talk or activity.
- Select the main event in Parent event. Only dated, top-level events are offered.
- Keep the session date/time within the parent range. A timed item without an explicit end time is treated as a point occurrence; a date-only item occupies its complete day.
- Select the main venue, one of its subvenues, no venue, or configure an online meeting.
- Set Programme order. Items are grouped by day and then ordered by programme order, start time and title.
- Enable Show in general calendars only when this programme item should also appear as an independent entry in calendars and event modules.
Event hierarchy fields
| Field | Internal name | Purpose |
| Parent event |
parent_event_id |
Places this event in the selected parent's programme. Leave empty for a normal top-level event. |
| Programme order |
event_tree_order |
Controls the order among programme items without changing their actual date or time. |
| Show in general calendars |
show_in_calendar |
Adds the programme item to normal calendar/module results. It always remains visible inside its parent programme when the visitor has access. |
Calendar and module modes
JEM event modules provide the same Event hierarchy mode. This avoids a different result depending on the selected module.
| Mode | Result | Recommended use |
calendar |
Top-level events plus programme items whose Show in general calendars option is enabled. |
Default public calendars and upcoming-event modules. |
parents |
Top-level events only. |
Compact listings of conferences, fairs or festivals. |
children |
Programme items only. |
A dedicated sessions or activities module. |
all |
All top-level and programme events. |
Administrative or deliberately complete programme listings. |
Frontend display and exports
- The parent event page displays a Programme grouped by day.
- A programme item links back to its parent event.
- A venue page displays its direct Spaces and subvenues. Each subvenue links back to its parent.
- The parent event ICS download contains the parent and every visible programme item as separate
VEVENT entries.
- The event PDF includes the programme table; a programme-item PDF identifies its parent event.
- JEM Mailer adds parent-event context to programme-item notifications.
- Smart Search indexes the parent relationship so programme items can be understood in context.
Permissions and inherited visibility
A child never bypasses its parent. A programme item is available only when the parent event, its category, type and venue chain are published and accessible to the visitor. A subvenue is available only when every venue above it is published and accessible.
The normal JEM “show locked items” settings may still advertise configured restricted results. They do not grant access. Direct HTML, ICS and PDF requests repeat the permission checks and return a not-found response when the requested hierarchy is not available.
Editing safeguards
- Changing a parent event's dates or venue is rejected if an existing programme item would fall outside the new range or venue tree.
- Bulk Move to venue uses the same hierarchy validation as the event edit form.
- Changing a root venue timezone synchronises its descendants.
- Import uses the normal JEM table validation. Import parent rows before child rows when their IDs are referenced in the same file.
- Export includes all hierarchy IDs, ordering values and calendar visibility, allowing a complete round trip.
Practical examples
Parent event: Internet Fair, 10–12 September, Exhibition Centre.
Venue tree: Exhibition Centre → Building A → Room 1; Exhibition Centre → Hall B → Stand 24.
Programme: Opening in Room 1, product demo at Stand 24, and closing session in Hall B. Visitors see one fair in the general calendar and its complete programme on the event page.
Use the conference as the parent. Physical talks use rooms below the conference venue; an online-only keynote uses no venue and its online meeting fields. Enable Show in general calendars for the keynote if it also needs an independent calendar entry.
Template overrides
Overrides created before JEM 5.1.0 continue to render, but they cannot automatically contain markup added later by JEM. Update existing event and venue detail overrides if the new sections are missing.
Add the event programme at the desired position in the event override:
<?php require JPATH_COMPONENT . '/common/hierarchy/event_programme.php'; ?>
Add the subvenue tree at the desired position in the venue override:
<?php require JPATH_COMPONENT . '/common/hierarchy/venue_tree.php'; ?>
Check both legacy and responsive override directories under templates/YOUR_TEMPLATE/html/com_jem/. Compare the override with the current component template after every JEM upgrade and preserve any site-specific markup.
Compatibility and limitations
- Rows created by earlier JEM versions have empty parent fields and behave exactly as independent events and venues.
- Recurrence and custom-date series remain separate concepts. A recurring occurrence may belong to one programme, but recurrence does not create an event hierarchy.
- Registrations remain attached to each event. JEM does not automatically combine parent and programme-item attendee lists.
- Event hierarchy deliberately stops after one programme level. Use categories, types and venue nesting for additional organisation.
Troubleshooting
- The parent event is not in the selector: confirm that it has a start date, is a top-level event and is available to the current user.
- The programme item cannot be saved: check its complete date/time range and its selected venue against the parent.
- The child is absent from a calendar: select the appropriate module hierarchy mode or enable Show in general calendars.
- The programme or subvenue section is absent: update the active Joomla template override.
- A subvenue timezone changes after saving: this is expected; the timezone is inherited from its parent venue.
Related documentation