Skip to content

CiviEvent Widget for WordPress

screenshot of the widgetYou can use the CiviEvent widget to add two types of widgets for upcoming public events from CiviCRM. There’s no limit to the number of widgets you can add of either type. You can include the widgets in the sidebar like normal, or you can include them via shortcodes in the body of your posts.

CiviEvent List Widget

This widget is a basic, flexible listing of upcoming events that are marked as public. You have options to customize the appearance and number of events. There is the option to add the event’s city, state, and/or country to the listing if “Show location” is enabled on the event.

Single CiviEvent Widget

This widget displays a single public event from CiviCRM. By default, it will display the first event from the current day or the future, or you can set an offset to skip one or more and display the second or third upcoming event. You may display the location if “Show location” is enabled on the event.


Both widgets are available to be inserted into the body of a post using a shortcode. Use the [civievent_widget] shortcode for the events listing and the [civievent_single_widget] shortcode for the single next (or offset) event. The available parameters for the shortcodes are as follows:

  • title="Your Title" The widget title (default: “Upcoming Events” for the list widget, or the event’s title for the single widget).
  • summary=1 Display the event summary. Omit the parameter or set it to 0 to hide the summary. (List widget only.)
  • limit=5 Display the specified number of events (default: 5). (List widget only.)
  • alllink=1 Display “view all” with a link to the page with a full list of public events. Omit the parameter or set it to 0 to hide the link. (List widget only.)
  • wtheme="mytheme" The widget theme (a class added to the widget div). Set a new one and handle it in your theme’s CSS. (Default for list widget: “stripe”, with “divider” as an alternative. Default for single widget: “standard”.)
  • divider=" | " The location field delimiter (default: comma followed by a space).
  • city=1 Display the event’s city. Omit the parameter or set it to 0 to hide the city.
  • state="abbreviate" Display the event’s state/province. Default is “none”, which will display nothing about the state or province. Display options are “abbreviate” for the state/province abbreviation or “full” for the full name.
  • country=1 Display the event’s country. Omit the parameter or set it to 0 to hide the country.
  • offset=2 Skip the given number of events before displaying the next one (default: 0). (Single widget only.)
  • admin_type="simple" Whether to use the “simple” (default) or “custom” display options (as appear in the widget settings). The custom_display and custom_filter parameters only function alongside admin_type="custom". The summary, alllink, divider, city, state, and country parameters only function when admin_type="simple" (or reverting to the default). (List widget only.)
  • custom_display='{"event_title_infolink":{"title":0,"prefix":null,"suffix":null,"wrapper":1},"description":{"title":1,"prefix":null,"suffix":null,"wrapper":1}}' Custom options for displaying results when admin_type="custom". The value should be an object written in JSON. Each property name should be a field to display, and the property value should be an object with the following properties: title (1 or 0: whether to display the field name), prefix (null or a string with markup to precede the field), suffix (null or a string with markup to follow the field), and wrapper (1 or 0: whether to wrap the field with the default wrapper elements. You may configure a widget using the standard widget interface, click “Show JSON”, and copy the JSON into this parameter. If custom_display is missing, the listing will revert to displaying in the “simple” mode despite the admin_type value. (List widget only.)
  • custom_filter='{"start_date": {">=": "2015-12-16"}, "is_public": 1, "options": {"sort": "start_date ASC"}}' Custom options for filtering results when admin_type="custom". The value should be an object written in JSON. The object should be a valid set of parameters for the CiviCRM API. The default is to list all public events starting on today’s date or later, sorted by start date ascending. (List widget only.)

Further Notes

This plugin requires CiviCRM 4.3 or higher to function. It is only supported with CiviCRM 4.6 or higher.

Download it here.


Version 3.2 June 15, 2018

  • Fixed bug where events with no address would sometimes display the site’s default address
  • Added support for filtering by event type on both widgets and shortcodes

Version 3.1 December 29, 2015

  • Fixed bug where admin form tabs weren’t displaying in Chrome.

Version 3.0 December 15, 2015

  • Made widgets render with default widget wrapper elements.
  • Added “custom” display type, with user-defined fields and filters.

Version 2.1 September 11, 2015

  • Fixed bug where shortcode echos content at the top rather than dropping it into place

Version 2.0 September 10, 2015

  • Both widgets are now available as shortcodes

Version 1.3 August 25, 2015

  • Cleanup for PHP strict notices
  • Compatibility for WordPress 4.3

Version 1.2 August 6, 2015

  • New single event widget for displaying the next upcoming event
  • Offset the single event widget to display the second or third upcoming event

Version 1.1 June 23, 2015

  • Suppress repetitive names for city, state, and/or country (e.g. Singapore, Singapore)
  • Wrapped all strings in translate functions
  • Option to set city, state, country divider

Version 1.0 June 22, 2015

  • Option to include city, state, and/or country

Version 0.3 September 30, 2013

  • Fixed numbering problem on WordPress plugin directory
  • New option for displaying event summary
  • Theme adjustments
  • Better handling if CiviCRM itself isn’t enabled and installed

Version 0.1 September 27, 2013

  • Initial version