Search by

roundly-consulting / events-for-laravel

mihaliak

Real-world events for any Eloquent app: reusable venues with near-me search, ticket tiers priced in Money, RSVPs with a race-free waitlist, QR check-in, co-hosts and invite-only events, iCalendar feeds and schema.org JSON-LD.

Package info

github.com/roundly-consulting/events-for-laravel

Homepage

Documentation

pkg:composer/roundly-consulting/events-for-laravel

Fund package maintenance!

Patreon

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

1.0.0 2026-10-20 07:10 UTC

This package is auto-updated.

Last update: 2026-10-20 07:18:27 UTC


README

Events for Laravel — Roundly open source

Latest release Tests Code style Donate Patreon Crypto

Events for Laravel

Run real-world events in any Laravel app: reusable venues with near-me search, ticket types priced in Money, RSVPs with a race-free waitlist, QR check-in at the door, co-hosts and invite-only events. It is built for meetup, community, venue and ticketing apps that want the event core done right, with times stored in UTC and read in each event's own timezone.

Installation

Requires PHP 8.4, Laravel 12 or 13, MySQL 8 or PostgreSQL, and the bcmath, fileinfo, phar and zlib extensions (plus gd or imagick for poster variants).

composer require roundly-consulting/events-for-laravel
php artisan events:install
php artisan migrate

Set EVENTS_KEY_TYPE to your users' key type (bigint, uuid or ulid) before migrating, and keep EVENTS_PRIMARY_KEY_TYPE equal to lifecycle.key_type and tags.key_type. Schedule events:sweep and lifecycle:sweep every minute (held seats expire, reminders go out, finished events complete), then run php artisan events:doctor.

Usage

Create a venue and a category, publish an event with two ticket types, then RSVP, check in at the door and find events near you:

use RoundlyConsulting\Events\Facades\Events;
use RoundlyConsulting\Money\Money;

// A reusable venue: its timezone is how every wall-clock time below is read
$venue = Events::venues()->make('Blue Note')
    ->address(street: 'Hlavná 1', city: 'Bratislava', postalCode: '811 01', country: 'SK')
    ->coordinates(48.1439, 17.1097)
    ->timezone('Europe/Bratislava')
    ->create();

Events::categories()->make(['en' => 'Jazz', 'sk' => 'Jazz'])->create();   // categories are curated

$event = Events::make(['en' => 'Jazz Night', 'sk' => 'Jazzový večer'])
    ->description(['en' => 'A live quartet, then an open jam session.'])
    ->organizedBy($user)
    ->at($venue)
    ->startsAt('2026-11-14 20:00')                 // 20:00 in Bratislava, stored as UTC
    ->duration('3 hours')                          // or 'PT3H', a CarbonInterval, or ->endsAt(...)
    ->capacity(120)
    ->category('jazz')
    ->labels(['Live', 'Late night'])
    ->poster($request->file('poster'))
    ->tier('Free entry', key: 'free')
    ->tier('Supporter', price: Money::ofMajor('15', 'EUR'), capacity: 30)   // key "supporter"
    ->publish();

// RSVP: a seat while there is one, the waitlist once it is full
$rsvp = Events::for($event)->rsvp($attendee)->going(tier: 'free');
$rsvp->isGoing();                                   // or isWaitlisted(), isHeld()

// At the door: scan the attendee's QR code, as the signed-in staff member
$result = Events::for($event)->by($doorStaff)->checkIn($scannedCode);   // organizers and co-hosts only
$result->firstCheckIn;                              // false if the code was already used

// Discovery: upcoming published events (cancelled ones flagged by phase) within 25 km, nearest first
Events::browse()->upcoming()->near($here, km: 25)->orderByDistance($here)->paginate();

Documentation

The full documentation — configuration, every feature and its API, and testing — lives on our website: roundly-consulting.com/open-source/docs/events-for-laravel

Release notes are in CHANGELOG.md. To contribute, see the contributing guide.

Support our work

This package is free and open source, built and maintained by Roundly Consulting. If it saves you time, please consider supporting our open-source work — a one-time donation, a monthly pledge on Patreon or a crypto donation helps fund maintenance, new features and new packages.

Donate to Roundly open source Become a patron on Patreon Donate crypto: BTC, ETH, BNB or SOL

License

The MIT License (MIT). See LICENSE.md.