# Open-source event booking: the footer clause decides more than the feature list

> Hi.Events, pretix, Eventyay, alf.io and Attendize, checked 12 Nov 2026: licence, footer clause, version, stack and what 100 tickets a month costs.

URL: https://opencals.com/blog/open-source-event-booking-system
Author: Stanislav Tyshchenko
Published: 2026-11-12
Updated: 2026-11-12
Categories: comparison

> **Key takeaway**
>
> If you want a self-hosted Eventbrite, install **Hi.Events**: AGPL-3.0, Laravel 13 and PostgreSQL in Docker, one-off and recurring events, Stripe payouts to your own account. Two catches, both in its licence file: every page and email must keep a "Powered by Hi.Events" link unless you buy a licence (€249 a year for the first €10,000 of paid ticket sales), and reserved seating and the box office are paid Enterprise features. **pretix** is the more mature choice for conferences, but its licence adds terms for venues that sell other people's events. If your "events" are the same workshop, tour or class every week with a fixed number of places, that's a booking problem rather than a ticketing one, and a hosted engine like Opencals with our MIT templates on top does it. Opencals itself is not open source.

The question usually arrives like this: "We run about eight events a month, 20 to 150 people each, and Eventbrite takes a cut of every ticket. Is there something free we can host ourselves?"

There is, and more than one. What I didn't expect, going through them on 12 November 2026, is how much of the decision sits in the licence file rather than the feature list. Two of the five projects below require a "powered by" link on every page you publish, one restricts how you can use it for other organisers' events, and one still asks for a PHP version that stopped getting security fixes in 2022. I read each project's LICENSE, README and release page, and the hosted versions' pricing pages. I didn't install them; where I say what something does, it's what the project says.

## Eventbrite charges per ticket, which is the thing you're trying to leave

Eventbrite is what most people compare against, so here's its price, from its US pricing page on 12 November 2026: **3.7% + $1.79 per paid ticket**, plus **2.9% payment processing per order**. Buyers pay those fees by default, and free events cost nothing.

On a $30 ticket that's $2.90 in service fee before processing. Eventbrite also brings something none of the projects here can: its own discovery, the people who find events by browsing it. If most of your buyers come from there, self-hosting saves the fee and loses the audience. If they come from your mailing list, your Instagram or your venue's own site, the fee is mostly a tax on traffic you already have, and that's the case where open source earns its keep.

## Hi.Events is the closest thing to a self-hosted Eventbrite

