Simple ‘flat’ events can be imported from a csv file. This is possible with a third party csv import plugins. The amr-events plugin attempts to use the wordpress meta data as simply as possible to facilitate this kind of easy integration with other plugins.
Events can be complicated: they can recur, be in different timezones, have exceptions to their recurring definition, have alterations to some instances etc. These ‘complications’ cannot so easily be imported.
From a brief review of the csv import plugins out there, starting with the self named “ultimate csv importer” and backing away in disappointment, I read reviews of a few others and decided to try the really simple importer. It worked so nicely and cleanly that I stopped there!
What a pleasure to see a plugin that
- inserts itself sensibly into wordpress, adding itself under tools > import just where it should be
- imports the data with limited fuss, very sensibly using the column headings, making sensible defaults for missing fields instead of insisting that they are mandatory data. eg: choose to include a post_status, or let it default to draft and ‘publish’ it later.
- handles custom fields and custom post types as easily as they should be handled – why should there be a ‘fuss’
So how to import events?
I suggest you create yourself a test event or two that are similar to the event data that you wish to import. This is so that you can see the meta data that is created. The amr events plugin tries to stay close to the ICS RFC spec formats for the data, but is sophisticated enough to cope with a reasonable set of date formats and will work with minimal event data input. Sample files provided below. The plugin needs
- some of the standard wordpress post data, as little as your chosen csv importer will cope with.
- post_type = event (or whatever you have in your settings, or load as post and change afterwards if your csv importer is a bit ‘dumb’.)
- a minimal set of event meta data (see example file for variations):
- _DTSTART in RFC format eg: 20140402T090000 or 20140402
- optional extras:
- _DTEND (to define any timed events or events of greater than 1 day. NOTE RFC 5545 says _DTEND ends on NEXT day for one day events – be careful what you define and test it!)
- _timezone (if timezone differs from UTC or your website timezone – careful testing with your setup)
- _allday (timed or allday)
- see your sample events post-meta in phpmyadmin for more possibilities.
- It is probably not practical to try CSV importing recurring _RRULE data or detailed duration data (use DTEND rather)
- If you experience any problems, please consider carefully whether it is a problem with your chosen CSV importer and if so, log your support query there.
- If some data goes in a bit wonky – maybe you set it up a bit wrong, the amr-events plugin does try to correct things – update the post and save.