How to Add an Events Calendar to WordPress Page

Blog banner for events calendar WordPress

Are you looking for a way to boost event attendance? Adding an events calendar to your WordPress site is a great way to attract new registrations for your upcoming events.

Ideally, you want to display all details related to your upcoming event on your WordPress site. This makes it easy for prospective attendees to discover events and register for them.

Displaying an events calendar is one of the best ways to promote upcoming events for your business and enhance the user experience on your event website. In this article, we’ll show you how to add an events calendar to your WordPress page using Event Espresso.

Why You Might Want to Display an Events Calendar in WordPress

Before we jump into adding an events calendar in WordPress, let’s take a step back to see what it is and why you might want to add it to your WordPress page.

An events calendar in WordPress displays all scheduled events in an easy-to-read calendar. This way, site visitors can easily find information about your upcoming events.

Displaying an events calendar in WordPress is also a great marketing tool. You can gather valuable ticketing data and insights on customer behavior and interests. As a result, you can create successful marketing campaigns. For instance, you can include an I’m Interested opt-in form for your upcoming events next to your events calendar to generate qualified leads for your business.

Enhancing SEO is one of the best ways to attract new event registrations and increase organic traffic on your event website.

Adding an events calendar to your event page can help improve the overall SEO of your site and rank your web pages higher in search engine results. This is because more content on your site can help search engines rank your web pages better and make them appear higher in search engine results.

Displaying an events calendar is also a great way to enhance the user experience on your event website. It offers site visitors or your audience an easy way to digest information and discover your business’s upcoming events.

Next, we’ll show you how to add an events calendar to your WordPress page.

How to Add an Events Calendar to WordPress using Event Espresso

WordPress by default doesn’t offer functionality that lets you add an events calendar to your web pages. However, you can use a powerful event registration and ticketing plugin for WordPress such as Event Espresso to add an events calendar to your site’s pages.

Event Espresso offers a complete solution for creating and managing your events. You can manage attendees’ registrations and ticketing for your event, create custom event registration forms, and offer attendees group registrations, all from a central place. This makes it easy to create and run successful events, without having to worry about using multiple plugins.

Event Espresso also offers an easy way to add an events calendar to your WordPress pages using the Events Calendar Add-on. The add-on lets you showcase your upcoming events and categories of events in an attractive graphical calendar. You can let attendees add the event dates to their own calendar so they never miss out on your upcoming events.

Check out this article on Choosing the Right WordPress Event Calendar For Your Website for more information.

Here, we’ll show you how to add an events calendar to WordPress using Event Espresso in three simple steps.

Step #1. Install and activate the Event Espresso plugin and the Event Calendar add-on

The first thing you will need to do is join Event Espresso. We recommend the Everything support license so you get access to Event Espresso, the Event Calendar add-on, and 30+ more add-ons. Once you’ve purchased the support license, then you’ll automatically be logged into your new account page. Scroll down to the lower right to reach your downloads area. 

Click on these links to download the software that you need as zip files:

– Event Espresso 4 Core Regular

– Events Calendar

