Plugin Directory

My Calendar

Accessible WordPress event calendar plugin. Show events from multiple calendars on pages, in posts, or in widgets.


[2.4.0 is currently in development.]


  • Bug fix: end time for events auto-toggled to midnight, instead of +1 hour when end time omitted.


  • Added escaping in 2.3.30 broke location & category limits (escape placed on wrong string.)


  • Security Fix: Arbitrary File Override
  • Security Fix: Reflected XSS
  • Thanks for Tim Coen for responsibly disclosing these issues.
  • All issues apply for authenticated users with access to My Calendar settings pages.
  • Language updates: Updated Polish, Swedish, Galician, Czech, Norwegian, Italian
  • Added Slovak, Icelandic, Hebrew



  • Bug fix: Problem saving My Calendar URI if My Calendar is intended for use behind a secured location.
  • Update languages: French, German, Catalan


  • Bug fix: Things that happen when you failed to write down a minor change - you don't test it. Couldn't choose a preset location when creating an event in 2.3.26.


  • Typo in aria-labelledby.
  • Bug fix: fatal error if wp_remote returns WP_error.
  • Bug fix: could not set calendar URI if site is password protected.
  • Bug fix: category key fetched icons using a different path generation than main calendar that could result in a broken link.
  • Bug fix: ensure that all image template tags exist in the array, even if the event post does not exist.
  • Bug fix: make print view respect current category/location filters
  • Bug fix: make iCal download respect current category/location filters
  • Added class on event data container for root ID of events.
  • Added 'current' class for currently selected category in category key if category filter applied.


  • Bug fix: Escape URL for search form request URL
  • Bug fix in check whether event had a valid post container.
  • Bug fix to handle problem with weeks calculation on the first of the month.
  • Bug fix: Display problem in single-page event view in twentyfifteen.css
  • Bug fix: If My Calendar URL is invalid, re-check when settings page is loaded.
  • Bug fix: Don't display update notice on new installs.
  • Change: My Calendar automatically generates calendar page on installation.
  • Change to Upcoming Events default template to make usage more robust.
  • Change: mc-mini JS to auto close all open panels if a new one is opened.
  • Rearrange a few settings for better usability.
  • Added ability to use Upcoming Events widget to show the nth future month. (e.g., show events for the 6th month out from today.)
  • Deprecated upgrade cycles prior to version 1.11.0.
  • Improve accessibility of tab panels used in My Calendar UI.
  • Language updates: Updated Russian, Added Afrikaans


  • Bug fix: In mini widget, date is not displayed if only event on date is private
  • Bug fix: Improved fix to year rendering (roughly fixed in 2.3.23)
  • Bug fix: Improved rendering of structured event data.
  • Bug fix: [my_calendar_now] incorrectly checked the current time.
  • Bug fix: "Archive" link pointed to wrong location in event manager.
  • Bug fix: Was no way to reverse archiving an event; added method
  • Bug fix: Shortcode generator produced incorrect Upcoming Events shortcode.
  • Bug fix: Overlapping occurrences warning inappropriately showed on events recurring on a month by day basis
  • Bug fix: If only event on date is private, don't add class 'has-events'
  • Bug fix: Save default values for top/bottom nav on install.
  • Bug fix: Restore default template array when plug-in is deleted and re-installed
  • Minor style change to twentyfourteen.css
  • New default theme: twentyfifteen.css
  • Feature add: AJAX control to delete individual instances of a recurring event from the event editor.
  • Feature change: Events post type content filter now replaces content instead of repeating. Use 'mc_event_content' filter to override.
  • Improvement: Show overlapping occurrences warnings in manage events view.
  • Improvement: List/Grid button only shows on month and week views.
  • Misc. UI improvements.
  • Performance fix: Hide overlapping recurring events on front-end. (They can consume massive amounts of memory.)
  • Language updates: French, Spanish, Japanese, Dutch, German, Ukrainian, Swedish

