Events

An event is a custom Craft element belonging to one calendar. It carries a start, an end, an all-day flag, a timezone and an optional recurrence rule, alongside the usual title, slug, status and custom fields.

Creating an event

Go to Owl → Events → New event, choose a calendar, then set:

  • Title and any custom fields from the calendar’s field layout.
  • Start and end date/time (or mark it all-day).
  • Timezone — the date pickers display in the event’s own timezone.
  • Recurrence — leave empty for a one-off, or add a rule. See Recurrence.

When you save, Owl materialises the event’s occurrences (one for a single event, many for a recurring one) and shows a live occurrence count.

Querying events

Events use a fluent EventQuery, just like entries. The most common starting point is the front-end occurrence query — see Front-end & Twig — but you can also query events directly:

{% set events = craft.owl.events()
  .calendar('concerts')
  .orderBy('startDate ASC')
  .all() %}

{% for event in events %}
  

{{ event.title }}

{% endfor %}

Events vs occurrences

Querying events gives you each event once, regardless of how often it repeats. To render a calendar — where a weekly event should appear on every week it falls — query occurrences with craft.owl.events() across a date range. The Front-end & Twig page covers this in detail.

Statuses

Events honour Craft’s element statuses (enabled / disabled) and post/expiry dates. Disabled events and their occurrences are excluded from front-end queries and feeds by default.

More in Site Features

Pairs well with Owl

The bigger pieces a client asks for by name. Events, bookings, memberships, courses, reviews, a support desk, job listings and the rest.