Lazy Event Organiser (LEO)

Leo is a flexible and scalable system to manage events designed for education and sports that accommodates a wide range of event types:

  • Recurring events with complex schedules
  • Recurrence data per recurrence, e.g. substitutions, special guests, diverging pricing
  • Variable event durations (from 1.5 hrs evening classes to multi-day workshops)
  • Multiple locations (physical venues and online streaming locations)
  • Event booking respecting capacity and role limits (using wait lists)
  • Venue hires
  • Appointment scheduling (e.g. for private classes)

LEO is built according to domain-driven design principles and hexagonal architecture, and runs on Symfony 7. Current progress can be reviewed at the gitlab project home.

Feature gaps

After 10 years of extending existing event management plug-ins designed mostly for CMS, which all fail to address some of the basic requirements of education and sports businesses, it’s high time to develop a comprehensive solution.

Event series and event data per recurrence

Education and sports events can be weekly classes, single- or multiple day workshops, or even whole-week trips. Not only should a comprehensive solution provide support for periodical and custom recurrences; it should also allow changing data for individual recurrences, for instance substitution teachers, guests, workshop part titles, or diverging fees. When development for LEO started, not a single existing solutions supported this.

Event cancellations and notifications

CMS solutions allow deleting any event, which leads to confusion for customers, when events suddenly disappear from the calendar, but more importantly has unintended side-effects when tickets for these events have already been sold. Existing solutions therefore often tie events to bookings rendering house-keeping impossible: old events cannot be deleted anymore without manually deleting bookings and payments first.

Leo allows rescheduling and cancelling future events using domain events to notify participants and reimburse tickets, when necessary. Since scheduling and booking are separate contexts, past events can be deleted without impacting booking records.

Automatic booking to capacity or manual confirmations

Leo automatically closes bookings when capacity has been exceeded and moves surplus participants to a wait list. When another participant cancels their ticket(s), free places are automatically released and participants on the wait list confirmed. This also works with couple and group bookings. Alternatively, you can set event registration to ‘manual’ and confirm, waitlist, or deny bookings yourself.

Registration and cancellation windows

Events can only be booked within a specified period. This is particularly useful for high-volume and in-demand events such as international meetings that sell out quickly. Ticket cancellation is always possible but applies a cancellation fee depending on the notice period, which is compliant with legal regulations in most EU countries. (Ticket cancellations without any reimbursement at any time are illegal.)

Venue hires

Venue hiring is an important source of revenue for many organisations and businesses, who have spent time and money creating pleasing and functional premises. Leo enables organisers to receive venue hire requests and interested parties to review availability without compromising privacy for internal events.

Appointment scheduling

With Leo you or your customers can create ‘opaque’ events that block and prevent double-bookings for the same period. This only works for single events but comes with full concurrency control.

Architecture

CMS plug-in solutions entwine content generation as a CMS concern with event scheduling, ticket selling, and payments. This leads to unscalable, hard-to-manage solutions that cannot be properly modified or extended. Having developed (and suffered from) these plug-ins, it was a conscious decision to use Symfony as a framework instead of a CMS for building LEO

Thanks to domain-driven design, LEO fully separates all concerns. If you wish, you can create your event content in any CMS or other system you like, while managing scheduling and booking with LEO. LEO also comes with a REST API and can be used as the back-end for a headless web app.

Leo will NOT be offered as SaaS solution with a monthly subscription fee but as a stand-alone tool you can install on you the server of your choice. This means you will need to make administrative efforts to setup and maintain your LEO installation as well as pay for a web host offering appropriate webspace. It also means

  • You own your data, it’s all on your server and only there.
  • You can use LEO forever. No recurring fees except for continuing support and major upgrades.
  • You can do with your own LEO installation whatever you want. Extend it, modify it, it’s your choice.

Would it be a bad idea to get in touch?

If you have a project in mind, need wise advice, or just want to say hi: Write on to { click/tap to reveal }

© 2026. Lazy Developer Studio. All rights reserved.