I am using Google Agenda as the central repository for the milonga.be Belgian tango agenda, which I edit together with half a dozen other tango enthusiasts. While the principle of a central, hosted calendar storage works wonderfully, I (have to) use a modified PHPiCalendar to display different views on the agenda (‘only Brussels’, ‘only workshops’, ‘1 week in advance’, ‘1 month in advance’, …). There are actually a couple of features that I’d like to see in Google Agenda, and what better place to list them but here:
Currently an event in the agenda has the fields Title, Date/time (with recurrency, if any) , Location and Description. What I really miss is Tags (or categories, keywords, whatever you want to call them). Tags would allow me to attribute events to categories so that I can easily slice and dice them: only display the “milonga’s”, the events in Antwerp, the events in a specific place. Now I had to write a modified ‘filtered printable view’ for PHPiCalendar so that I can search on specific words in the event title, but that is really a hack. E.g. I now ask every editor to create the event titles as
“[TYPE]: [name of the event] @ [LOCATION]”
so that I can filter on “CONCERT:” or “@ Gent”. With the tags “concert, gent, polariteit, openair” it would be so much easier.
The iCalendar specification even mentions a ‘Categories’ field, although Google Agenda currently does not use it.
Currently you can only get the URL of the full ICS feed, nor do the ‘Calendar’ or ‘Agenda’ view allow you to filter the output on a certain date, keyword in the title or location. And sometimes I only need to have the feed or data for events in the future, to be exact, 1 month in the future. While we’re talking about the Remix part (see above): how about ‘Merge’? I could take the ICS feed for tango festivals (which is maybe not hosted on Google), merge it with my feed, and show both in 1 view, with -say- different colours. I also suggest an ‘Expand’ option: instead of listing a recurring event in 1 record with the recurrence data attached, expand it as N separate events, so that it’s easier to work with. An example: if I want the events for the next two weeks, I don’t want an entry ‘Every Thursday at 8PM’, I want two entries: one for the next Thursday, listed with all the other events for that Thursday, and one for the week after.
An example of URL syntax:
RSS feeds are made for things that happened (in the past) and a calendar is mostly used for things that WILL happen (in the future). This means that an RSS feed with dates in the future looks rather weird. The way Google solved this for their RSS feeds (which they indicate with the XML icon – bad practice!) is to use as the date, the moment the event was added to the agenda, regardless of when the actual event takes place. So it is not necessarily a feed of ‘upcoming events’ but rather of ‘recently added events’. I would allow the user to select a ‘future RSS’ format for the next 10 upcoming events, or the next 7 days. There are so many tools that can do neat stuff with RSS feeds, it’s a pity you can’t use them in the logicl, intuitive way now.
The agenda also needs a public REST API for reading and writing to the service. There is a Google Agenda REST API. i should have looked better. Maybe I should dive into the PHP client library. But an API is made for a different audience than the filter features I requested above.
Let’s see what happens when Google Agenda goes out of Beta…