URL Structure & Permalinks
URL Structure & Permalinks
Tickets Please registers a set of rewrite rules that give your events, venues, organizers, and calendar views clean, predictable URLs. Understanding these patterns helps you build navigation, set up redirects, and troubleshoot 404 errors.
Calendar View URLs
These URLs control which calendar view visitors see and how they navigate through dates and pages.
| URL Pattern | Description |
|---|---|
/events/ | Events archive (redirects to default view) |
/events/list/ | List view |
/events/list/page/{N}/ | List view, page N |
/events/month/ | Month view (current month) |
/events/month/{YYYY-MM}/ | Month view for a specific month |
/events/day/ | Day view (today) |
/events/day/{YYYY-MM-DD}/ | Day view for a specific date |
Single Event URLs
| URL Pattern | Description |
|---|---|
/event/{slug}/ | Single event page |
/event/{slug}/{YYYY-MM-DD}/ | Specific instance of a recurring event |
/event/{slug}/all/ | All instances of a recurring event |
Note the difference: the archive uses events (plural) and single events use event (singular). Both slugs are customizable.
Taxonomy URLs
| URL Pattern | Description |
|---|---|
/events/category/{slug}/ | Events in a specific category |
/events/tag/{slug}/ | Events with a specific tag |
Taxonomy archives support the same view suffixes. For example, /events/category/workshops/month/ shows the workshops category in month view.
Venue, Organizer, and Series URLs
| URL Pattern | Description |
|---|---|
/venue/{slug}/ | Single venue page (with linked events) |
/organizer/{slug}/ | Single organizer page (with linked events) |
/series/{slug}/ | Event series page (all events in the series) |
iCal Feed URLs
| URL Pattern | Description |
|---|---|
/events/ical/ | iCal feed of all events |
/event/{slug}/ical/ | iCal file for a single event |
/events/category/{slug}/ical/ | iCal feed for events in a category |
See Calendar Subscription & Export for details on how these feeds work.
Community URLs
| URL Pattern | Description |
|---|---|
/events/community/add/ | Frontend event submission form |
/events/community/list/ | User’s submitted events list |
Customizing Slugs
You can change the base slugs under Events > Settings > General. The configurable slugs and their defaults:
| Setting | Default | Example Result |
|---|---|---|
| Event archive slug | events | yoursite.com/events/ |
| Single event slug | event | yoursite.com/event/my-event/ |
| Venue slug | venue | yoursite.com/venue/city-hall/ |
| Organizer slug | organizer | yoursite.com/organizer/jane-doe/ |
After changing a slug, Tickets Please displays an admin notice prompting you to flush rewrite rules. Click the link in the notice, or go to Settings > Permalinks and click Save Changes. Until you flush, the old URLs return 404 errors.
Programmatic Slug Customization
For deeper customization, use the tickets_please_event_rewrite_slug filter in your theme or plugin:
add_filter( 'tickets_please_event_rewrite_slug', function ( $slug ) { return 'happenings';} );This changes the single event base from /event/ to /happenings/. Remember to flush rewrite rules after adding or modifying this filter.
Troubleshooting 404 Errors
If event pages return 404 errors after installation, a slug change, or a WordPress update:
- Go to Settings > Permalinks in the WordPress admin.
- Click Save Changes without modifying anything. This flushes the rewrite rules.
- Visit the event URL again.
If the 404 persists, check whether another plugin or page is using the same slug. A WordPress page named “events” will conflict with the events archive slug. Either rename the page or change the events slug.
Common Questions
Can I change the events slug to my site’s root? Setting the archive slug to an empty string is not supported. The events archive needs a base slug to avoid conflicts with other WordPress routes.
Can I use a multi-level slug like calendar/events?
Yes. Enter calendar/events as the archive slug. The resulting URLs will be /calendar/events/list/, /calendar/events/month/, and so on.
What happens to old URLs when I change a slug? Old URLs immediately return 404. Tickets Please does not create redirects automatically. Use a redirect plugin or server-level rules to redirect the old patterns to the new ones.
Can I remove the /event/ prefix from single event URLs?
No. WordPress needs the prefix to distinguish event pages from regular pages and posts. Removing it would create ambiguous routes.
How do I find the URL for a specific event programmatically?
Use the standard WordPress function get_permalink( $event_id ). It returns the full URL using the current slug configuration.
Do these URLs work with plain (non-pretty) permalinks?
Tickets Please requires pretty permalinks. If your site uses plain permalinks (?p=123), the calendar views and custom slugs will not work. Go to Settings > Permalinks and select any structure other than “Plain.”
Next Steps
- Calendar Views — what each view displays and how navigation works
- Events Bar — how search and filter parameters appear in URLs
- Calendar Subscription & Export — iCal feed URLs and subscribe links