I found the solution. A good example of this can been seen with the current YouTube example on the Google Api Java Client example.
http://code.google.com/p/google-api-java-client/wiki/SampleProgram
The missing part of the puzzle was having to:
- Extend the GoogleUrl class (I used CalendarUrl)
- Create objects that match the jsonc output of thefeed (you can get the jsonc output by appending &alt=jsonc to theend of the feed URL)
- Annotate (@Key("NameOfField")) the objects from step 2 to match jsonc names
Once you've done that, the following code will build and get everything that you need:
HttpTransport transport = new NetHttpTransport();final JsonFactory jsonFactory = new JacksonFactory();HttpRequestFactory factory = transport.createRequestFactory(new HttpRequestInitializer() { @Override public void initialize(HttpRequest request) { // set the parser JsonCParser parser = new JsonCParser(jsonFactory); request.addParser(parser); // set up the Google headers GoogleHeaders headers = new GoogleHeaders(); headers.setApplicationName("Google-CalendarSample/1.0"); headers.gdataVersion = "2"; request.setHeaders(headers); }});CalendarUrl url = new CalendarUrl(YOUR_FEED_URL);HttpRequest request = factory.buildGetRequest(url);CalendarFeed feed = request.execute().parseAs(CalendarFeed.class);