20,000+
October 20, 2026
April 5, 2010
My Calendar offers easy-to-use WordPress event management with rich options for custom displays. Display individual event calendars in WordPress Multisite, offer multiple views of calendars limited by event categories, locations or author, or show simple text-based lists of your upcoming events.
You’ll find enormous design flexibility for your custom calendar. With recurring event support, design customization tools, custom templating, and category and venue support out of the box, My Calendar gives you a great feature set to get your calendar set up.
My Calendar is an events calendar focused on holistic accessibility: providing a positive experience for site visitors and administrators who use assistive technology. It includes built-in settings where you can describe the ADA compliance features of your events and venues. Accessibility is a critical part of your website, so your audience can get equal access and experience to the events you list.
Learn about accessible events or visit the My Calendar demo
While My Calendar has a strong focus on backwards compatibility, it is officially built with an accessibility first mindset. That means that if a choice has to be made between improving accessibility and breaking backwards compatibility, the more accessible choice will always come first.
Looking for more? Buy My Calendar Pro, the premium extension for My Calendar.
My Calendar Pro adds tons of great additional features:
Do you sell tickets for your events? Use My Tickets and sell tickets for My Calendar events. Set prices, ticket availability, and sell multiple events at the same time using My Tickets.
My Calendar is designed with accessibility in mind. All interfaces – both front and back end – are tested with various assistive technology.
The plugin includes features for showing the accessibility services available for events and at physical venues, as well as providing access to your event information for users with disabilities.
Visit WordPress Translations to check progress or contribute to your language.
Translating my plugins is always appreciated. Visit WordPress translations to help get your language to 100%!
Upload the /my-calendar/ directory into your WordPress plugins directory.
Activate the plugin on your WordPress plugins page
Configure My Calendar using the settings pages in the admin panel:
My Calendar -> Add Event
My Calendar -> Events
My Calendar -> Add New Location
My Calendar -> Locations
My Calendar -> Categories
My Calendar -> Access Terms
My Calendar -> Design
My Calendar -> Settings
My Calendar -> Shortcodes
My Calendar -> Help
Visit My Calendar -> Help for assistance with shortcode options or widget configuration.
Take a look at my documentation website for My Calendar or the developer hook documentation. If you’re using the free version, please consider making a donation or buying My Calendar Pro before requesting support.
My Calendar Pro supports a richly featured interface for getting events from the public. You can customize the form to collect exactly the fields you need, and review the events before publishing. Buy it today!
Buying My Calendar Pro gets you a richly featured advanced event search. You can narrow by dates, categories, authors, and more to refine your event search.
My Calendar is developed on Github, and I welcome contribution. Vist the My Calendar repository to make requests.
$type variable in template loader, causing templates in some paths to fail to render.= 3.8.9
data-clipboard-target needed to be available in custom KSES filter for Pro.mc_calendar_loaded executed when calendar is navigated.mc_inside_table_cell_header to allow content to be added inside the header.mc_api_can_approve_event to allow the REST API to update event statuses when authenticated..button class switched to .mc-button.ctype_digit string as an argument deprecated in PHP 8.1+.data-key attribute needs to be supported by custom KSES attributes on button element for Pro..button to .mc-button.mc_get_occurrences() and mc_get_event_instances().wp_timezone().mc_test_occurrence_overlap() on front-end.mc_template_settings() to return a single template.selected() set to echo instead of return in shortcode generator.mc_id parameter omitted..event-title-container on div inside event titles..event-title class on list template headings.recurring template tag behavior on single events.wp_update_post, including not updating the post slug.wp_kses_hair() in WordPress 7.0 broke legacy templates.mc_before_delete_event. Needed so actions can have access to event data.event_approved parameter. Props type5afe via WordFence.mc_get_heading_level() to simplify heading hierarchy management.mc_ajax_mcjs_action function. Props @minhi1.mc_get_first_event() returns an object before checking event recurrence.wp_kses_hair for WordPress 7.0 that normalizes attribute quoting.null, to prevent PHP warning.event_desc column from TEXT to MEDIUMTEXT.stripcslashes with wp_unslash$header and $footer default values. Props @sabernhardt.month+n views.Accessibility-first breaking change: The default navigation has changed from using a elements to button elements. Custom styles may need to be updated.
{recurring} to show a list of recurring event dates. Max limit 50.mc_insert_event() function.mc_style_variables to filter CSS variables.[my_calendar **] when checking for existing calendar page.mc_category_icon() in templating.| Version | Download | Type |
|---|---|---|
| 3.8.10 | Download | Stable |
| 3.8.9 | Download | Stable |
| 3.8.0 | Download | Stable |
| 3.7.18 | Download | Stable |
| 3.7.0 | Download | Stable |
| 3.6.18 | Download | Stable |
| 3.6.0 | Download | Stable |
| 3.5.22 | Download | Stable |
| 3.5.0 | Download | Stable |
| 3.4.25 | Download | Stable |
| 3.4.0 | Download | Stable |
| 3.3.25 | Download | Stable |
| 3.3.0 | Download | Stable |
| 3.2.19 | Download | Stable |
| 3.2.0 | Download | Stable |
| 3.1.18 | Download | Stable |
| 3.1.0 | Download | Stable |
| 3.0.18 | Download | Stable |
| 3.0.0 | Download | Stable |
| 2.5.18 | Download | Stable |
| 2.5.0 | Download | Stable |
| 2.4.21 | Download | Stable |
| 2.4.0 | Download | Stable |
| 2.3.32 | Download | Stable |
| 2.3.0 | Download | Stable |
| 2.2.13 | Download | Stable |
| 2.2.9 | Download | Stable |
| 2.1.5 | Download | Stable |
| 2.0.12 | Download | Stable |
| 1.11.3 | Download | Stable |
| 1.11.2 | Download | Stable |
| 1.10.12 | Download | Stable |
| 1.10.6 | Download | Stable |
| 1.9.8 | Download | Stable |
| 1.9.0 | Download | Stable |
| 1.8.9 | Download | Stable |
| 1.7.8 | Download | Stable |
| 1.7.2 | Download | Stable |
| 1.6.3 | Download | Stable |
| 1.5.4 | Download | Stable |
| 1.4.6 | Download | Stable |
| 1.4.3 | Download | Stable |
| 1.4.0 | Download | Stable |
| 1.3.8 | Download | Stable |
| 1.2.1 | Download | Stable |
| 1.1.0 | Download | Stable |
| 1.0.2 | Download | Stable |
| 1.0.0 | Download | Stable |
| Development | Download | Trunk |