Customize your event pages by moving the location of things around

Use our template options and parts, HTML or CSS to make your events and registration pages look and feel just like the rest of your website; it’s limitless.

Stylesheet Options give you control to use built-in jQuery UI ThemeRoller style sheets and colors. The benefit of jQuery UI is you can dramatically change the look of the registration page without any knowledge of coding. If you “roll your own” you can create a custom ThemeRoller theme without any coding knowledge. Because we follow the WordPress guidelines, you can keep it simple or be as creative as you want.

Style Sheet Options

Template options give you control to display:

  • Descriptions in the event listings and checkout that can be trimmed by using the “more” tag
  • Addresses in the event listings and checkout pages

You also have the ability to automatically create a blog post when you create a new event.

Template Options

With the Custom Files add-on you can further modify the look of your event templates including the event listings, registration pages, or attendee list.

Event Espresso follows the WordPress theme coding standards, which means if your theme does the same, you won’t have any theme compatibility issues. We have found these theme developers to be among the best at following proper WordPress standards:

By default, Event Espresso provides full-page Event and Venue CPT archive and single page templates.

In addition, the Event Espresso 4 front-end templating systems provides flexible “template parts” that can be used by theme developers for custom themes. In order to maintain compatibility with more themes, these template parts have only basic styles by default but you can easily make them more fancy with custom CSS.

The Event Espresso specific template parts include:

    • Event Details (description)
    • Event Datetimes
    • Event Tickets
    • Event Venues
    • Event Venue Location
    • Event Venue Detail (excerpt)
    • and more!

Many of the standard custom post type data is also available via standard WordPress Custom Queries (e.g. featured image, title, comments, etc.).

Here is an example of the template parts with default styling of from the 2012 theme.

Event Details (description)

Event Datetimes

Event Tickets


Event Venues, Excerpt and Location

Template Toggle Options

Within the Event Espresso interface you can control different template options for several event pages, including the Event Details page, Event List page, and the Ticket Selector template.

Event Details pages:

  • Display Status Banner
  • Display Venue Details
  • Use Custom Display Order?

Event List Pages:

  • Event Slug
  • Display Status Banner
  • Display Description
  • Display Datetimes
  • Display Venue Details
  • Display Expired Events
  • Use Custom Display Order?

Ticket Selector Template Settings

  • Show Ticket Details?
  • Show Ticket Sale Info?
  • Show Expired Tickets?
  • Show Date & Time Filter?
  • Date & Time Filter Threshold
Do NOT follow this link or you will be banned from the site!
[gravityform id=80 title=false description=false ajax=false]
<div class='gf_browser_unknown gform_wrapper' id='gform_wrapper_80' ><form method='post' enctype='multipart/form-data' id='gform_80' action='/features/customizable-event-designs/'> <div class='gform_body'><ul id='gform_fields_80' class='gform_fields top_label form_sublabel_below description_below'><li id='field_80_1' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_1' >First name<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_80_1' type='text' value='' class='medium' aria-required="true" aria-invalid="false" /></div></li><li id='field_80_2' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_2' >Email address<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_email'> <input name='input_2' id='input_80_2' type='email' value='' class='medium' aria-required="true" aria-invalid="false" /> </div></li><li id='field_80_3' class='gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' >GDPR Agreement<span class='gfield_required'>*</span></label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_80_3'><li class='gchoice_80_3_1'> <input name='input_3.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_80_3_1' /> <label for='choice_80_3_1' id='label_80_3_1'>I consent to have this website store my submitted information so they can respond to my inquiry.</label> </li></ul></div></li><li id='field_80_4' class='gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible' ><label class='gfield_label' for='input_80_4' >Phone</label><div class='ginput_container'><input name='input_4' id='input_80_4' type='text' value='' autocomplete='off'/></div><div class='gfield_description' id='gfield_description__4'>This field is for validation purposes and should be left unchanged.</div></li> </ul></div> <div class='gform_footer top_label'> <input type='submit' id='gform_submit_button_80' class='gform_button button' value='Download Now' onclick='if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_80"]){return false;} if( !jQuery("#gform_80")[0].checkValidity || jQuery("#gform_80")[0].checkValidity()){window["gf_submitting_80"]=true;} jQuery("#gform_80").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_80' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='80' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_80' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_80' id='gform_target_page_number_80' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_80' id='gform_source_page_number_80' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> </form> </div><script type='text/javascript'> jQuery(document).bind('gform_post_render', function(event, formId, currentPage){if(formId == 80) {} } );jQuery(document).bind('gform_post_conditional_logic', function(event, formId, fields, isInit){} );</script><script type='text/javascript'> jQuery(document).ready(function(){jQuery(document).trigger('gform_post_render', [80, 1]) } ); </script>