Jump to content

IP.Board 3.2.0 Dev Update: Calendar Improvements, Part V: iCalendar Support

In our last Calendar-specific blog entry for this upcoming IP.Board 3.2 update I wanted to discuss the last big change you should expect to see: support for importing and exporting events to and from your calendar using the universally-supported iCalendar specification.

The iCalendar specification is a universal format that many applications (such as Microsoft Outlook, Google Calendar, and iCal for Mac) support, allowing applications that support the format to share events between calendars. Think of it as an RSS feed specific to calendar events (although it's important to note that it is completely unrelated and dissimilar technically to the RSS specification).

Exporting Events

Two options will be available for your members to export events from your calendars. Your members will be able to download all events in the calendar as a .ics iCalendar file, which they can then import into their calendar application of choice, or your members can subscribe to your calendar to automatically import new events as they are posted through a webcal:// protocol link. Both options are presented on most pages of the calendar so that they are easily accessible.

When clicking on a link beginning with the (unofficial) "webcal://" protocol, the user's calendar application of choice should automatically launch, importing the feed without any necessary intervention from the user. Users can also copy the link and use the link to import the calendar into an application or website (such as Google Calendar) manually.

All relevant data is included in an iCalendar export, including the event start, end and recurrence information, the event organizer information, attachments (when applicable), and RSVP attendees (when applicable).

Importing Events

It is important to note that for this release, we have opted to make event importing an admin-only option. We may likely investigate front-end support for importing events into your calendar, however we have decided to implement the iCalendar importing in this release through the ACP so as to prevent resource issues on your board. I'm sure you can imagine how your server might react if 10,000 members all decided they wanted to import their Google Calendar events into your calendar on a recurring basis. :)

The ACP provides two ways to import events:

  • You can upload an iCalendar file (which will usually have a .ics extension) through an upload form
  • You can define feeds (using http://, https://, or webcal:// protocols) to import on a regular basis

When you upload a .ics file to import, you can specify which calendar you wish to import the events to, and the member you wish to save the events as (the field to specify the member uses the member look-ahead javascript to aid you in finding the correct user). The file you upload will be parsed and all data that can be extracted and honored will be imported as provided. If the event file has attendees specified, and any of those attendees are also members of your board, they will even be automatically RSVPed for the event!

If you would like to subscribe to iCalendar feeds, you can also add as many of these as you like in the ACP.

When adding or editing a feed import, you specify the calendar to import the events to, the member to import the events under (again, you can utilize our member look-ahead to assist you in finding the correct user), the frequency to check for updates, a title and the URL to the feed. Upon initially saving the feed, the first batch of events will be imported, and then regularly (based on the frequency you specify for the feed) IP.Board will automatically check the feed for new events and import any that have not yet been imported. As with uploading an .ics file manually, event attendees will automatically be RSVPed for the event if they are also members of your board.

Are there any caveats?

Well, yes there are a few caveats to keep in mind. Calendar has limited support for event recurrence at this time, so some of the more creative recurring events (for instance, an event that recurs every second Tuesday of the month) may not import as you might expect. Calendar will do it's best to read the event and import it based on the intention, however some event types may not be fully supported due to limited support for certain functionality in Calendar. The vast majority of events you will import through feeds and .ics files, however, should import just fine.


This concludes our 5-part series outlining improvements to the Calendar you can expect to see with the release of IP.Board 3.2.0. While we hope you enjoy the improvements being made to Calendar in IP.Board 3.2.0, please do not be discouraged if we have not added something you were hoping to see. There are many more improvements that we can make in future versions and just because something wasn't added this time around doesn't mean you won't necessarily see it in IP.Board 3.3.0 or beyond!

Let us know your thoughts in the comments area, and if you missed out on the previous blog entries regarding Calendar, feel free to take a moment to catch up:

Feel free to comment on this blog entry below or, if you have feedback unrelated to this blog entry, start a new topic in our feedback forum. Be sure to check the What's New in IP.Board 3.2 topic for a running list of announced changes!

  • Create New...