Event Organiser iCal Sync

The iCal Sync extension allows your subscribe to external; automatically importing events via iCal feeds from other sites and services such as Google Calendar.

iCal feed screen

Requires WordPress 3.5+ and Event Organiser 2.7+ (free)


  • Subscribe to any number of feeds.
  • Configure the frequency with which events are updated.
  • (Optional) Specify a user, category and status to assign to events imported from a particular iCal feed
  • View the date the feed last synced and any errors or warnings encountered, if any.
  • No server-side configuration required; the extension uses WP-Cron.
  • (Optional) Sync, manage and validate feeds from the command line via WP-Cli.


If an event is removed from a source feed, is it deleted on my site?

Next time the feed is fetched events which were previously added by this feed but no longer present in the feed are trashed (not deleted). (New events found are added, and existing events found in the feed are updated).

For this reason you shouldn’t edit a feed to change the source url as when this new url is fetched events added by the original will be trashed. Instead create a new feed, and delete the original if desired. Deleting a feed will not delete the events imported from it.

Can I import to a particular category?

Yes, since 1.1. You can also set the status of the imported events. You can also opt for the categories & status of imported events to determined by the iCal feed.

If I edit an imported event are my changes lost when the feed is refetched?

Yes. This is not a two way sync, so changes made on your site do not propagate to the source feed. When the source is re-fetched the event is updated according to the source feed.

How can I fetch my feeds according to a different schedule?

Feeds are fetched via WP-Cron. Details on how to add custom schedules can be found here: http://codex.wordpress.org/Plugin_API/Filter_Reference/cron_schedules

As a simple example, the following adds a ‘Once weekly’ and ‘Every 10 minutes’ schedules. The following can be added to a site utility plug-in or (though not recommended) functions.php.

   function customprefix_add_custom_schedules( $schedules ) {

         // add a 'weekly' schedule to the existing set
         $schedules['weekly'] = array(
              'interval' => 7 * 24 * 60 * 60, //1 week in seconds
              'display' => 'Once Weekly'

         // add a 'tenminutes' schedule to the existing set
         $schedules['tenminutes'] = array(
              'interval' => 10 * 60, //10 minutes in seconds
              'display' => 'Every 10 minutes'

         return $schedules;
    add_filter( 'cron_schedules', 'customprefix_add_custom_schedules' );

Why aren’t my feeds being fetched when it says it will?

Feeds are fetched via WP-Cron which is a WordPress’ in-built “pseudo cron” handler. (Genuine) Cron executes routines at specific times, but is not available in all hosting environments. WP-Cron is, but cannot guarantee a specific time. Due to the way it works, the more traffic your site receives (including bots), the greater accuracy of WP-Cron.

Event Organiser iCal Sync also allows you to sync, manage and validate your feeds via WP-Cli. So if you wish you could turn off the automatic sync, and instead implement your own cron job using the command:

 wp eo ical-feed fetch --all

Purchase below, or get it free when you purchase Event Organiser Pro Business or Developer license. All license are valid for one year.