Published in
Google, Google Calendar, Programming, Technology, Travel, Web
I’ve recently put together a web-application and am looking for beta testers. Instead of doing the super-private sign-up here and we’ll maybe let you in beta testing, I’m doing the “you came across/read this blog so may be interested in trying out a cool app” signup.
Think Calendar and Traveling.
If you’re interested, and actively use (or will start using) GoogleCalendar, or an iCal program like Appl iCal, Sunbird, AOL Calendar, et al. then drop me an email at: testing@highearthorbit.com and I’ll let you in on the info.
The idea is I want to test with a small number of “cutting edge” users before releasing it public. It’s easier to fix bugs and answer support requests that way. 
Published in
Google, Google Calendar, Programming, Technology, Web
There is now a GoogleCalendar API. They also cleaned up their XML. This is very exciting, as to date I was having to parse a lot of the data by hand in the summary field. Of course, “API” is loosely used here, as really they’re just publishing a specification of their feed format.
For example the date is now its own tag:
<gd:when startTime='2006-04-17T15:00:00.000Z'
endTime='2006-04-17T17:00:00.000Z'></gd:when>
And the location is either as simple as a name:
<gd:where valueString='The best pad'></gd:where>
The format specifies possible advanced location encoding via GeoPoints, postal address, primary and alternate locations.
<gd:postalAddress>
22646 Woodward Ave.
Ferndale, MI 48220
</gd:postalAddress>
up to:
<gd:where rel="http://schemas.google.com/g/2005#event"
valueString="Woodward Ave Brewers">
<gd:entryLink href="http://local.example.com/10018/JoesPub">
<id>http://local.example.com/10018/WoodwardAveBrewers</id>
<category scheme="http://schemas.google.com/g/2005#kind"
term="http://schemas.google.com/g/2005#contact"/>
<content>Good beer</content>
<link href="http://www.woodwardavenuebrewers.com"/>
<gd:contactSection>
<gd:postalAddress> 22646 Woodward Ave., Ferndale,
MI 48220</gd:postalAddress>
<gd:geoPt lat="40.75" lon="-74.0"/>
<gd:phoneNumber>(212) 555-1212</gd:phoneNumber>
<gd:email address="info@woodwardavenuebrewers.com"/>
</gd:contactSection>
</gd:entryLink>
</gd:where>
This makes it much nicer for parsing. The API even allows for adding new events to a calendar.
Update: you have to make sure and grab the full version of the Calendar feed and not the basic
version. The Basic version contains the same old wonkiness. However, the full version is the new yummy XML-ified version. You select this by changing the last tag on the URI.
Basic:
http://www.google.com/calendar/feeds/username@gmail.com/private-magicCookie/basic
vs.
Full:
http://www.google.com/calendar/feeds/username@gmail.com/private-magicCookie/full
Published in
Google, Google Calendar, Programming, Technology
Update: - Google has added a full mode (replace basic in the feed XML url) which provides very nice XML. startDate and endDate are attributes of the gd:when tag. Also, another nice thing was the expansion of recurring events by specifying a window of dates to query. The events are both marked as recurring (and still using iCal recurring format) as well as specifically placed at each recurring event time. This allows devs and users to quickly use the XML feed and provide recurring events without having to deal with that massive hoard of confusing logic (every other Tuesday in April and June except on the 3rd Tuesday of June)
I spent the weekend digging further into the Google Calendar tidbits and putting together a project. There are some odd things about the XML output.
The actual date and time of the event are stored as plain text in the summary node:
When: 2006-05-14 20:30:00 to 2006-05-14 22:30:00
Who: Where: Boston Logan Airport, Boston, MA
Event Status: CONFIRMED
Why didn’t Google use some form of XML, perhaps inspired by the Microformats hCalendar format? This is especially important because as Google demonstrated, it seems to change between using <br> to properly formed <br/> tags (breaking my parsing code).
What is even more puzzling are recurring events:
Recurring Event
First start: 2006-04-18 09:00:00
Duration: 5400
Who: Public,Where: Warren, Michigan
Event Status: CONFIRMED
There is no actual output of the ending date, or type of recurrance the appointment has. iCal specifies it as the following:
DTSTART;TZID=America/New_York:20060418T090000
DURATION:PT5400S
RRULE:FREQ=WEEKLY;BYDAY=TU;UNTIL=20060627T130000Z
which covers all the pertinent information for recreating the output. This is perhaps why the Google Calendar homepage add-in doesn’t yet support recurring events. It’s currently impossible to!
And don’t trying going to http://schemas.google.com/, which is where the schema tag points to.
Lastly, it would be very nice if the If-None-Match request-header was honored for updating the calendar RSS feeds.
Hopefully Google fleshes this out soon.