ICS Calendar


Using a simple shortcode, you can embed any iCalendar subscription feed (ending in .ics) into a page as a monthly calendar grid.

This plugin includes the PHP ICS Parser library by Jonathan Goode, John Grogg and Martin Thoma (MIT license).


Once the plugin is installed and activated, use the shortcode below to insert a calendar into your pages. See FAQ for details.


How do I insert a calendar into my page?

Use this shortcode:

[ics_calendar url=”ICAL_SUBSCRIBE_URL” title=”DISPLAY_TITLE” description=”DISPLAY_DESCRIPTION”]

The title and description are optional. If omitted, the title and description provided by the calendar feed will be displayed.

Be sure you are using a subscribe URL (ending in .ics), not a web calendar URL (ending in .html).

These instructions can also be found in WordPress admin under Settings > ICS Calendar.

My calendar won’t load.

This may be due to your server’s configuration. This plugin requires the allow_url_fopen PHP setting to be “true”. Check with your server administrator if you think this may be the issue. Unfortunately because we are retrieving your ICS file from an external server, this setting is essential for the plugin to function. (“True” is the default setting, but some server administrators may have turned off the feature as a security precaution.)

My calendar isn’t updating. What do I do?

For performance, this plugin uses WordPress transients to limit the number of times the ICS feed is loaded from the source. If you have updated events that are not showing up in your page, you can force the plugin to reload the ICS feed every time by adding reload=”1″ to the shortcode. Be sure to remove this when you no longer need to force reload.

Installation Instructions

Once the plugin is installed and activated, use the shortcode below to insert a calendar into your pages. See FAQ for details.


Good but language support..

Otherwise this is good, simple and fast but would need support for translations and example: setting which day week starts, which language is displayed..

Read all 2 reviews

Contributors & Developers

“ICS Calendar” is open source software. The following people have contributed to this plugin.


Translate “ICS Calendar” into your language.

Interested in development?

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


  • Updated readme file for clarity.


  • Fixed time zone error that was overcompensating for site’s offset from GMT. (The included third-party ICS Parser library apparently double-applies the time zone offset when time zone data is present in individual events.)
  • Added support for WordPress “Week Starts On” setting.
  • Moved events’ end time from direct display into tooltip on hover over start time, for cleaner appearance.
  • Inserted tag after any slashes in event label output, to prevent run-on lines overflowing table cells.
  • Added date limit to avoid memory issues with very large calendars. Currently hardcoded to 365 days, but will be a configurable option in version 2.0.
  • Added partial support for translations. Full language support coming in version 2.0.


  • Added missing CSS class to display day of week in grid on phone layout only.


  • Added support for localized time format.
  • Removed debugging code that would display for administrators in version 1.1.2.


  • Ran composer update to fix missing dependencies in ics-parser library.
  • Removed recurrence handling code that was no longer needed with ics-parser library updates.


  • Added handling for all-day events.
  • Added handling of multiple events with same start date/time.
  • Fixed start/end time bug affecting feeds that don’t include the time zone in every event.
  • CSS improvements.
  • Updated ics-parser library to version 2.1.4.


  • Added explicit cell widths to CSS.
  • Added donation option to admin page.
    • Fixed bug that would cause all event end times to be 12:00am.
  • Removed unnecessary use of .siblings() jQuery method on month select dropdown.


  • Added handling for empty calendars.
  • Updated “Tested up to” version.


  • Initial release version.