Skip to main content
The below examples use React, but the steps inside the dashboard will be the same for all frameworks.

Related blog content: build an event ticketing app with ButterCMS & Quarkus

Develop a functional ticketing app with Quarkus and ButterCMS - book tickets, receive a confirmation message, and more.

What you’ll build

An event management system that includes:
  • Event listings with dates, times, and locations
  • Category-based organization
  • Upcoming/past event filtering
  • Event detail pages
  • Integration with registration platforms
  • Calendar display

Architecture overview

We’ll use a combination of ButterCMS features:

Step 1: Create event categories collection

Create a Collection for event categories:
  1. Go to Content TypesCollections
  2. Create “Event Categories” with fields:
    • Name (Short Text) - Category name
    • Slug (Short Text) - URL-friendly identifier
    • Color (Short Text) - Display color (hex code)
    • Icon (Media) - Category icon (optional)
Example categories:
  • Conference
  • Workshop
  • Webinar
  • Meetup
  • Training

Step 2: Create venues collection

Create a Collection for event venues:
  1. Create “Venues” with fields:
    • Name (Short Text) - Venue name
    • Address (Long Text) - Full address
    • City (Short Text) - City name
    • Country (Short Text) - Country
    • Latitude (Number) - For map display
    • Longitude (Number) - For map display
    • Image (Media) - Venue photo
    • Capacity (Number) - Maximum attendees
    • Website (Short Text) - Venue website URL

Step 3: Create the event Page Type

Create a Page Type for events with these fields: Basic information
  • Title (Short Text): Event name
  • Description (WYSIWYG): Full event description
  • Featured Image (Media): Event banner image
  • Category (Reference): Link to Event Categories
Date & time
  • Start Date (Date): Event start
  • End Date (Date): Event end
  • Timezone (Dropdown): Event timezone
Location
  • Event Type (Dropdown): In-Person, Virtual, Hybrid
  • Venue (Reference): Link to Venues (for in-person)
  • Virtual Link (Short Text): Video conference URL (for virtual)
Registration
  • Registration URL (Short Text): External registration link
  • Registration Deadline (Date): Last day to register
  • Price (Number): Ticket price (0 for free)
  • Max Attendees (Number): Capacity limit
SEO
  • Meta Title (Short Text)
  • Meta Description (Long Text)

Step 4: Fetch and display events

Speed things up with an SDK

These code examples use native libraries like fetch and requests to pull data from the API.For your actual implementation, we recommend using one of our many SDKs instead, which come with prebuilt support for the various content type API endpoints, as well as features like timeout, error handling, query parameters, and more.

Fetch all events

API response structure

Step 5: Filter upcoming vs past events

Step 6: Build the events UI

Event card component

Events list with filtering

Step 7: Event detail page

Integration with external services

Third-party service UIs and embed formats may change. Verify current implementation details on each provider’s documentation.

Eventbrite integration

Store Eventbrite event IDs and use their embed widgets:

Google Calendar integration

Generate “Add to Calendar” links:

Scheduled publishing

Use ButterCMS’s scheduled publishing to automatically publish events at the right time and unpublish them after they’ve ended.
Set up webhooks to trigger notifications when events are published or updated.