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

Stanislav TyshchenkoComparison10 min read
Five fabric event wristbands with metal clasps on a dark table under the headline: Open-source event ticketing: read the footer clause first. Hi.Events, AGPL-3.0, v2.0 RC, keep Powered by on pages and emails; pretix, AGPL plus extra terms, 2026.9.1, other organisers' events, read term 1; Eventyay, Apache 2.0, pretix fork, no footer clause; alf.io, GPL-3.0, Java 25, 2.0 still a milestone; Attendize struck through, AAL, PHP 7.3, Laravel 6, out of security support. Footer: the Opencals mark and Workshops, tours, classes: hosted engine, MIT templates.

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 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 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, 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 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 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.

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

ProjectLicenceFooter credit requiredLatest releaseStackPaid parts
Hi.EventsAGPL-3.0 + 7(b) term; ee/ dirs EnterpriseYes, pages and emailsv2.0.0-rc.2 (1 Oct); stable v1.11.1-betaLaravel 13, PHP 8.3+, React 19, PostgreSQL, RedisFooter removal, seating, box office, SSO: from €249/yr
pretixAGPLv3 + additional termsYes, every page2026.9.1 (10 Nov 2026)Python 3.11+, DjangoSeating, POS, lead scanning: Enterprise from €499/yr
EventyayApache 2.0NoOwn cycle (pretix fork)Python, Docker setupHosted service and support
alf.ioGPL-3.0No2.0-M5-2609 (18 Sep)Java 25, Spring, PostgreSQL 10+None listed
AttendizeAttribution Assurance LicenseYes, on redistributionNone listed on GitHubPHP ^7.3, Laravel 6, MySQL 5.7Paid 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.

RoutePlatform cost per monthWho pays it by defaultNotes
Eventbrite$290 service fee + about $87 processingBuyerDiscovery included
Hi.Events Cloud$97.50Buyer1.25% + $0.60 per ticket
pretix.eu hosted€75Not stated on the pricing page2.5%, max €15 per ticket
Hi.Events self-hosted, AGPL€0 + your serverYouFooter link stays on pages and emails
Hi.Events self-hosted, licensedabout €47 (€567 a year)You€249 + €240 + €78 for €36,000 of sales
pretix Community, self-hosted€0 + your serverYouUnmodified, or your own events only
Opencals fixed plan + group appointments$22.47You$14.98 incl. 300 bookings + $7.49 add-on, if each place is one booking
Opencals Elastic$99You$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 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 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.

Frequently Asked Questions

Get started

Ready to transform your service business?

Join 150+ businesses already using Opencals. Start on a free development store with every feature unlocked, and only pay once you go live.

No credit card required
Setup in 10 minutes
Cancel anytime