Next, it is time to upload each of the files above from your computer to your WordPress site. From your WordPress dashboard, navigate to Plugins → Add New from the WordPress admin panel and upload the Event Espresso zip file ( file.

Click on the Activate Now button to activate Event Espresso on your WordPress site.

Next, repeat the steps above to upload the Event Calendar zip file (

Step #2. Create an Events Calendar page

Now that the Event Espresso plugin is installed on your WordPress site, you can set up a page to show your events on a calendar. Navigate to Pages → Add New to create a new WordPress page.

Events calendar page in WordPress

Give your event calendar page a catchy title. This is useful for grabbing the attention of site visitors at first glance and letting them know right away what the web page is about. Similarly, you can add a brief description to make it easier for visitors to use the events calendar. You can also customize different font options and format the text however you like, using the default WordPress interface. Press the Save Draft button to continue when you’re done.

Step #3. Display an Events calendar with the [ESPRESSO_CALENDAR]  shortcode

Event Espresso lets you display an events calendar on any page of your WordPress site.

All you need to do is add the [ESPRESSO_CALENDAR] shortcode to your page to display the events calendar. You can access all the shortcodes by navigating to Event Espresso → Calendar under the Settings tab.

Event Espresso Calendar settings page

Here, you can set some of the basic settings of how the event calendar looks on the front-end of your WordPress site. You can customize the time and date settings, page settings, and theme settings of your event calendar. This way, your event calendar will match your brand.

Events calendar add-on shortcodes

Click on the Calendar Usage tab to view all the different shortcodes you can use to display your events calendar. Copy the shortcode for the event calendar you want to display and paste it into the description of your newly created events page.

Events calendar preview

Click on the Publish button to continue. The [ESPRESSO_CALENDAR] will display all active upcoming events available on your event website in an easy-to-read calendar. Attendees can browse through all events and start registration by clicking on the Register Now button.


Adding an events calendar to your event page is a great way to attract more people to your site and increase attendance at your upcoming events.

Using a robust event registration and ticketing plugin such as Event Espresso makes it much more simple to create and promote upcoming events. The powerful ticketing system lets you offer your audience an easy way to register for your events, which is essential in boosting event attendance.

We showed you how to add an events calendar to WordPress and, hopefully, you’re in a good position now to take the next steps.

Ready to start adding an events calendar to your WordPress site? Try the Event Espresso demo today!

Related Articles

Share a Reply or Comment

Your email address will not be published.

Need help with Event Espresso? Create a support post in our support forums

Event Espresso
[gravityform id=116 title=false description=false]
<script type="text/javascript">var gform;gform||(document.addEventListener("gform_main_scripts_loaded",function(){gform.scriptsLoaded=!0}),window.addEventListener("DOMContentLoaded",function(){gform.domLoaded=!0}),gform={domLoaded:!1,scriptsLoaded:!1,initializeOnLoaded:function(o){gform.domLoaded&&gform.scriptsLoaded?o():!gform.domLoaded&&gform.scriptsLoaded?window.addEventListener("DOMContentLoaded",o):document.addEventListener("gform_main_scripts_loaded",o)},hooks:{action:{},filter:{}},addAction:function(o,n,r,t){gform.addHook("action",o,n,r,t)},addFilter:function(o,n,r,t){gform.addHook("filter",o,n,r,t)},doAction:function(o){gform.doHook("action",o,arguments)},applyFilters:function(o){return gform.doHook("filter",o,arguments)},removeAction:function(o,n){gform.removeHook("action",o,n)},removeFilter:function(o,n,r){gform.removeHook("filter",o,n,r)},addHook:function(o,n,r,t,i){null==gform.hooks[o][n]&&(gform.hooks[o][n]=[]);var e=gform.hooks[o][n];null==i&&(i=n+"_"+e.length),gform.hooks[o][n].push({tag:i,callable:r,priority:t=null==t?10:t})},doHook:function(n,o,r){var t;if(,1),null!=gform.hooks[n][o]&&((o=gform.hooks[n][o]).sort(function(o,n){return o.priority-n.priority}),o.forEach(function(o){"function"!=typeof(t=o.callable)&&(t=window[t]),"action"==n?t.apply(null,r):r[0]=t.apply(null,r)})),"filter"==n)return r[0]},removeHook:function(o,n,t,i){var r;null!=gform.hooks[o][n]&&(r=(r=gform.hooks[o][n]).filter(function(o,n,r){return!!(null!=i&&i!=o.tag||null!=t&&t!=o.priority)}),gform.hooks[o][n]=r)}});</script> <div class='gf_browser_unknown gform_wrapper gform_legacy_markup_wrapper' id='gform_wrapper_116' ><form method='post' enctype='multipart/form-data' id='gform_116' action='/2022/02/events-calendar-wordpress-page/' novalidate> <div class='gform_body gform-body'><ul id='gform_fields_116' class='gform_fields top_label form_sublabel_below description_below'><li id="field_116_5" class="gfield gfield_contains_required field_sublabel_hidden_label field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >What is your first name?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_complex ginput_container no_prefix has_first_name no_middle_name no_last_name no_suffix gf_name_has_1 ginput_container_name' id='input_116_5'> <span id='input_116_5_3_container' class='name_first' > <input type='text' name='input_5.3' id='input_116_5_3' value='' aria-required='true' placeholder='First name' /> <label for='input_116_5_3' class='hidden_sub_label screen-reader-text'>First name</label> </span> </div></li><li id="field_116_1" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_1' >What is your email address so we can follow up with you?<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_text'><input name='input_1' id='input_116_1' type='text' value='' class='medium' placeholder='' aria-required="true" aria-invalid="false" /> </div></li><li id="field_116_2" class="gfield gfield_contains_required field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_2' >Tell us about your concerns below<span class="gfield_required"><span class="gfield_required gfield_required_asterisk">*</span></span></label><div class='ginput_container ginput_container_textarea'><textarea name='input_2' id='input_116_2' class='textarea medium' placeholder='What kind of events are you planning?' aria-required="true" aria-invalid="false" rows='10' cols='50'></textarea></div></li><li id="field_116_6" class="gfield field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label gfield_label_before_complex' >GDPR Agreement</label><div class='ginput_container ginput_container_checkbox'><ul class='gfield_checkbox' id='input_116_6'><li class='gchoice gchoice_116_6_1'> <input class='gfield-choice-input' name='input_6.1' type='checkbox' value='I consent to have this website store my submitted information so they can respond to my inquiry.' id='choice_116_6_1' /> <label for='choice_116_6_1' id='label_116_6_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_116_3" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_3' id='input_116_3' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_116_4" class="gfield gform_hidden field_sublabel_below field_description_below gfield_visibility_visible" ><div class='ginput_container ginput_container_text'><input name='input_4' id='input_116_4' type='hidden' class='gform_hidden' aria-invalid="false" value='' /></div></li><li id="field_116_7" class="gfield gform_validation_container field_sublabel_below field_description_below gfield_visibility_visible" ><label class='gfield_label' for='input_116_7' >Phone</label><div class='ginput_container'><input name='input_7' id='input_116_7' type='text' value='' autocomplete='new-password'/></div><div class='gfield_description' id='gfield_description_116_7'>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_116' class='gform_button button' value='Send my message' onclick='if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} ' onkeypress='if( event.keyCode == 13 ){ if(window["gf_submitting_116"]){return false;} if( !jQuery("#gform_116")[0].checkValidity || jQuery("#gform_116")[0].checkValidity()){window["gf_submitting_116"]=true;} jQuery("#gform_116").trigger("submit",[true]); }' /> <input type='hidden' class='gform_hidden' name='is_submit_116' value='1' /> <input type='hidden' class='gform_hidden' name='gform_submit' value='116' /> <input type='hidden' class='gform_hidden' name='gform_unique_id' value='' /> <input type='hidden' class='gform_hidden' name='state_116' value='WyJbXSIsIjBiNjdjZjkyMDUzOWUxOWY5Y2NiZjIwMzM4YjA1Mjk4Il0=' /> <input type='hidden' class='gform_hidden' name='gform_target_page_number_116' id='gform_target_page_number_116' value='0' /> <input type='hidden' class='gform_hidden' name='gform_source_page_number_116' id='gform_source_page_number_116' value='1' /> <input type='hidden' name='gform_field_values' value='' /> </div> <p style="display: none !important;"><label>&#916;<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_2" name="ak_js" value="124"/><script>document.getElementById( "ak_js_2" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div>