Categories from ics files

An ics file may have ‘CATEGORIES’ in it.  For formatting purposes, the plugin treats these  similar to the wordpress ‘Category’, and will ‘mimic’ the links that are generated by wordpress categories.

Unlike wordpress event category or taxonomy based selection, selection of ics events via shortcode parameter is not currently offered.  It is preferable (more efficient) to do your selection of events for your ics file page by selecting the events for your ics file at the providing system side.  Hopefully the providing system offers the necessary parameters, as the amr-events plugin does when it offers ics feeds.

A tailored ics feed reduces the size of the file and the number of events that have to be parsed unneccesarily by this plugin.  Those ics files can get big over time, so if you have the option to select only current and future events, do that too!

For example of tailored ics feeds, see the demo site for amr-events – one can see that multiple selections are available from the amr-events to tailor an ics feed.

Example ICS Extract:

CATEGORIES:New Technology,User Experience,Web Technology,Web Development,Computer programming,Software Development,Technology,Interaction Design,Internet Startups,Web Design,iOS Development,Graphic Design,Ruby On Rails,Python

The plugin will try to pretend that these are like wordpress categories, and will create ‘links’ behind the ics category names.   To demonstrate, use the default list type with your ics file. The CATEGORIES should appear below the description:

Example formatting of ics categories:

One can click on the links generated to see just the events with that ics CATEGORY.

Note that the whole file still has to be parsed before event selection can take place.



Memory Problems or Timeouts ?

Experiencing memory problems or  timeouts ? Check the following:

Are your default wordpress and php memory settings up to handling all that you have added to the site?

Over time, as you add change themes, and add plugins, your wordpress setup starts needing more and more memory.   Sometimes the last plugin added is the one that ‘tips it over the threshhold’.   It may not be the main memory hog (or it may see below.)       Please check your wordpress and php memory limits.  Here are some helpful posts:

If your memory setting is already quite high, then evaluate whether you are asking the plugin to do too much:

Do you have recurring events ?

If you do have recurring events, please consider the following carefully:

How many days, months and number of events have you set as your maximum ?

This can influence how much work are you expecting the plugin to do.  Setting unnecessary high thresholds can cause a lot of extra work.   More info on number of events, number of days or months here.

How old is your ics file and how many ‘old’ events does it have ?

If it’s a google calendar, the ics feed does not at time of writing offer a way to request future events only.  This means your ics file will grow. The plugin has to parse ALL the events in the file, hold them in memory to check for a possible modifying VEVENT with a later sequence number that modifies the date. More info on google calendar ics files – and how to bulk delete old events.


Event List Parameters, number of events, days, months, years

In the list type settings, and as shortcode parameters, you can set the maximum number of events and the maximum number of days or months that the plugin will attempt to list.  It also uses these to limit the recurring events it has to generate.

maximum events and number of days, or months
maximum events and number of days, or months

It is important to set a balance between number of days/months and number of events, particularly if you have recurring events and in particular for those people using ics files.    An event, especially a recurring can be made up of multiple VEVENT definitions, additional definitions for each excluded date, or modified instance.  So for each recurring event, the plugin has to

  • generate the possible instances, hold them all in memory
  • check for any modifications, exclusions etc and apply those to the instances, before it can start limiting.

Modifications of instances can change an instance date and time – pushing it out of the desired time range or WORSE, pulling an instance that is currently out of range, INTO the time range.

Try to balance the two parameters: the time period and the number of events based on your knowledge of the types of events and their frequency.

For example:   If you specify 10 events and 1000 days, the recurring events have to be generated out to 1000 days and all held in memory, until all events generated and modifications applied, and then the number can be cut back to 10.

As a guideline, If you want to show 5 events and usually they’d be in the next two months, then maybe 90-120 days would be suitable.

Note also that there is a difference between how hours, days, months thresholds are treated.

  • hours start from current hour
  • days start from current day
  • months start from current month

So if you say months=1 and the list is running on the last few days of the month, you will not see many of ‘future’ events ie: next months day. Bette to perhaps either use: days=30 or months=2,


Google calendar ics files

If you are using a google calendar ics file as event input you should be aware of the following:

At times the ics feed is slow to update – check what the actual feed contains if you think events are missing .  Open the ics file in notepad, and check if your events or your changes are there.  Note that an instance may have multiple VEVENTS with incremental SEQUENCE numbers later in the file.

the ics file may get rather large over time.  At time of writing there is no way to get the feed to only show future events, so it will have ALL your old data.  This all has ti be parsed, turned into event data and held in memeory to see if there any any modifications, or exclusions.    If you don’t need the old events, try deleting them.  You may need a bulk delete tool.  I have used this GcalToolkit, not ideal but it does work.

On the other hand, using an amr-events feed in a google calendar:

Again google can be slow to refresh reading the feed, sometimes it will do the first one fine, then you make a change and expect google to show in instantly. It will not. Not much we can do about that.

Ics Feeds, RDATEs and google calendar – version 3.11

Google calendar has always been slightly more particular about ics feeds and frustrating in the lack of information it gives if it rejects a ics url.   Thanks to Toby Hage, a couple of oddities to do with blank lines in descriptions and  in repeating dates (RDATES) in the ics feed were been identified.   These are now resolved in version 3.11.   This version is up at and all appears to be stable so far.  It is available for download at

If any of you have any feature requests, please contact me at



Improved performance in amr-events 3.6

Version 3.6 of amr-events is available for download.

It should be used with the free listing part: amr-ical-events-list version 4.30.       Several improvements have been made in the way that event meta data, taxonomies etc were being retrieved.  This has reduced the database queries made when producing an event list from events in wordpress.

If you have a fairly recent version, and your access to the automated updates from icalevents is still current, then  it should appear in the normal wordpress plugin updates.