Eventbrite Handler
Import events from public Eventbrite organizer pages via Schema.org JSON-LD extraction.
Overview
The Eventbrite handler parses public Eventbrite organizer pages to extract events from embedded JSON-LD structured data. No API key or authentication is required – events are extracted directly from the public HTML page.
Features
JSON-LD Extraction
- Schema.org Parsing: Extracts Event schema from
<script type="application/ld+json">tags - ItemList Support: Handles both individual Event objects and ItemList containers
- Complete Metadata: Extracts venue, pricing, performer, and image data
Configuration Options
- organizer_url: Full Eventbrite organizer page URL (required)
- date_range: Number of days into the future to import (default: 90)
Usage
Configuration
$config = [
'organizer_url' => 'https://www.eventbrite.com/o/lo-fi-brewing-14959647606',
'date_range' => 90
];
Example Organizer URLs
https://www.eventbrite.com/o/lo-fi-brewing-14959647606https://www.eventbrite.com/o/your-organizer-name-12345678
Data Mapping
Eventbrite Schema.org to Event Details Block
| Eventbrite Field | Event Details Attribute |
|---|---|
name |
title |
startDate |
startDate, startTime |
endDate |
endDate, endTime |
description |
description |
location.name |
venue |
location.address.streetAddress |
venueAddress |
location.address.addressLocality |
venueCity |
location.address.addressRegion |
venueState |
location.address.postalCode |
venueZip |
location.address.addressCountry |
venueCountry |
location.geo |
venueCoordinates |
offers.lowPrice / offers.highPrice |
price |
url |
ticketUrl |
performer.name |
artist |
image |
imageUrl |
Integration
EventIdentifierGenerator
Uses EventIdentifierGenerator::generate() for consistent event identity:
$event_identifier = EventIdentifierGenerator::generate(
$standardized_event['title'],
$standardized_event['startDate'],
$standardized_event['venue']
);
Single-Item Processing
Processes one event per job execution with duplicate prevention via ProcessedItems tracking.
Venue Metadata
Complete venue metadata extraction including:
- Address components (street, city, state, zip, country)
- Geographic coordinates
- Phone and website (when available)
Handler Registration
Uses HandlerRegistrationTrait for self-registration:
self::registerHandler(
'eventbrite',
'event_import',
self::class,
__('Eventbrite Events', 'datamachine-events'),
__('Import events from any public Eventbrite organizer page via JSON-LD extraction', 'datamachine-events'),
false,
null,
EventbriteSettings::class,
null
);
Advantages
- No API Key Required: Works with public organizer pages only
- Schema.org Standard: Leverages structured data that Eventbrite maintains for SEO
- Complete Data: Extracts venue, pricing, performer, and image information
- Date Range Filtering: Configurable future date window for imports
Limitations
- Only works with public organizer pages
- Depends on Eventbrite’s JSON-LD structure (standard Schema.org format)
- Cannot access private or draft events