Disclaimer: This is by no means a complete list. It consists of notes explaining what has been implemented and what has not with regards to the ical spec. This site presents the spec in a readable form.
You should always test with your ical files and check that the dates are generated as you expect them to be. In some cases the problem may be that an ical generator has a “unique” way of interpreting the spec. Sometimes I can easily get the code to accommodate these, so do let me know.
Implemented or will cope with:
components
- vevent
- vtodo
- vjournal
- vfreebusy
- valarm
parameters
- Html in most text fields
- Dates of all types
- DTSTART:19970714T133000 ;Local time (floating)
- DTSTART:19970714T173000Z ;UTC time
- DTSTART;TZID=US-Eastern:19970714T133000 ;Local time and time zone reference
- VALUE=PERIOD
- VALUE=DATE:19970101
VALUE=DATE;TZID=/mozilla.org/20070129_1/Europe/Berlin:20061223
- DTSTART with DTEND or with DURATION
- DUE, ALARM
- RRULE, RDATE, EXRULE, EXDATE (except for some BYDAYS)
- Modifications using RECURRENCE-ID, SEQUENCE with UID
- Recurrences ending with UNTIL or COUNT
- LOCATION
- URL
- WKST
- all FREQ’s (yearly, monthly down to secondly)
- INTERVAL
- all simple BY’s :
- BYDAY =TU,TH etc
- BYMONTH=JAN,FEB
- BYMONTHDAY
- BYYEARDAY,
- BYSECOND
- BYHOUR
- BYMINUTE
- BYDAY= plus or minus day of week (in version 2.6.10)
- X-WR-CALNAME
- X-WR-CALDESC
- X-WR-TIMEZONE
- STATUS
- GEO
- CREATED, COMPLETED, LAST-MODIFIED, DTSTAMP
- CATEGORIES, CLASS, PRIORITY
- TRANSP,
- and any plain text field that does not require processing (it will be passed through the parser)
Not yet Implemented, but maybe soon… in progress
- BYMONTH= plus or minus number of month
- BYWEEKNO = number and BYWEEKNO = plus or minus number
- BYYEARDAY = plus or minus number of day in year
See http://www.kanzaki.com/docs/ical/recur.html for more understanding of these.
May Never be implemented, unless someone motivates (and there is a ical generator that produces it!)
parameters not implemented
- BYSETPOS
- TRIGGER, REPEAT, ACTION
- RECURRENCE-ID;RANGE=THISANDFUTURE: or THISANDPRIOR
Complicated to implement, Not many generators use it. Google calendar converts a repeating event with such a modification to two repeating events. Thunderbird does not allow one to specify such a modification.
component not implemented
- vtimezone – this defines the timezone, the daylight saving cutoffs etc. The plugin reads the timezone string and uses the PHP definitions of the timezones.
Related posts:



Hi. This plugin is very cool, and I think I might be able to get it to do what I need, but I’m wondering if you know of any way to transmit other information between Google Calendar and WordPress through the plugin. For example, if I want to tell Google Calendar which of 100 different venues at which the even is occurring and then style the event when it shows up in WordPress differently depending on which venue? Maybe a note in Google Calendar “Description” field or something like that? Is there a way to parse events as they are displayed and make choices at that point?
Hi,
See here for some thoughts
http://icalevents.anmari.com/2382-styling-of-ical-events/
and
http://icalevents.anmari.com/2343-event-locations-geo-tags-for-custom-post-types/
I don’t like the idea of trying to get something out of the description field – sounds messy.
The Geo mashup plugin allows one to save “locations” with a name, and my new plugin (not launched yet) will integrate with it (that code already written), although not yet using the saved name for styling – I’ll think about that.
I’d love to too – have the code planned but not written – time for unpaid activities has been limited though!
Would love to see the BYDAY parameter implemented.