Author: Joe Dolson

Breaking Changes

This document lists anticipated breaking changes you may want to prepare for or react to in any given My Calendar release. My Calendar 3.7.0 Expected release: January 13th, 2026 In version 3.7, the main calendar navigation is being changed from using links to using buttons when AJAX navigation is enabled. This is because the AJAX […]

Calendar Filters Shortcode

The functionality of this shortcode is also available by adding the category, location, and accessibility navigation items to your main calendar view. See Demo You can use this shortcode to display the calendar’s location, category, and accessibility filters separately from the main calendar. By default, it passes queries to your calendar’s main view, as configured […]

Custom Field API

My Calendar has a custom field API to create additional fields for use in your events. My Calendar Pro includes a tool for creating and managing custom fields. Custom Fields API demo file on Github Create Input Field Save Custom Field into Post Meta Add custom field into Template Tags

Customizing Category Icons

Prior to My Calendar 3.6, category icons could only be replaced by uploading your files to a custom location, then assigning those icons to your categories. Since My Calendar 3.6, icons can also be filtered using the mc_get_core_icon_index and mc_get_core_icons filters. The advantage to using the PHP filter method is that you can keep the […]

Customizing List Preset Templates

There are two primary ways to customize list presets: through PHP filters or through customizations to the PHP templates for lists. List presets can be manipulated using the mc_preset_template filter. This filter directly modified the HTML and template tags used to output the content of the list item. The CSS for the list presets uses […]

Disabling Legacy Templates

If you have previously enabled custom templates for core functions, then enable PHP templates without disabling the legacy templates, your legacy templates will override PHP templates where they exist. This only applies to enabled legacy templates – so if you have a custom template for your single details view, and want to use PHP templates […]

Event Accessibility

In addition to offering an accessible interface for your visitors and administrators, My Calendar provides options for you to indicate what ADA compliance features your events offer. These features are split into two groups: event accessibility and venue accessibility. Some accessibility characteristics are specific to your event, others are specific to the venue, and these […]

Events – Accessibility Terms

My Calendar supports the ability to label your events with the accessibility features available at the event. The default terms available include: Prior to version 3.7, these were a fixed list, only editable using PHP filters. As of My Calendar 3.7, these terms are a taxonomy on events that are editable. The accessibility term editor […]

List Preset Templates

Introduced in My Calendar version 3.6.0, list views come with a set of pre-defined templates you can use. There are four templates, but you can also customize or add new templates, if needed. At My Calendar > Design> Templates, you can configure the default on a site-wide basis, and preview the templates with your next […]

Locations – Accessibility Terms

My Calendar supports the ability to label your locations or venues with the accessibility features available at that location. The default terms available include: Prior to version 3.7, these were a fixed list, only editable using PHP filters. As of My Calendar 3.7, these terms are a taxonomy on locations that are editable. The accessibility […]

Migrating from Legacy Templates to PHP Templates

Until version 3.6, My Calendar only supported a crude custom templating engine that used curly braces to represent content. You could enter a custom HTML string into the legacy template editor to generate a template. While it served the purpose for most users, it had a few key weaknesses: PHP templating, introduced in version 3.6, […]

Migrating to My Calendar

The free version of My Calendar supports migration from two other calendar plugins: Kieran O’Shea’s “Calendar” and The Events Calendar. If you have either of these plugins installed and active, you’ll see an additional settings page under the My Calendar admin menu. My Calendar will inform you how many events you have installed for your […]

My Calendar – API

The My Calendar exports API is enabled at My Calendar > Settings > General. This API allows you to generate a CSV, JSON, or iCal formatted export of My Calendar event data. The API is not enabled by default. Once enabled, you can access it using URL parameters on your site: The my-calendar-api parameter is […]

My Calendar Views – Overview

The main My Calendar has three available views: Grid, List, or Card. The Mini/Compact view can be enabled in the shortcode. Upcoming Events are a separate view configured through the Upcoming Events shortcode or widget. Grid The grid view is the most traditional calendar layout option. By default, it’s a table with either five or […]

PHP Templates

Version 3.5 of My Calendar introduced support for PHP-based templates. When enabled, these templates replace the entirety of the previous templating system. My Calendar’s default templates are found at /my-calendar/mc-templates/. To use PHP templates in your site, copy the desired file into your theme, using the same file directory path. For example, the template at […]

PHP Templates: Body

My Calendar’s PHP templates are context sensitive, allowing you to display the event content differently in different contexts. There are five primary content templates: The default content templates for these views respect the settings used at My Calendar > Settings > Display > Event Display Fields. If you have disabled fields using those settings, they […]

PHP Templates: Titles

My Calendar’s PHP templates are context sensitive, allowing you to display the title differently in different contexts. There are five different templates targeting title display: All default {type}-title.php templates render the template tags in the related settings field if they have been modified using mc_draw_template(). Any event template tag is available for use in the […]

Plugin Accessibility

Over the years, I’ve always striven to make My Calendar and My Tickets as accessible as I could, according to the standards of the time. The standards for what is considered accessible have changed considerably since I built this plugin in 2009, and I’ve always aimed to improve the plugin to meet those standards. However, […]

Search Events

My Calendar includes a simple search form that can be used in a few different ways. The main parameter for the search form is a target URL. By default, searches will be targeted to the main My Calendar page, where your calendar is displayed. In that case, they’ll display in whatever default view your calendar […]

Shortcodes: Happening Next

This shortcode is largely identical to the Happening Now shortcode, except that it: By default, it will pick the next event. By using the ‘skip’ argument, it will skip over an event and pick the next one found. Otherwise, see information about the Happening Now shortcode.

Shortcodes: Happening Now

This shortcode is used to display an event that is currently happening. It selects the first event found that is happening at the time the page is loaded. Passing the category argument with a category ID or comma separated list of categories will limit the selection to events with those categories. The template argument can […]

Single Event – WordPress Template

My Calendar uses a custom templating system to organize event content. Those are how the event data is structured from the individual discrete fields you’ve added to your event. For single events, that template is inserted inside a standard WordPress template. In the WordPress template hierarchy, it will usually be structured by the single.php or […]

Template Tag Index

Legacy Template Tags Legacy templates are managed at My Calendar > Design > Templates if PHP templating is not enabled. All legacy template tags support two attributes: before=”value” and after=”value”. The values of the attributes will be placed before and after the output value. These attribute values must be wrapped in double quotes. Date/Time template […]

Updating My Calendar

Updated versions of My Calendar are shipped fairly regularly. Minor updates are any change in the 3rd digit (e.g. updating from 3.5.6 to 3.5.7). In a minor update, very little will change; almost always only bug fixes. This doesn’t mean that nothing can go wrong, but generally the changes are slight. Major updates contain more […]

Viewing Locations

Locations have two primary views: the single location view and a shortcode to display lists of locations. Single Location View List of Locations A list of locations is produced with the shortcode “. The list can sort by name, city, state, zip, country, or region; by default, it will sort by name. It can display […]