ISSUE: What's causing templates to not be set?


  • Bug fix: Calendar rendering 2014 at beginning of 2015.
  • Bug fix: Set Holiday category when adding new categories.
  • Bug fix: Search widget title heading HTML not rendered.
  • Bug fix: mc-ajax.js was not compatible with heading filter for output.
  • Language updates: French, Spanish, Ukrainian


  • Edit: Allow integers up to 12 in the 'every' field for recurring events. (Previously 9)
  • Bug fix: Incorrect sprintf call in {recurs} template, effecting recurring events by month.
  • Language updates: German, Russian, Portuguese (Portugal), Hungarian, Ukrainian


  • Plug-in conflict fix: CSS override to fix conflict with Ultimate Social Media Icons
  • Bug fix: Allow {image_url} to fall back to thumbnail size if no medium / create _url equivalents for each size.
  • Bug fix: Allow location controls to be entered with only keys.
  • Bug fix: Entering default value for controlled locations is empty value, instead of 'none'.
  • Bug fix: If value of location field is 'none', don't display.
  • Bug fix: Use Location URL as map link if URL is provided and no other mappable location information
  • Bug fix: if editing single instance, delete link will delete just that instance.
  • Bug fix: If recurring event fields were hidden, but event recurred, recurrences would be deleted.
  • Bug fix: Limiting locations did not work in Upcoming Events using 'events' mode.
  • Bug fix: Allow limiting locations but all event location fields.
  • Bug fix: Limiting locations accepts numeric values for limiting.
  • Bug fix: {recurs} template tag indicates frequency ("Weekly", vs "every 3 weeks")
  • Bug fix: fixed templating issue when custom templates used a tag multiple times with different attribute parameters.
  • Add filter to modify the title information shown in list view to hint at hidden events ('mc_list_event_title_hint')
  • Add filter: number of months shown in list view filterable on 'mc_show_months'
  • Feature: Add shortcode/function to display a current event. [my_calendar_now]
  • Feature: Add search results page option to calendar search widget.
  • Removed all remaining code related to user settings, which are no longer in use.
  • Language updates: French, Danish, Russian, Swedish, Portuguese/Brazil, Portuguese/Portugal, Norwegian Bokmal, Hungarian


  • Bug fix: Escaped $ variable in custom JS wrapper
  • Bug fix: has-events class appearing in calendar on days after all-day events
  • Bug fix: Reset stylesheet applied outside calendar HTML. Eliminated elements not used by MC.
  • Bug fix: Missing required argument for My Calendar search form widget
  • Bug fix: 'Approve' link broken
  • Bug fix: Details link could return expired event links.
  • Translation updates: Spanish, Slovenian


  • Bug fix: Could not un-check show today's events in Upcoming Events widget
  • Bug fix: Could not turn off event recurrences section in event manager
  • Bug fix: stripped HTML tags out of upcoming events & today's events template fields


  • Bug in rendering of custom JS causing visible rendering of code.
  • Bug in saving Today's Events widget settings


  • 2.3.16 bug fix was incomplete, triggered new error. Sorry for rushing!


  • Bug fix: Upcoming events did not show for logged-in users if site did not have private categories defined.
  • Cleared a PHP notice.


  • Bug fix: Controlled locations not input correctly from Add Event form
  • Bug fix: Use force_balance_tags() when saving descriptions & short descriptions to prevent descriptions from breaking layout
  • Bug fix: My Calendar reset stylesheet missing .mc-main on buttons; causing display issues with submit buttons.
  • Bug fix: shortcode generator produced results in disabled form field; changed to readonly because Firefox does not permit selecting text in disabled fields.
  • Bug fix: Widget navigation automatically reset itself if you saved widget form after clearing data
  • Bug fix: category classes for multi-day, all-day events showed on termination date
  • Bug fix: Checkbox states on JS scripts not retained
  • Bug fix: Show default values in upcoming events widget
  • Bug fix: Default values not saved on new installation
  • Bug fix: Admin event manager should sort by Date/Time instead of Date/Title
  • Documented [my_calendar_search] shortcode
  • Added 'current' option for author/host to shortcode generator.
  • Extensive code clean up
  • Feature: Default view next month option in calendar and upcoming events lists.
  • Deprecated upgrade cycles prior to version 1.10.0.
  • Language updates: Japanese, Dutch, Italian, Spanish, Finnish, Swedish, Norwegian


  • Bug fix: Disabled front-end event editing links for logged-in users.
  • Language updates: Spanish, Norwegian, Hungarian


  • Bug fix: Failed to handle "open links to event details" option in updated JS handling.


  • Bug fix: change of option name meant that you couldn't enable/disable scripts.
  • Bug fix: shortcode generator generates a 'readonly' textarea instead of disabled so it can be copied in Firefox.
  • Accessibility: handle assignment of focus on AJAX navigation


  • Change: Modified default JS saving so that only custom JS gets handled in editor.
  • Change: toggle to enable/disable custom JS; default to off
  • Change: Moved scripting into files.
  • Notice: admin notice to inform users of need to activate JS if using custom
  • Bug fix: Modify default JS so wpautop doesn't cause problems with toggles.
  • Bug fix: External links displaying is_external boolean instead of classes.
  • Bug fix: mysql error if location_type not defined but location_value is.
  • Bug fix: page_id unset when default permalinks in use. [Ick. Don't use default permalinks.]
  • Bug fix: My Calendar navigation panel could not disable top/bottom navigation.
  • Feature: * Add Bcc notification list
  • Accessibility: improvements to pop-up event details: focus & closing, ARIA
  • Filter: headers filter for My Calendar email notifications.
  • Filter: Add detection to pass custom JS from custom directory/theme directory
  • Updated French, Spanish translations.
  • Removed .po files from repository; reduces file size by over 2 MB.


  • New filter: mc_jumpbox_future_years - alter the number of years into the future shown in the calendar date switcher.
  • New filter: mc_add_events_url - alter URL for Add Events in adminbar; return URL
  • New filter: mc_locate_events_page: alter menu parent of Add Events in admin menu; return menu slug or null
  • Bug fix: ltype and lvalue not passed from shortcode into handler for upcoming events.
  • Bug fix: disable comments by default for event post storage.
  • Bug fix: misnamed variable in filter; resolves notice on line 239 of my-calendar-output.php
  • Bug fix: do search and replace on default scripting as well when script fields are blank
  • Bug fix: Check default option for import data from remote database; verify the default will be false
  • Added template tag: {linking_title}; same as {link_title}, but falls back to details link if no URL input for event.
  • Change default widget template to use {linking_title}.
  • Security: Two XSS vulnerabilities fixed. Thanks Tim Hurley
  • Update Translation: Russian


  • Bug fix: Minor event templates ( title, detail, etc. ) were not properly escaped in admin forms.
  • Bug fix: use reply-to email header in support messages
  • Bug fix: Mass approval of pending events broken.
  • Bug fix: {linking} template tag referenced wrong event URL.
  • Bug fix: My Calendar API RSS no longer dependent on default RSS data.
  • Bug fix: Replace mysql_* functions for PHP 5.5 compatibility.
  • Bug fix: Incorrect template tag in Single view template: {gcal} instead of {gcal_link}
  • Bug fix: PHP notice on $map
  • Language updates: Japanese, German, Italian


  • Added {link_image} to add an image linked to the event URL in templates.
  • Bug fix: extended caption value saved but not shown.
  • Bug fix: For multi-day events ending at midnight, last date automatically extended one day at save.
  • Bug fix: on copy, if start date is changed, but end date isn't, increment end date to match length of original event.
  • Change: Eliminate error on empty title fields or invalid recurrence values. Set to default value instead.


  • Did not enqueue jQuery on front-end unless Google Maps was enabled. (Incorrect condition nesting...) Whoops.


  • Error in yesterday's bug fix for upcoming events.
  • Bug fix: Email notifications broken.


  • Bug fix: Notice in today's events widget
  • Bug fix: Images from pre 2.3.0 configuration did not display in default Single event view.
  • Bug fix: Upcoming events list could return too few events.
  • Bug fix: Display default date format if format not set.
  • Bug fix: Fallback to default JS if custom JS not defined.
  • Filter: added filter to Google Maps code; mc_gmap_html
  • Option: enabled option to disable Google Maps output.


  • Bug fix: Week date format wouldn't save.
  • Bug fix: Event posts & custom field data not saved on copy action
  • Bug fix: HTML errors in {hcard} address format.
  • Bug fix: Manage events search form overlapped pagination links
  • Bug fix: Events ending at midnight in Today's Events lists appeared twice


  • Bug fix: Notice on access_options filter.
  • Bug fix: Invalid date values if no parameters set for iCal
  • Bug fix: Invalid nonce check in location entry prevented creation of new locations. One missing exclamation point. Sigh.
  • Bug fix: If location controls are on, allow old values to be saved, but raise notice that value is not part of controlled set.
  • Feature: add sync=true to root iCal URL to connect apps for scheduled syncing. (http://example.com/feeds/my-calendar-ics/?sync=true)
  • Updated: Polish translation


  • Bug fix: label change to clarify entry format for location controls
  • Bug fix: Missing end tag on element
  • Bug fix: my_calendar_search_title can handle missing 2nd argument
  • Bug fix: Add "active" class span on time toggle active case.
  • Bug fix: Recurring all-day events showing twice
  • Bug fix: Non-editable fields for date/time input broke occurrences & restricted time options
  • Bug fix: Category filtering broken when holiday categories enabled
  • Bug fix: Double check whether categories exist and throw error if not, after attempting to create default category.
  • Feature: Mass delete locations


  • Bug fix: PHP warning on event save
  • Bug fix: PHP Notices generated on deleted author/host value.
  • Bug fix: Pop-up calendar for date entry had incorrect day labels
  • Bug fix: Editing individual date instances issues.
  • Bug fix: {image} fallback for pre 2.3.0 uploaded images
  • Added: secondary sort filter for main calendar views; default event_title ASC. Field and direction must be provided to change.
  • Updated my-calendar.pot


This is a major revision.

  • Bug fix: Manage events screen showed no data for users without manage_events permissions.
  • Bug fix: if single event set, could not filter to time period views.
  • Bug fix: 'single' template ID not passed into template filter.
  • Bug fix: events in private categories appeared in time-based upcoming events lists.
  • Bug fix: RSS feed encoding.
  • Bug fix: Turn-of-year issues with week view.
  • Bug fix: Added new locations multiple times if added with multiple occurrences of an event.
  • Bug fix: In some browsers, time selector added invalid data.
  • Bug fix: List of search results not wrapped in a list element.
  • Bug fix: Trim spaces on above/below navigation strings.
  • Bug fix: If an event ends at midnight, automatically end tomorrow unless set for a later date.
  • Bug fix: Don't show events on both days if they end at midnight.
  • Bug fix: Don't attempt to enqueue jquery.charcount.js if WP to Twitter not installed.
  • Bug fix: Dates didn't strip links in list view when JS disabled for that view.

  • New template tag: {runtime} to show human language version of length of event.

  • New template tag: {excerpt} to create autoexcerpt from description field, using shortdesc if it exists.

  • New feature: Accessibility features for locations.

  • New feature: Specify accessibility services for events.
  • New feature: ticketing link field
  • New feature: event registration information fields
  • New feature: my_calendar_event shortcode can query templates by keyword (list,mini,single,grid).
  • New feature: filter events by available accessibility services
  • New feature: Combined filter shortcode to group all filters into a single form. [mc_filters show='locations,categories,access']
  • New feature: new API for adding custom fields to events.
  • New feature: data API to fetch event data in JSON, CSV, or RSS formats.
  • New feature: Archive events to hide from admin events list.
  • New feature: Control input options for multiple types of location input data.
  • New feature: Shortcode generator for primary, upcoming, and today's events shortcodes.
  • New feature: admin-side event search
  • New feature: category key now acts as quick links to filter by category
  • New feature: Option to add title to Event Search widget.

  • New filter: mc_date_format for customizing date formats.

  • New filter: customize search results page: mc_search_page
  • New filter: mc_use_permalinks to enable use of custom post type permalinks for single event pages.
  • New filter: mc_post_template to customize template used in single event shortcode automatically inserted into custom post type pages.

  • New design: new stylesheet available: twentyfourteen.css

  • Updated: added more fields to search on events.

  • Updated: updated image uploader to use add media panel and store attachment ID
  • Updated: template supports all template tags (but strips HTML.).
  • Updated: Various aspects of UI
  • Updated: Date/time selectors. See http://amsul.ca/pickadate.js/, MIT license.

  • Reorganized default output template code.

  • Import all used locations into location manager.
  • Removed User settings fields.
  • Moved Holiday category assignment to Category Manager.
  • Improved get current URL function.
  • iCal output in multiple-month view outputs all displayed months.
  • {map} template tag to display a Google Map using the Google Maps API. (Not available in pop-up displays.)
  • Scheduled removal of showkey, shownav, toggle, and showjump shortcode attributes.
  • Removed upgrade support for 1.6.x & 1.7.x series of My Calendar.


  • Bug fix: Threw error if network-activated (wp_is_mobile() not defined yet)
  • Bug fix: Calendar URI could be saved as integer instead of as URL.
  • Bug fix: hide screen options that current user can't use.
  • Improved localization of Calendrical jQuery plug-in.
  • Feature: my_calendar_upcoming and my_calendar_today shortcodes now support filtering by host.
  • New filter: mc_send_notification -- passes event and user data to determine whether a new event email notification should be sent. Return true|false.


  • Bug fix: jquery.calendrical time rendering.


  • Required deleted file.


  • Bug fix: date comparison in grouped event date output.
  • Bug fix: editing a single occurrence of an event when location fields not displayed could result in duplicating the event.
  • Bug fix: Duplicated on event title in events manager.
  • Bug fix: Generated WP to Twitter empty sentence error.
  • Bug fix: Grouped events within a single day in upcoming events list.
  • Bug fix: Run My Calendar upgrade stylesheet archiving only when My Calendar is updated.
  • Bug fix:
  • Changed: replaced mc_is_mobile() functionality with native wp_is_mobile(). Filterable for My Calendar using 'mc_is_mobile' filter.
  • Changed: properly registered and enqueue most front-end styles.
  • Changed: Removed classes 'prevMonth' and 'nextMonth' from navigation.
  • Misc. minor style changes to front and back end UI.
  • Added: special value for 'author' and 'host' attributes of 'current' to only show events created by the logged-in user. Filter via 'mc_display_author' and 'mc_display_host'
  • Added: date and time to title field for My Calendar RSS feed.
  • Preparation: permission filtering for submissions and registrations add-ons.
  • Updated: German & Slovenian Translations.


  • Bug fix: Reversed argument in $details filter, breaking custom template editor.


  • Bug fix: Fix in mini calendar scripting with AJAX.
  • Bug fix: Strict error in My Calendar Search widget.
  • Bug fix: My Calendar screen options disabled other screen options.
  • Updated: Slovenian
  • Documentation error: cat_id, not category_id
  • Added support for BotSmasher as a spam filter for events.
  • Removed location region from Google Maps string (Google Maps choked on that data.)
  • Removed EasyDrag jQuery plug-in due to compatibility issues.
  • Eliminated 4 filters: mc_event_content_{$type}; replaced with single filter mc_event_content with $type parameter.
  • Added support for WP 3.6 shortcode attribute filters.
  • Added more filters & actions. Lots and lots of filters. Actions. Yeah.
  • Maybe I'm the only one excited about the last thing.


  • Bug fix: map links could render links with no data.


  • Bug fix: Link to single day events from mini calendar broken.
  • Bug fix: Return to calendar link from print view
  • Bug fix: some map links missing 'external' class.
  • Updated: couple missing i18n strings
  • Bug fix: widget title link could not be saved.
  • Bug fix: Changing the event time on individual occurrences of a recurring event showed wrong time in upcoming events list.
  • Bug fix: rewrite of AJAX scripting to clear bugs.
  • Bug fix: Event authors with "add" capability could not edit their own events or copy events from the admin.
  • Bug fix: Time frame toggles triggered beginning of month instead of current week/day if no params set.
  • Deprecated upgrade paths from versions prior to 1.5.0.
  • Eliminated single-day timeline URL settings field (no longer required.)
  • Added filter mc_modify_day_uri to allow above target URL to be customized.
  • Removed caching option; caching accessible only via filtering.
  • Updated: French, Italian, French, Slovenian
  • Added: Galician


  • Bug fix: better bug fix in 2.2.3 event duplication bug.
  • Updated: Japanese translation.


  • Bug fix: event duplication bug in 2.2.3


  • Bug fix: duplicate attribute 'rel' in prev/next nav.
  • Bug fix: category color associations on event titles when no color assigned.
  • Bug fix: print view would not always display all categories if no limits set.
  • Bug fix: Group editor lost multi-day settings.
  • Improvement: throw a warning on events set up with problem settings, e.g. recurring events where the next occurrence begins before the current event has ended.
  • Added template tag: {map_url} for Google Map URL.
  • New filters: filters for calendar year/month/day (to change the default start date for the calendar.)
  • Language updates: Japanese, Italian, Dutch, Romanian, and Slovenian


  • Bug fix to importer from Calendar
  • Another fix to link_map (this time, in the standard calendar view.)
  • Bug fix: location preset being assigned didn't allow changes to location details when editing events.


  • Bug fix: Pull multi-day events in upcoming events list that happen today, but started on a previous day when past events set to 0.
  • Bug fix: broken {link_map} template tag.
  • Update to Italian translation.


  • New feature: event search (widget).
  • New feature: with WP to Twitter installed, auto post events to Twitter when published or approved.
  • New feature: toggle timeframe between month/week/day view
  • New setting: ensure best possible color contrast between background color and title link.
  • Split manage events page and add event page into two separate interfaces.
  • Removed non-sortable fields from display for manage events interface.
  • Moved setting for number of events on manage events page to screen options.
  • New screen option: on event manager screen, users can turn off areas of the event manager they don't use.
  • New template tag: {image_url}, to pull an event's associated image without HTML
  • New template tag: {linking}, event URL with fallback to details link
  • New template tags: {gravatar} and {host_gravatar} to show author/host gravatar images.
  • New filter: mc_event_mail_to.
  • New filter: mc_past_search_results.
  • New filter: mc_future_search_results.
  • New filter: mc_search_template
  • Added support for variable increments (e.g., every 3 weeks, every 4 months, etc.)
  • Added template tag support to notification email subject line
  • Added option to send HTML notification emails
  • Added option to set sending address for notification emails
  • Added template tag to add event to Google Calendar
  • Added 'check all' option to event manager.
  • Accessibility Improvement: added aria-live attributes.
  • New shortcode attributes: 'above' and 'below'. (Control order and display of elements above/below calendar.)
  • Deprecated shortcode attributes: showkey, shownav, toggle, showjump. Will be removed in My Calendar 2.3.0.
  • Updated shortcode generator to use new attributes. Also added support for author and host attributes.
  • Miscellaneous tweaks to all My Calendar themes.
  • jQuery improvements. (jQuery version 1.7 minimum requirement.)
  • Bug fix: multi-day events incorrectly displayed in Upcoming Events by dates view
  • Bug fix: Open events to details page briefly rendered empty details pop-up (requires script update)
  • Bug fix: element filter didn't strip all HTML tags.
  • Bug fix: hcal end time
  • Bug fix: upcoming events miscounted number of events with overlapping multiday single events.
  • Bug fix: today's events are now counted towards total events in upcoming events list
  • Bug fix: retention of location data when location fields disabled in manager
  • Bug fix: documentation correction for remote DB
  • Bug fix: caching issue when filtering by location
  • Language updates: German, Spanish, French, Japanese, Dutch, Polish, Italian, Slovenian
  • Deprecated support for WordPress versions up to 3.3.0 due to jQuery version change.


  • Bug fix: upcoming events timestamps were converted to UTC.


  • Bug fix: weekly view when crossing years jumped to next year
  • Bug fix: Upcoming events sorting fix
  • Bug fix: Upcoming events count fix
  • Bug fix: print stylesheet directory fix.


  • Bug fix: My Calendar stripped title elements from singular posts unless an SEO plug-in was installed.


  • Bug fix: Miscounted number of events in upcoming events view when events were multiple days.
  • Bug fix: My Calendar URL guessing now only selects from published Pages/posts
  • Tweak: Minor change to HTML output in print view
  • Added: Option to display current month or current year using Upcoming Events widget.
  • Added: Filter to display a custom on single event details pages with settings field to configure that title. (Improves SEO)
  • Language updates: Italian, Russian, Basque


  • Bug fix: users without 'Approve Event' ability submitted unapproved events even when event approval was disabled.


  • Miscellaneous filepath fixes for custom icons
  • Fixed filepath issue for custom content directory in loading calendar generator
  • Added templating options to RSS feed event format
  • Added two new template tags: description_stripped and shortdesc_stripped; returns the description fields with HTML removed.
  • Re-organized settings to provide better grouping.
  • Removed jumpbox default setting; jumpbox now only configurable via shortcode.
  • Bug fix: titles missing in list view when open to details link enabled.
  • Bug fix: Multi-day events listed only once in upcoming events lists.
  • Minor stylesheet tweaks.


  • I horribly screwed up the Upcoming Events widget in 2.0.11. Please accept my apologies.


  • Fixed Broken custom stylesheets editing/selection.
  • Added Custom links for widget title links
  • Fixed issue with event links expiring immediately
  • Fixed issue with holiday collisions restricted in Upcoming Events/events only when holiday category is displayed.
  • Added full year output option for iCal downloads.
  • Added setting for calendar heading month formatting.
  • Updated language files: Japanese, Italian, German, Turkish


  • Updated Japanese, Turkish, and Italian translations
  • Bug fix: Upcoming Events list could not be limited to a single author.
  • Bug fix: Un-approved events were being displayed in some public contexts.
  • Bug fix: Problem with RSS feed template elements not rendering in some cases.
  • Bug fix: Upcoming Events removed events inappropriately in certain situations when 'skip on holidays' was checked
  • Bug fix: Updated method for getting current plugin URL.
  • Deprecated support for WordPress versions before 3.0.6.


  • Bug fix: Email notification on event addition to admin did not receive event data.
  • Bug fix: Accidentally eliminated weekend class. Now it's back!
  • Bug fix: Events crossing multiple dates need per-date unique IDs
  • Code change: Some code simplification for current URL and plugin URL references.
  • Updated languages: Portuguese, Dutch, Italian


  • Re-written (simplified) holiday exclusion mechanism.
  • Performance improvements to templating and event processing.
  • Bug fix: Import from Kieran's "Calendar" plug-in was broken.
  • Bug fix: 'nextmonth' class was attached to events in weekly view; not appropriate to view.
  • Bug fix: Deleting single instance deleted entire event series.
  • Added option: number of events per page in admin events list


  • Bug fix: Show list view on mobile devices option did not work.
  • Bug fix: No longer forcing links on titles in list or mini view.
  • Bug fix: All-day events came up with random end times.
  • Change: All-day checkbox added.
  • Change: All-day events automatically forced to hide end times.
  • Change: removed X-WR-CALNAME field from iCal output for improved compatibility
  • Updates: Partial updates to Spanish, Italian, and Dutch translations.


  • Bug fix: Mini calendar links pointed to current display month regardless of current display date.
  • Bug fix: if day parameter was set, the main calendar views showed events for month starting from that date.
  • Bug fix: if day view was targeted from mini calendar with default cid parameter set, would not react
  • Bug fix: Calendar could not show events which had start and end dates which spanned the displayed period but were not included in the displayed period.
  • Moved screenshots into assets folder in version repository.
  • Translation source updated at http://translate.joedolson.com/ - now the translations need refreshing!


  • Bug fix: Date links were eliminated in mini calendar if option to link to day-view was enabled.
  • Bug fix: Today's events drew events based on UTC instead of current timezone.


  • Bug fix: template variable misassigned in the Today's Events shortcode.
  • Change: Added option to output iCal either in UTC or with times as entered. (Previously only UTC)


  • Bug fix: Upcoming events widget did not support the "show_today's events" option correctly.
  • Bug fix: Was not possible to set 12:00 am as the end time for an event.
  • Bug fix: prevented blank title in main calendar due to faulty template.


  • Bug fix: My Calendar did not enqueue jQuery
  • Bug fix: Grid view did not display last day of month if first day of week and last day of month were both Sunday


  • Bug fix: Error in default settings for event titles.
  • Bug fix: Single Event iCal export broken
  • Bug fix: Today's Events shortcode broken if author not specified
  • Change: Deleting or updating categories now refreshes the cache.


  • Completely re-written database model for events.
  • Added: pagination on event manager list of events.
  • Added: Restrict groups manager lists to currently grouped/ungrouped lists of events.
  • Added links to other event instances visible when editing events with multiple instances.
  • Added default category selection.
  • Added feature: limit calendar views by event author.
  • Added feature: filter event manager view by location, author, or category.
  • Added feature: mark categories as private, to only show those events to logged-in users.
  • Added templating to locations list so user can produce list of any set of location data.
  • Added option in event manager to copy location data into Locations table
  • Added [my_calendar_event] shortcode to fetch information for a single event.
  • Added template tag {timerange} to display start-end times.
  • Change: all events now have an end time. Option to hide end times to maintain current display.
  • Bug fix: iCal had missing newline; events now return labeled UTC time
  • Bug fix: RSS does better job of clearing non-XML special characters.
  • Bug fix: If preset location was selected, no other edits to locations could be done.
  • Bug fix: when copying an event, the new event was grouped in the same group as the source event.
  • Bug fix: if stylesheet was disabled, stylesheet was erased on next save of style settings.
  • Bug fix to category limiting which matched category names like 'baseball' to show 'all' categories.


  • Fatal error in PHP 5.4+ https://bugs.php.net/bug.php?id=54657
  • Bug fix: {date} and {time} template tags not rendered in details link when run in a template.
  • Bug fix: upgrade database button placement off-screen
  • Bug fix: layout on stylesheet editor caused usability problems
  • Bug fix: added line break in iCal output.
  • Change: added alt attribute to category icons in appropriate contexts.
  • My Calendar 2.0 beta added to subversion repository. Here there be bugs.


  • Bug fix: Called wp_editor on versions below 3.3
  • Bug fix: assorted PHP notices cleaned up.


  • HTML validation issue fixed in calendar output.
  • Added option to hide display of external event links in calendar output.
  • Bug fix: Mini calendar should not toggle from mini view when main view switched.
  • Bug fix: Week time frame of list view did not return the 'no events' message.
  • Feature: No events message can be customized by using an enclosing shortcode: [my_calendar]No events this week![/my_calendar]


  • Added option to use {date} in Today's Events widget title.
  • Events with the same time are now sub-sorted by title in Upcoming Events lists.
  • Template tag {endtime} returns empty string if same as start time
  • Standard event output returns empty string for event end time if same as start time.
  • Can only check 'multi-day event' option if event has multiple occurrences.
  • Categories in editor now sortable by either ID or category name.
  • Categories in input now sorted by category name.
  • Updated mobile detection class.
  • Major revision to permissions handling to use custom capabilities
  • Redesign of settings pages.
  • Can target tablet devices with CSS by adding a stylesheet called mc-tablet.css to your theme directory.
  • Can target other mobile devices with CSS by adding a stylesheet called mc-mobile.css to your theme directory.
  • Template tags now support before and after attributes: {tag before="<p>" after="</p>"}
  • Added option to retrieve events, categories, and locations from a remote database. (e.g., to share calendar information between 3 related sites.)
  • Eliminated details arrow; forcing anchor element on clickable title.
  • Added 'id' attribute to My Calendar shortcode, to customize unique ID for calendar and avoid non-compliant duplication of IDs
  • Added 'template' attribute to My Calendar shortcode, so specific calendars can use their own individual custom templates. Templates should be text files (.txt) placed in your theme directory.
  • Reduced specificity in stylesheets by eliminating ID-based references.
  • Fixed bug with day/date consistency in 5-day grid calendars.
  • Added day class to date boxes without dates.
  • Jumpbox is now switchable from the shortcode.
  • Fixed google maps link to use the correct directions targeting method
  • Various changes for WP 3.4 compatibility.
  • Updated Danish Translation
  • Updated Czech Translation
  • Added Hindi Translation


  • Bug fix: List format showed all dates, regardless of whether there were events for that date.
  • Bug fix: List format showed incorrect classes.
  • Bug fix: Pipe separator for categories not supported with caching.
  • ARRRRGGGGHHHH!!! I'm sure you're as frustrated about all these little releases as I am. But who wants to sit on known bugs?


  • Bug fix: Variable not checked for type threw usort warning.
  • Bug fix: Details links rendered incorrect page if linked from a single post location with permalinks not enabled.
  • Bug fix: Fixed bug where calendar returned no information if cache reached max size.
  • Settings change: Caching is now defaulted to off.


  • Bug fix: Upcoming events list did not respect category limits.
  • Validation error/bug fix: Date for ID for first of month was incorrect.
  • Validation error: unencoded ampersand in iCal link if permalinks disabled.


  • Added option to clear cache from settings.
  • Bug fix: Error in caching where cache returned false for multi-category limited calendars.
  • Bug fix: Error in caching where cache returned false for category limited calendars using category name as delimiter. Thanks to Antti Palosaari for reporting this bug and for testing fixes.
  • Bug fix: Error notices if user is deleted who is assigned as host of some events. Thanks to Florian Edelmann for reporting this bug and contributing solution.
  • Bug fix: Upcoming events in dates mode returned null for cached dates.


  • Bug fix: upcoming events list breaks if 'This is a multi-day event' is checked for an event with only a single occurrence.
  • Bug fix: Upcoming events caching did not cache correct data.
  • Modification: eliminated some extraneous database calls
  • Modified: clarifying text edits
  • Added: category classes on calendar date cells


  • Made 'to' value in Google Maps links a translatable value.
  • Feature change: iCal download now respects currently selected month.
  • Added a phone number field to the Location manager
  • Added a setting to display only the core site's calendar on child sites in multisite mode.
  • Added a setting for the link target for mini calendar dates
  • Re-wrote labels for URL link target settings fields.
  • Bug fix: Location selector did not respect currently selected categories.
  • Bug fix: "Add another occurrence" option available in Edit mode, but not functional. Removed option.
  • Bug fix: Limiting by categories didn't trim whitespace from category names.
  • Bug fix: Fixed RSS/ICS/Print permalinks if PATHINFO permalinks are enabled.
  • Improved cache handling. Cache limit relative to amount of memory available to PHP. Cache stores information more efficiently.
  • Revised RSS/iCal handling to avoid .htaccess problems.


  • Revised template tags so the description tags are run through wpautop(), and added _raw versions which are not.
  • Fixed a bug in URL generation so that URLs with ports are correctly constructed.
  • Fixed a bug iin Print output which did not allow restriction to multiple categories
  • Added option to use {date} in previous/next navigation links to indicate what date set is being navigated to.


  • I made a truly bone-headed error in the last update, and I'm not even going to say what. If you didn't notice it, lucky for you!


  • In my rush to fix the security issue, I broke an aspect of the event navigation. Apologies for this! Now fixed.


  • Incorrectly called wp_kses(). Apologies for the frequent updates!


  • Critical security update. Please upgrade promptly. Big thank you to Dean Batha for the bug report.


  • Bug fix: undeclared array in widget manager
  • Renamed overly-generic constant.


  • New feature: option to link dates in mini calendar to separate daily view instead of pop-up.
  • New feature: no longer necessary to manually edit behaviors in order to open main calendar event titles to separate page.
  • New feature: Ability to define grouped events as a single multi-day event and remove duplicates from events lists (upcoming events and today's events widgets)
  • New feature: group-association classes assigned to multi-day events in grid display.
  • New template tags: {daterange} and {multidate} for displaying a beginning and ending date range for a single event and for displaying each date in a multi-day event, respectively.
  • Week-view calendar caption now editable.
  • Added printable version.
  • Submit buttons in forms are now duplicated at top and bottom of long editing sections, to improve usability.
  • Minor style change to group editor to avoid group list colliding with editor textarea.
  • Removed angle brackets from Previous/Next events links.
  • Added custom action hooks for event save and event delete
  • Added ability to prevent today's events from showing up in upcoming events listings.
  • Added categories to iCal output.
  • iCal should return times in local time, not in UTC.
  • Bug fix: iCal output not correctly encoded
  • Bug fix: mc_next_link filter did not exist.
  • Bug fix: placed limit on maximum size of cached calendar data.
  • Bug fix: Upcoming events list will no longer occasionally display more items than expected.
  • Bug fix: menu icon not aware of custom content locations


  • This is just a convenience update due to a warning appearing in 1.9.7 that I missed.


  • Cache was not cleared when events were approved, rejected, or deleted.
  • Fixed bug with slashed characters in time and date formats
  • Fixed bug where previous/next links did not work on category pages
  • Fixed bug where event description was deleted if edited in groups manager.
  • Easydrag.js now respects conditional loading by page ID.
  • Small change to upcoming events list: events with an end time specifie and not crossing days will move off the list after they end rather than after they start.


  • Fixed bug in Event Manager where information about whether an event was open for registration saved incorrectly.
  • Added raw details_link template tag.
  • Fixed Google Maps link error when using Long/Lat coordinates.
  • Associated image option was not available if HTML editor was enabled.


  • Bug fix: Caching of Today's events did not account for category limits
  • Bug fix: Upcoming events listed by day duplication


  • Bug fix: month-by-day recurring events in upcoming events list
  • Bug fix: duplication of events in upcoming events list
  • Bug fix: when editing a single event with indefinite recurrences, future events set up without continuing recurrence.
  • Function error when data not present fixed.
  • Added display of sending name/address for support messages


  • Stylesheet saving can write longer files. Solves problem with occasional truncation of stylesheets.
  • Added transient caching for calendar events to improve performance, plus other various performance improvements
  • Small html output change.
  • 1.9.0 made details boxes draggable; made this optional.
  • Added plug-in support request form.
  • Added updated French translation to 1.9.2
  • Fixed bug with date switcher duplicating/skipping months.
  • Updated User's Guide (not included with plug-in)


  • Bug fix: Fixed sort error returned by calendar if no events are in array.
  • Bug fix: Fixed incorrect URLs for icons in custom directory in category key.
  • Bug fix: Caption text did not display.
  • Added {date} and {time} to details link text templating.
  • Bug fix: Fixed {icon} URL in template output.
  • Bug fix: Fixed bug with table layout of dates when weekends are disabled on grid calendar.
  • Bug fix: Fixed bug with generation of details link when not using permalinks.
  • Bug fix: Fixed bug with HTML editor converting HTML entities.
  • Bug fix: Fixed bug where weekly view showed the wrong dates if the current week started in the previous month.


  • Bug fix: Incorrect title template tag auto-generated if title template is empty.
  • Bug fix: Create events permissions broken
  • Bug fix: Host list broken in WordPress versions lower than 3.1
  • Bug fix: My Calendar not using WordPress defaults for customizable date and time settings if not set by user.
  • Bug fix: Turning off calendar icons did not turn off icons in key
  • Bug fix: details links used current URL instead of stored URL
  • Bug fix: default widget settings not loaded on upgrade.
  • Bug fix: next/previous links not working on home page if permalinks not set.
  • Bug fix: event title shown in date field in list mode was not for the first event of the day.
  • Style change: Minor change to my-calendar.css to adjust for the green background on weekends. (Which showed up as the result of a fix to an HTML problem in 1.8.9.)
  • Bug fix/Option add: Added option to remove individual iCal link
  • Option add: Added option to conceal first event title/number of events with date in list mode.



  • template editing for list, grid, mini, and single event output.
  • pop-up box is now draggable.
  • date format option for grid mode, week view.
  • templating for details link text.
  • templating for event URL link text.
  • location filtering from shortcode.
  • image upload option for events
  • day class to calendar date headings and cells
  • individual instances of repeating events can be edited
  • feature to add multiple occurrences of an event simultaneously. (concept from Dave Heitzman)
  • feature to mass edit information for groups of events (concept from Dave Heitzman)
  • stored URL for locations (contrib by John Colvin)
  • recurring daily events on weekdays only (based on contrib by John Colvin)
  • optional templating for all event output formats
  • individual event occurrence iCal export
  • numerous additional template tags
  • Option to use custom location filter fields as data control
  • Shortcode to generate list of saved locations
  • Network administrators can control whether sub-site calendars contribute only to a central calendar, only to their own calendar, or whether site administrators can make that choice.
  • Upgrade notice information in dashboard for future upgrades.
  • implementation of WordPress text diff to compare your styles and scripts against my current released versions
  • Option to skip a defined number of events in upcoming events lists.

Bug fixes:

  • jump box was displaying in week/grid view.
  • some potentially repeatable IDs (code validation).
  • 'Administrators see all options' did not work.
  • Fixed timestamps on main calendar objects
  • Squashed e_notice errors.
  • category limiting did not work without permalinks due to GET variable conflict with WordPress core
  • Missing nonce in database upgrade routine
  • Mini calendar simultaneously displayed single event view when visited.
  • Link generation for details view did not work if calendar link parameterized
  • Issue with weekdays only calendar if day of week set to start on Sunday
  • Issue with retrieval of user-specific settings
  • Issue with accessing styles and javascript if My Calendar installed in non-standard directory.
  • Problem in Today's Events widget when Holiday restrictions are enabled.


  • replaced all default icons with 24-bit transparent PNGs
  • jumpbox output to automatically scope to the oldest dates in the database.
  • iCal output changed to output all events for complete current month
  • RSS output to prioritze newly added events
  • holiday skipping/fifth week customization moved into event manager function
  • new 'close' icon for pop-up box; added close icon and scripting to mini calendar pop-up
  • copy in several places; updated template tags.
  • location lists sorted by location label (contrib by John Colvin)
  • Eliminated calendar heading option
  • default style resets no longer stored in global variables, instead stored as files.
  • Map links now trigger the driving directions dialog in Google Maps
  • New default stylesheet, refresh.css


  • Fixed bug with database upgrade in multi-user additional calendars
  • Fixed bug where calendar picked up current month labeling using current day of the month
  • Added French translation


  • Fixed bug in locations filtering that disabled feature if user not logged in.
  • Re-arranged settings and added notices about options which will be removed in a future release.
  • Revised RSS feed to use event permalinks when they are available.


  • One very minor change in 1.8.6 caused some plug-in conflicts, so I rolled that change back. Will find another solution to the problem it solved. This change affects very few users.


  • Fixed bug with {details} template tag when Upcoming widgets configured as Events
  • Location and category filters now do not display forms/lists if there isn't more than one choice.
  • Extended details link feature to main calendar output and added to output options.
  • Minor changes to time-entry jQuery plug-in to improve usability.
  • Updated Japanese translation to 1.8.5
  • Added Russian translation to 1.8.5


  • Another bug fix to monthly-by-day recurrence.
  • Fixed minor problem with default template not being visible in widget.
  • Fixed 'widget title linked' bug.
  • Added Turkish translation by Mehmet Ko&231;ali


  • Mini calendar widget had a mis-labeled option field
  • Custom User settings for event region didn't function correctly.
  • A variety of bug fixes applied to events repeating on a monthly-by-day basis


  • Turned on spam flag toggle, which I had commented out and failed to restore...
  • Default return false ('not spam') for privileged users when checking Akismet


  • Fixed bug with {icon} template tag, for real.
  • Fixed RSS missing argument
  • Fixed empty list rendering in upcoming events widget


  • Fixed bug with region saving on edit of location
  • Fixed bug with single-event view receiving date as array
  • Fixed bug with {icon} template tag
  • Fixed bug with calendar output if user settings are enabled but not applied by user
  • Fixed bug with list/grid format toggle
  • Fixed bug with upcoming events limited by category

Requires: 3.8.5 or higher
Compatible up to: 4.2.3
Last Updated: 2015-6-8
Active Installs: 40,000+


4.7 out of 5 stars


17 of 45 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

100,3,3 100,5,5 50,2,1 100,1,1 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 0,1,0 100,2,2 100,2,2 100,1,1 0,1,0
100,1,1 100,6,6 100,1,1 50,2,1 100,2,2 100,1,1 100,1,1 100,1,1 100,2,2 100,3,3 100,3,3 100,1,1 100,7,7
100,1,1 100,1,1
100,2,2 50,2,1 100,1,1
0,1,0 100,1,1 100,2,2
0,1,0 100,1,1 100,1,1 100,1,1
100,1,1 50,2,1 100,1,1 0,1,0 50,4,2 100,1,1 100,1,1 100,1,1 100,2,2 100,6,6 100,1,1 0,1,0
100,1,1 100,1,1 100,2,2 100,1,1 100,1,1
57,7,4 50,4,2 100,6,6 80,5,4 50,2,1 100,1,1 100,4,4 100,3,3 100,1,1
100,1,1 100,1,1 100,2,2 100,1,1 100,4,4
100,3,3 50,2,1 100,3,3 100,1,1 88,8,7 100,1,1 100,2,2 100,1,1 100,1,1 100,2,2 100,1,1 67,3,2 100,3,3 100,1,1
100,3,3 100,1,1 67,3,2 100,4,4
100,2,2 100,1,1
83,6,5 100,1,1 0,1,0
100,1,1 100,1,1 75,4,3 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 67,3,2 100,1,1 100,2,2 100,1,1 100,1,1
100,3,3 100,2,2
100,2,2 100,2,2 100,1,1 100,3,3 100,1,1 100,1,1
50,2,1 100,1,1 100,1,1 50,2,1 100,2,2
100,2,2 100,1,1 100,1,1
100,2,2 100,1,1 100,2,2
100,1,1 100,1,1 100,1,1 100,1,1
100,2,2 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1
100,1,1 100,1,1
100,1,1 100,1,1 100,2,2 100,1,1
100,2,2 100,2,2 100,2,2
100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 0,1,0
100,1,1 100,1,1 100,1,1 100,1,1 50,2,1 100,1,1
100,1,1 100,1,1 100,1,1
100,1,1 75,4,3 100,1,1 100,1,1
100,1,1 67,3,2 100,1,1 100,1,1 100,2,2 100,1,1
100,2,2 100,1,1 100,1,1
100,1,1 100,1,1 100,1,1 100,2,2