FIRST ATTEMPT AT A WORDPRESS PLUGIN, THE IDEA

As I mentioned earlier, I’m having a go at writing a WordPress plugin, which is something I’ve never done before. The reason I’m doing this is that I can’t find a plugin or other solution that will display Google Calendar data on a WordPress site I am developing quite the way I want.

The functionality I need is fairly similar to the ICS Calendar plugin, in that I need a full page calendar grid, containing events. However, I may also need a widget type thing to display a smaller grid or list of a few upcoming events and ICS Calendar can’t do this. kosze upominkowe

I was hoping to use .ics files as the sources of calendar data for my plugin, as this would mean that it could be used with other calendars, rather than just Google Calendar, but I can’t seem to find a robust, reliable .ics parser and I don’t fancy writing my own. So, I’ll only be dealing with Google Calendar XML feeds and parsing them with SimplePie, which, rather handily, is included in WordPress installations.

Also, I came across SimplePie GCalendar, which provides some handy helper methods for dealing specifically with Google Calendar feeds. Chwilówki

So, after finding all these bits and bobs and messing about with some code, I have a better idea of what I think the plugin will be able to do, here’s a list:

Display a calendar grid containing events on a page
Display a list of events on a page
Display a small grid of events in a sidebar widget
Display a list of events in a sidebar widget
I’m also hoping that it will be able to handle multiple feeds, so you could have a full page calendar displaying data from one feed, and then a sidebar widget displaying a list of upcoming events from an entirely different feed, for example.

I definitely have a more solid idea now of the functionality and I can sort of picture how it will work in my mind. Now I just need to find out how the heck to write a WordPress plugin… to the Codex!

Update – I have now developed and released this plugin (Google Calendar Events). Take a look at the plugin homepage for more details.