This plugin hasn’t been tested with the latest 3 major releases of WordPress. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

Simple Events


If the plugin detects that there is a custom post type registered with a particular name (either ‘event’ or ‘*_event’), it steps in and does a number of useful additional things:

  • For front-end queries fetching events, returned posts are sorted chronologically, the oldest first.
  • For front-end queries fetching events, by default only future events are returned. This can be overridden by setting the custom parameter slt_all_events in your posts query to true. Alternatively, use slt_past_events (set to true) to get only past events.
  • By default the current time is used to compare dates for selecting past or future events. To change the time used for the cut-off, use the filter slt_se_listing_time_offset. It defaults to 0 (no change from the current time). To set the cut-off to 24 hours ahead of the current time, hook a function to this filter that returns that value in seconds, i.e. 60 * 60 * 24.
  • By default events are ordered chronologically. To reverse the order, set slt_reverse_events to true.
  • In the admin listing page for events, an ‘Event date’ column is added.
  • For particular queries, all actions performed by this plugin can be disabled by setting the custom parameter disable_simple_events in your posts query to true.

IMPORTANT: The automatic event filtering only kicks in with front-end queries done using WP_Query. Use this rather than get_posts.

In addition, this function is provided for convenience. If an event date exists for the post in question, it returns that; if not, it returns the standard post date.

<?php slt_se_get_date( $the_post = null ) ?>
  • $the_post (object) (optional) (default: global $post object)

NOTE: An Event Date custom field will be added to the event edit screen automatically if my Custom Fields plugin is active. Otherwise, make sure your event post type supports custom-fields (see [register_post_type](, and add dates to events with the format YYYY/MM/DD, e.g. 2011/12/21 – this format is required to allow sorting by this field.

NOTE: The filtering performed by this plugin currently doesn’t work well with get_posts – for now, create custom loops with WP_Query.

Development code hosted at GitHub.


  1. Upload the simple-events directory into the /wp-content/plugins/ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress

Contributors & Developers

“Simple Events” is open source software. The following people have contributed to this plugin.


Translate “Simple Events” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Added slt_se_listing_time_offset filter
  • Fixed bug in slt_se_get_date() testing of $date_parts length
  • More tests for Developer’s Custom Fields functions


  • Set the priority of the init action very low so that any custom post types are definitely registered first (thanks lowe_22!)


  • Changed slt_se_get_date so the call to slt_cf_field_value works when a post object is passed


  • Added slt_past_events and slt_reverse_events query vars
  • Corrected mistake in adding admin listing event date column, needed to use post type in filter name


  • Added a test for whether the query is singular – previously the hooks were preventing the display of past event singular pages


  • Added disable_simple_events parameter for posts queries
  • Added function to consolidate tests for whether a hook should be applied
  • Changed order in slt_se_parse_query to ASC (nearest upcoming events first in list)
  • Changed detection of event post type to “event” or “*_event”


  • Changed date format to allow proper sorting
  • Removed posts_join and posts_where filters for WP 3.1.1+ – doesn’t seem to be necessary


  • First version