Minimalistic Event Manager
by Manuel Schmalstieg · Booking & Events
A simple and flexible solution for managing event dates.
45 health vs 67 average across 981 Booking & Events plugins
High removal-risk signals
63/100Maintenance and integrity signals that tend to precede a WordPress.org removal. Not an official status, a heads-up to act.
- Long abandoned. No update in 9+ years — the top precursor to removal once a vulnerability is found.
- Compatibility drift. Tested only up to WordPress 4.8.30, well behind 6.8.
Directory ranking optimization
How it's scored →How well this listing is tuned to rank in WordPress.org search, on the factors an owner controls. Not popularity, optimization.
Under-optimized
Biggest win: Update recency
To rank higher: Last updated 3298 days ago — ship an update; wp.org decays a listing's search weight after ~180 days.
Get the full rank-higher report →Daily downloads
Since 2022-10-05 · 1,427 days · wp.org + Plugin Pulse archive
30-day downloads
Rolling 30-day volume · peaks are release surges
58
now · peak 76
Directory rank vs rivals
wp.org popularity rank over time · higher is better · when a rival's line climbs above yours, they've overtaken you
Rating trend
Star average over time · dips mark rough releases
Update activity
How busy the existing users are, measured as downloads in the last 30 days for every 1,000 active sites. A spike means a new release everyone's pulling; a long, slow decline means an aging user base that updates less.
Release cadence
No release in a yearHow often this plugin actually ships. A steady rhythm is the maintenance signal a single "last updated" date can't show.
0
releases in the last 12 months
9.0y ago
latest release · v1.1.1
11
tagged releases on record
Recent releases
What its installed base runs
via wordpress.orgShare of active installs on each version of this plugin · 100% run the current release. Green is the current release; a big slice on older versions is a user base that has stopped updating.
Estimated active installs
The public count shows “70+”. Our estimate pins where the real number sits.
Refined from the date this plugin crossed into its current band.
Install history · since 2015-09-19 · 1,383 observations
Estimated value
What this plugin might earn a year, and what it might sell for. Modeled from public signals; we don't see anyone's books.
Est. annual revenue
Est. acquisition value
No paid tier is visible, so we don't put a figure on revenue or sale value: that would be guessing. The install base is a real asset to an acquirer, just not one public data lets us price. A small install base leaves thin data to model from.
Details
Recent reviews
All reviews on wp.org ↗- ★★★★★ ueBe.biz10.5y ago
It is a simple but effective plugin, with the possibility of achieving good results
Read on wp.org ↗ - ★★★★★ flystrike11.4y ago
This plugin allows you to enter a start date and end in a post and to treat it exactly like an event. But into the post and without use events !!! lovely widget, too!
Read on wp.org ↗ - ★★★★★ Jon Garza11.5y ago
Very simple and elegant solution for event management, requires some degree of coding knowledge to implement in front-end but the developer’s wiki is very clear.
Read on wp.org ↗ - ★★★★★ rolfo12.8y ago
Just what I was looking for. Great if you could add “place”, but hey I can just encode that as part of start/repeat dates with the ‘alpha’ option. I use this in function.php to have an easy shortcode for it: // Minimalistic Event Manager function my_mem_settings() { mem_plugin_settings( array( 'page' ), 'alpha' ); } add_action( 'mem_init', 'my_mem_settings' ); /** Find Date in a String 01/01/2012 will return > 01-01-2012 30-12-11 will return > 30-12-2011 1 2 1985 will return > 01-02-1985 10.12.1850 will return > 10-12-1850 5 12 85 will return > 05-12-1985 5 October 2012 will return > 02-10-2012 MAY 5th 1985 will return > 05-05-1985 1st March 81 will return > 01-03-1981 */ function find_date( $string ) { //Define month name: $month_names = array( "january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december" ); $month_names_short = array( "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" ); $month_number=$month=$matches_year=$year=$matches_month_number=$matches_month_word=$matches_day_number=""; //Match dates: 01/01/2012 or 30-12-11 or 1 2 1985 preg_match( '/([0-9]?[0-9])[\.|\-|\/| ]([0-1]?[0-9])[\.|\-|\/| ]([0-9]{2,4})/', $string, $matches ); if ( $matches ) { if ( $matches[1] ) $day = $matches[1]; if ( $matches[2] ) $month = $matches[2]; if ( $matches[3] ) $year = $matches[3]; } if ( empty( $month ) ) { $s = " ".$string." "; $s = str_replace(array('.', ',', ';'), " ", $s); //Match month name: preg_match( '/(' . implode( '|', $month_names ) . ')/i', $s, $matches_month_word ); if ( $matches_month_word ) { if ( $matches_month_word[1] ) $month = array_search( strtolower( $matches_month_word[1] ), $month_names ) + 1; } //Match short month name: preg_match( '/(' . implode( '|', $month_names_short ) . ')/i', $s, $matches_month_word ); if ( $matches_month_word ) { if ( $matches_month_word[1] ) $month = array_search( strtolower( $matches_month_word[1] ), $month_names_short ) + 1; } } //Match 5th 1st 7, day: preg_match( '/([0-9]?[0-9])(st|nd|th|,)/', $string, $matches_day ); if ( $matches_day ) { if ( $matches_day[1] ) $day = $matches_day[1]; } //Match Year if not already setted: if ( empty( $year ) ) { preg_match( '/[0-9]{4}/', $string, $matches_year ); if ( $matches_year[0] ) $year = $matches_year[0]; } if ( ! empty ( $day ) && ! empty ( $month ) && empty( $year ) ) { preg_match( '/[0-9]{2}/', $string, $matches_year ); if ( $matches_year[0] ) $year = $matches_year[0]; } //Check year: if ( 2 == strlen( $year ) && $year > 20 ) $year = '19' . $year; else if ( 2 == strlen( $year ) && $year < 20 ) $year = '20' . $year; $date = array( 'year' => $year, 'month' => $month, 'day' => $day ); //Return today if nothing is found if ( empty( $year ) || empty( $month ) || empty( $day ) ) return time(); else return mktime(0, 0, 0, $month, $day, $year); } function sort_dates(&$dates) { if (!is_array($dates)) return false; foreach ($dates as &$val) { $sortkey = date('Y.m.d', find_date($val)); $val = $sortkey.' '.$val; } sort($dates); $left = strlen($sortkey)+1; foreach ($dates as &$val) { $val = substr($val, $left); } return $true; } /* Add this handy shortcode [mem-this-dates] = List dates for this post (start + all repeats) [mem-this-dates seperator=" & "] = same, but put & between (default = <br/>) [mem-this-dates id=117 seperator=" & "] = same, but for post ID number 117 [mem-this-dates max=3] = List max 3 dates */ function mem_list_dates_function($atts, $content = null) { extract(shortcode_atts(array( 'seperator' => '<br/>', 'id' => -1, 'max' => 99 ), $atts)); if ($id < 0) $id = get_the_ID(); $mem_start_date = get_post_meta($id, '_mem_start_date', true); if ($mem_start_date == "" ) { $s = "Please ask us "; } else { $mem_repeat_date = get_post_meta($id, '_mem_repeat_date', false); $mem_repeat_date[] = $mem_start_date; sort_dates($mem_repeat_date); $s = ""; foreach ($mem_repeat_date as $val) { if ($max > 0) { if ($s) $s .= $seperator; $s .= $val; $max -= 1; } } } return $s; } add_shortcode('mem-list-dates', 'mem_list_dates_function');
Read on wp.org ↗
Known vulnerabilities
via Wordfence Intelligence1 disclosed vulnerability on record for this plugin, 1 still affects the current version.
Vulnerability records provided by Wordfence Intelligence. Copyright 2012-2026 Defiant Inc. License and terms.
CVE records: Copyright 1999-2026 The MITRE Corporation. CVE terms of use.
Behavioral tests
via WP HiveAutomated install-time checks, tested on PHP 7.2.16 · WP 5.2.4
Languages
via translate.wordpress.orgTranslated into 3 languages, 2 at 90% or more
Growth timeline
Install-tier crossings we have observed, and how long each tier took to outgrow
- 2026-02-07 80+ → 70+ down after 149 days in tier
- 2025-09-11 90+ → 80+ down after 88 days in tier
- 2025-06-15 80+ → 90+ up after 34 days in tier
- 2025-05-12 90+ → 80+ down after 106 days in tier
- 2025-01-26 100+ → 90+ down
Competes with
The plugins that solve the same job, ranked by shared tags then reach, closest match first. The letter on the right is each plugin's health grade (A best, F worst).
-
Calendar 4K+ installs · 3.8★ · 2 shared tags B -
The Future Is Now 1K+ installs · 4.3★ · 2 shared tags B -
Hide My Dates 400+ installs · 4.3★ · 2 shared tags C - F FT Calendar 100+ installs · 3.5★ · 2 shared tags D
-
AM Events 80+ installs · 4.2★ · 2 shared tags D -
Event CLNDR 70+ installs · 4.3★ · 2 shared tags D
Embed this report card
Drop a live Pulse card for Minimalistic Event Manager into a readme, a review or a deck. It updates itself.
<iframe src="https://plugins.wpmayor.com/embed/minimalistic-event-manager" width="480" height="300" style="border:0" loading="lazy" title="Minimalistic Event Manager — Plugin Pulse"></iframe> Minimalistic Event Manager: 70+ active installs, 4.5★ (4 reviews). Plugin Pulse (WP Mayor), as of 2026-09-01. https://plugins.wpmayor.com/plugin/minimalistic-event-manager