You can sell event tickets on your own WordPress site — no redirect to a third-party checkout, no separate storefront — with a free plugin and a single shortcode. This walks through the whole thing.
If you are still deciding whether it fits, the WordPress ticketing overview covers what you get and what it costs. This post is the setup.
What you are actually installing
Two pieces, and it is worth being clear about which does what:
- The plugin — Event Tickets, RSVPs, Calendar on WordPress.org. It is free and it is a connector. It does not store your events, run your checkout, or send your email.
- Your Ticket Spot account — where events, ticket types, prices, capacity and attendee data live.
Because nothing about your event is stored in WordPress, a theme update or a plugin conflict cannot corrupt an order or break a sale that is mid-checkout.
Step 1 — Install the plugin
In your WordPress admin, go to Plugins → Add New and search for
Event Tickets, RSVPs, Calendar. Install and activate it. Or download it from
the plugin directory and upload
it to /wp-content/plugins/.
Step 2 — Connect your Ticket Spot account
Go to Settings → Ticket Spot in the WordPress admin and sign in. This is the only configuration the plugin itself has.
Step 3 — Build a widget
In your Ticket Spot dashboard, create a widget and choose its layout — a calendar of everything upcoming, or a list of events. Events can be grouped into categories, so one widget can show a subset rather than all of it.
Fonts and colours are set on the widget too, so it sits inside your theme rather than looking bolted on. That customisation is a paid-plan feature; the pricing page has the breakdown.
Each widget has its own widget ID. Copy it.
Step 4 — Paste the shortcode
Drop this into any page, post, or block that accepts shortcodes:
[ticket_spot widget_id="your-widget-id"]
Note the underscore in ticket_spot. Without it WordPress does not
recognise the shortcode and renders it as literal text on the page.
widget_id is the only attribute the shortcode takes. That is deliberate:
everything about what the widget shows and how it looks belongs to the widget,
configured once in the dashboard, so you never have to edit the shortcode again
to change the design. If you want a calendar on one page and a single
category's list on another, build two widgets and place both shortcodes.
Testing it
Preview the page. You should see the widget render in place. Run one purchase end to end — including a real card if you are selling paid tickets — and confirm the confirmation email arrives. Checkout completes on your own page, so the address bar should never change.
What you get on the WordPress side
- Free tickets and RSVPs from the moment you sign up
- Paid tickets on paid plans, with your own payment processor connected so funds go straight to your account
- PDF tickets with QR codes, and Apple Wallet or Google Wallet passes
- QR code check-in through the mobile scan app
- Registration questions — dietary requirements, T-shirt sizes, anything you need at checkout
- Automated attendee email before and after the event
Which of these are on your plan depends on your tier — the pricing page is the source of truth, not this list.
How this compares to other WordPress approaches
- A self-hosted ticketing plugin puts inventory, payments and email deliverability inside your WordPress install. That is more control and more responsibility, including for PCI scope and for what happens when two plugins disagree.
- An Eventbrite or similar embed is quick, but it hands the attendee relationship, the branding and a per-ticket fee to the platform.
- A calendar plugin with a ticketing add-on treats ticketing as an extra. Here ticketing is the product and the calendar is one of the layouts.
Ticket Spot charges 0% platform fees — your payment processor still charges its standard transaction fees, and no one adds anything on top.