[Hi.Events](https://github.com/HiEventsDev/Hi.Events) describes itself as an "open-source alternative to Eventbrite, Tickettailor, Dice.fm and other ticketing platforms", and of the five it's the one that reads like a modern product. About 4,100 stars, a `develop` default branch, built on **Laravel 13 (PHP 8.3+), React 19, PostgreSQL and Redis**, shipped as an all-in-one Docker image with one-click deploys for DigitalOcean, Render, Railway and Zeabur.

The feature list is what you'd expect from a paid platform: paid, free, donation and tiered tickets, add-ons and merchandise, promo codes, shared capacity and waitlists, custom checkout questions, payouts to your own Stripe account, refunds, PDF tickets, check-in by phone camera, a REST API and webhooks. Version 2.0 adds recurring events with per-date prices and capacity.

Three things to know before you deploy it:

- **2.0 isn't final yet.** On 12 November the newest releases are 2.0 release candidates (rc.2 dated 1 October), and the one GitHub marks as Latest is v1.11.1-beta, a security release from 11 August that fixed a webhook SSRF and spreadsheet formula injection in exports.
- **The footer stays.** The LICENCE file opens with an additional term under AGPL section 7(b): you must keep a "Powered by Hi.Events" link in the footer of all web pages **and emails** the software generates, visible and legible. You can reword it if you modify the code, but the link must go to hi.events. Removing it takes a commercial licence.
- **Some features aren't AGPL.** Code under `backend/ee/` and `frontend/src/ee/` is under the Hi.Events Enterprise Licence. Their licensing page says reserved seating, the box office for door sales and company SSO aren't part of the free version.

The commercial licence is priced on paid ticket sales per year: **€249 for the first €10,000**, then €12 per €1,000 up to €30,000, €13 per €1,000 up to €60,000, and lower rates after that (their FAQ example: €1,359 a year at €100,000). It removes the footer link, lets you keep your code changes private, and unlocks the Enterprise features as paid add-ons. If other organisers will sell through your install, that's a separate platform licence from €3,999 a year.

Hi.Events also runs a hosted version at **1.25% + $0.60 per paid ticket**, added at checkout and paid by the buyer by default; free events are free.

## pretix is the mature one, with a clause about other people's events

[pretix](https://github.com/pretix/pretix) is what I'd pick for a conference: years of production use, seating plans, a point-of-sale app and an exhibitor lead-scanning plugin. Version **2026.9.1** went to PyPI on 10 November 2026 and needs Python 3.11 or newer.

Its LICENSE is AGPLv3 with additional terms under section 7, and they're worth reading slowly:

1. You may run pretix, modified or not, **without** AGPL section 13 (the duty to offer your source to people using it over a network), as long as you don't use it to offer pretix as a service, or **"to organize, promote, or sell products or services offered or executed by third parties"**.
2. You may not remove the notice at the bottom of every generated page saying it's built with pretix. A modified version can say "powered by \[your company] based on pretix", with "pretix" linking to pretix.eu.

For a single organiser selling its own events, term 1 is generous: change what you like and keep it private. For a venue or a ticket shop selling other people's shows, the exemption doesn't apply, so any change you make has to be offered as source to the people using it, under plain AGPL. And the paid route doesn't cover it either: pretix's self-hosted pricing page says the default Enterprise licence doesn't allow running pretix for third-party organisers, which needs an individual offer.

The free self-hosted edition, pretix Community, has no ticket or user limits. The proprietary plugins (seating plans, pretixPOS, shipping, lead scanning) come with pretix Enterprise, priced yearly by order count and revenue: Starter from €499, Professional from €750, Ultimate from €950, each rising with volume. The hosted pretix.eu charges **2.5% of the ticket price, capped at €15 per ticket**, with the first 500 free tickets a year free and payment provider fees on top.

## Eventyay is a pretix fork under Apache 2.0

[Eventyay](https://github.com/fossasia/eventyay), from FOSSASIA, says its ticketing component "is based on a fork of Pretix", and its LICENSE is **Apache 2.0**, with no footer clause and no third-party restriction. pretix's own licence file explains how both can be true: older versions of pretix were released under Apache 2.0, and that code stays under it.

If pretix's additional terms are the problem, Eventyay is the place to look. Go in knowing that setup is Docker-only through a separate eventyay-docker repository, that the documentation is thinner, and that it's its own project now: check Eventyay's changelog, not pretix's, before you rely on a feature.

## alf.io and Attendize, in one breath each

[alf.io](https://github.com/alfio-event/alf.io) is **GPL-3.0**, with no attribution clause. It's Java (Spring, Gradle) on **Java 25** and **PostgreSQL 10+**, about 1,600 stars. Its newest release is **2.0-M5-2609** from 18 September, still a milestone of 2.0, and the README warns that the main branch can contain unstable code. A good fit if your team runs Java already; otherwise the most work to operate of the five.

[Attendize](https://github.com/Attendize/Attendize) is the one to skip. It has 4,300 stars and a long history, but its composer.json still requires **PHP ^7.3 and Laravel ^6.5**: PHP 7.4 has had no security fixes since November 2022, and Laravel 6 since September 2022. Its **Attribution Assurance License** requires redistributions to display "Powered by Attendize" with a link, and the README says the maintainers don't offer support through GitHub, with 263 issues open.

## Licence, footer and stack, project by project

Checked 12 November 2026 from each project's LICENSE, README, composer/PyPI metadata and release page.

| Project   | Licence                                     | Footer credit required | Latest release                           | Stack                                             | Paid parts                                             |
| --------- | ------------------------------------------- | ---------------------- | ---------------------------------------- | ------------------------------------------------- | ------------------------------------------------------ |
| Hi.Events | AGPL-3.0 + 7(b) term; `ee/` dirs Enterprise | Yes, pages and emails  | v2.0.0-rc.2 (1 Oct); stable v1.11.1-beta | Laravel 13, PHP 8.3+, React 19, PostgreSQL, Redis | Footer removal, seating, box office, SSO: from €249/yr |
| pretix    | AGPLv3 + additional terms                   | Yes, every page        | 2026.9.1 (10 Nov 2026)                   | Python 3.11+, Django                              | Seating, POS, lead scanning: Enterprise from €499/yr   |
| Eventyay  | Apache 2.0                                  | No                     | Own cycle (pretix fork)                  | Python, Docker setup                              | Hosted service and support                             |
| alf.io    | GPL-3.0                                     | No                     | 2.0-M5-2609 (18 Sep)                     | Java 25, Spring, PostgreSQL 10+                   | None listed                                            |
| Attendize | Attribution Assurance License               | Yes, on redistribution | None listed on GitHub                    | PHP ^7.3, Laravel 6, MySQL 5.7                    | Paid support licence                                   |

## 100 tickets a month at 30: eight ways to pay for them

A small organiser: 100 paid tickets a month at 30 each (dollars or euros, as each vendor prices), €36,000 or so of sales a year. Card processing (Stripe or similar) comes on top of every row except Eventbrite's, where it's the second number.

| Route                                    | Platform cost per month                 | Who pays it by default         | Notes                                                                  |
| ---------------------------------------- | --------------------------------------- | ------------------------------ | ---------------------------------------------------------------------- |
| Eventbrite                               | $290 service fee + about $87 processing | Buyer                          | Discovery included                                                     |
| Hi.Events Cloud                          | $97.50                                  | Buyer                          | 1.25% + $0.60 per ticket                                               |
| pretix.eu hosted                         | €75                                     | Not stated on the pricing page | 2.5%, max €15 per ticket                                               |
| Hi.Events self-hosted, AGPL              | €0 + your server                        | You                            | Footer link stays on pages and emails                                  |
| Hi.Events self-hosted, licensed          | about €47 (€567 a year)                 | You                            | €249 + €240 + €78 for €36,000 of sales                                 |
| pretix Community, self-hosted            | €0 + your server                        | You                            | Unmodified, or your own events only                                    |
| Opencals fixed plan + group appointments | $22.47                                  | You                            | $14.98 incl. 300 bookings + $7.49 add-on, if each place is one booking |
| Opencals Elastic                         | $99                                     | You                            | $0.99 per booking, every feature included                              |

Two honest readings of that table. For one-off ticketed events, self-hosted Hi.Events or pretix is cheapest by a distance, if someone on your team is happy to run a Laravel or Django server, keep it patched and answer the "my ticket didn't arrive" emails. And Opencals at $0.99 a booking is the most expensive self-serve option per ticket in the table; the fixed plan only wins when the same sessions repeat every week.

## A workshop that runs every Saturday is a booking, not a ticket

Here's where I'd split the category. A conference, a gig or a festival is an event: one date, a big room, maybe seats, a scanner at the door. A pottery class every Saturday at 10:00 for eight people, a walking tour twice a day, a wine tasting on Thursdays: those are **sessions with capacity**, and they behave like appointments. People want to see the next date with places left, move their booking to next week, add an extra at checkout, and get a reminder the day before.

Ticketing systems can do recurring events now (Hi.Events 2.0 added them), but their model is still the event page. A booking engine starts from the timetable.

That's what Opencals is: a hosted booking and commerce engine, where every booking is an order. Group appointments put a capacity on each time slot ("classes, tours, workshops, and events", as our pricing FAQ puts it), checkout takes extras, discounts and custom questions, and Stripe takes the payment. Our [Tensile template](https://opencals.com/blog/templates/reformer) shows the pattern: a Berlin pilates studio where every class is capped at the beds in the room, the timetable shows places left, Full classes point to the next one with space, and three dated workshops sit next to the weekly classes. It's MIT licensed Next.js, so the site is yours to change; the engine is ours to run. The same template works for any "same session, fixed places" business, and the [group appointments feature page](https://opencals.com/features/group-appointments) covers the settings.

The free tier is a development store in test mode: you can build the whole setup and take test bookings, but not real payments until you're on a plan.

## Where I'd send you to pretix instead of Opencals

If you sell one-off events with **assigned seats**, scan tickets at a door, sell at a box office on the night, or run a conference with exhibitors, use pretix or Hi.Events. Opencals has no seating plan and no door scanner, and our own product notes say high-volume event ticketing isn't what it's for. You'd be fighting the model.

If you're a venue selling tickets for touring promoters, read pretix's additional terms with whoever handles your contracts before you start, or look at Eventyay or alf.io, which don't carry them.

And if what you sell is the same session every week with a fixed number of places, stop reading ticketing comparisons: that's a booking, and a booking engine will be less work every week after the first.

- [Tensile: an MIT class-booking template](https://opencals.com/blog/templates/reformer): Timetable with places left, Full classes, dated workshops and extras, on the Opencals engine.
- [Open-source booking systems, checked](https://opencals.com/blog/open-source-booking-system): The self-hosted schedulers for appointments, rooms and resources, and what each one costs to run.
- [Open-source court booking](https://opencals.com/blog/open-source-court-booking-system): ep3-bs, LibreBooking and the WordPress court plugins: who collects the court fee.
- [Headless booking: one API, any front end](https://opencals.com/blog/headless-booking-system): What a headless booking API exposes and how to build your own site on it.
- [Group appointments](https://opencals.com/features/group-appointments): Capacity per time slot for classes, tours, workshops and events.

## Frequently asked questions

### Is there an open-source alternative to Eventbrite?

Yes. Hi.Events (AGPL-3.0) is the closest match: ticket types, promo codes, check-in, payouts to your own Stripe account and recurring events in 2.0, self-hosted with Docker. pretix (AGPLv3 with additional terms) is the more mature choice for conferences. Neither brings Eventbrite's discovery audience, and both require a 'powered by' credit in the footer unless you buy a commercial licence.

### Can I remove 'Powered by Hi.Events' from my ticket pages?

Not under the free licence. Hi.Events' LICENCE adds an AGPL section 7(b) term requiring a visible 'Powered by Hi.Events' link in the footer of every web page and email the software generates. A commercial licence removes it; checked 12 November 2026, it costs €249 a year for the first €10,000 of paid ticket sales, rising with volume.

### Can a venue use pretix to sell tickets for other promoters' events?

Yes, but read the licence first. pretix's additional terms let you skip AGPL section 13 only if you don't use pretix to sell products or services offered by third parties. Selling other promoters' events means plain AGPL applies, so any changes you make must be offered as source to users. pretix's default Enterprise licence doesn't cover third-party organisers either; that needs an individual offer.

### Which open-source ticketing system has no attribution requirement?

Of the five checked on 12 November 2026, Eventyay (Apache 2.0, a fork of pretix from its Apache-licensed days) and alf.io (GPL-3.0) carry no footer credit requirement. Hi.Events and pretix require one on every generated page, and Attendize's licence requires 'Powered by Attendize' on redistributions.

### Is Opencals an open-source event booking system?

No. Opencals is a hosted booking and commerce engine. Its Next.js templates and storefront SDK are MIT licensed, so you can own and change the site, but the engine is hosted. It suits sessions that repeat with a fixed number of places, such as workshops, tours and classes. For one-off events with assigned seating or door scanning, pretix or Hi.Events fits better.
