Parent event and venue tree

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

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

  1. Create or edit the main venue in Components → JEM → Venues. Leave Parent venue set to No parent venue and select its timezone.
  2. Create a room, stand or building and select the main site in Parent venue.
  3. Use Subvenue order to control the order of sibling spaces.
  4. Repeat the process when another level is required. The parent selector excludes the current venue and all its descendants to prevent cycles.
  5. 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

FieldInternal namePurpose
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

  1. Create the main event with its complete start/end range and, normally, the main venue. Leave Parent event set to No parent event.
  2. Create a second event for the first session, talk or activity.
  3. Select the main event in Parent event. Only dated, top-level events are offered.
  4. 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.
  5. Select the main venue, one of its subvenues, no venue, or configure an online meeting.
  6. Set Programme order. Items are grouped by day and then ordered by programme order, start time and title.
  7. 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

FieldInternal namePurpose
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.

ModeResultRecommended 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