Ir al contenido principal

Selfhost Event Schedule

Run Event Schedule on your own server and your own database. A single-tenant install has no plan tiers, so every Pro and Enterprise feature is switched on.

Selfhost guides

Start with Installation, then add only the integrations you need. Each guide lists the .env keys it requires. If you want to host schedules for other people, each on its own subdomain, follow the SaaS documentation after installing.

Selfhost - Selfhosted deployments only No plan gates

Setting IS_HOSTED=false makes every schedule resolve to the top tier, so the Pro and Enterprise badges you see elsewhere in these docs do not apply to your install: ticketing and QR check-in, unlimited paid ticket sales, custom fields, waitlists, event graphics, webhooks, custom CSS, internal and unlisted events, team members and unlimited newsletters are all available, and the AI features come with them once you add an AI key. The differences run the other way instead, and they are listed below.

Where to start

  1. Install the app. It runs on ordinary PHP hosting: PHP 8.2 or newer, MySQL 5.7 or MariaDB 10.3, a web server whose document root is the public directory, and HTTPS. Create an empty database, upload the release files, set the file permissions, then open your domain: the sign-up page doubles as the first-run setup wizard, and it takes your database details, runs the migrations, writes .env and creates your account. Finish with the cron entry that runs the scheduler every minute. It is not optional: the scheduler drives the queue worker, so without it email and calendar sync quietly stop. Installation
  2. Set up email. Nothing that emails a person works until a mail driver is configured, including password resets, ticket confirmations, booking requests and newsletters. One driver in .env serves the whole instance. Email Setup
  3. Add Stripe if you sell tickets, passes, gift cards or paid appointments. One account can collect for the whole install, or, with Stripe Connect, each event owner can connect their own and be paid directly. No platform fee is ever added to a sale. Invoice Ninja is the alternative, and it needs no .env configuration at all. Stripe Integration
  4. Add an AI key (Google Gemini or OpenAI) if you want AI event import, agenda scanning, translation or auto import. Everything else works without one. AI Setup
  5. Connect calendars. Google and Outlook sync each need your own OAuth credentials in .env; CalDAV needs no server-side configuration, so a schedule can connect one straight away. Google Calendar, Outlook Calendar
  6. Then the optional pieces. Federation lists your public events on eventschedule.com and links each one back to your site, and stays off until you turn it on in the admin panel; Boost runs Meta ads from inside the app, billed to the one Meta ad account you configure, so every campaign spends your money; the admin panel at /admin gives you instance-wide monitoring and settings, and the account the setup wizard created is already an instance admin; and the accessibility guide covers what to put in your own accessibility statement.

How a selfhosted install differs

Same codebase either way. IS_HOSTED=false is what selects the middle column.

Area Your own server eventschedule.com
Plans No tiers. Every schedule has every feature. Free, Pro and Enterprise
Schedule addresses Paths under your domain, e.g. yourdomain.com/my-schedule, set in the Path field of a schedule's settings A subdomain, e.g. my-schedule.eventschedule.com, and Enterprise can point its own domain at a schedule
Accounts The setup wizard creates the first account, which becomes the instance admin, then sign-up closes. Set ALLOW_REGISTRATION=true to reopen it. Anyone can sign up
Team members Unlimited The owner only, until Enterprise, which allows up to five members per schedule
Email delivery One mail driver in .env for the whole instance Per-schedule SMTP in the Email Settings tab of a schedule's Integrations section. Hosted only, so that tab is hidden on your install.
Newsletter allowance Unlimited 10 recipients a month on Free, 100 on Pro, 1,000 on Enterprise, and unlimited for a schedule sending through its own SMTP. Each recipient counts as one.
Paid ticket allowance Unlimited 25 paid tickets a month on Free, unlimited on Pro and Enterprise. Free tickets and RSVPs never count.
Auto Import An Auto Import section in a schedule's settings takes Import URLs and Import Cities, and runs once a day from the scheduler. Needs an AI key. Not available
Updates Settings → App Update compares your installed version against the latest release and applies it in one click, or run php artisan app:update Updated for you
Attribution No "Powered by" footer, but every public schedule page keeps a small Event Schedule chip in the corner, which the license asks you to leave in place. Embedded views do not carry it. Branding is removed on Pro and Enterprise

Beyond selfhosting

The rest of the documentation applies to every deployment: the user guide describes the same screens your install runs.

Event Schedule is released under the Attribution Assurance License, an OSI-approved licence adapted from the BSD licence, which is why the credit chip stays on a selfhosted install. The open source page links the repository, the releases and the license text.