App Engine 1.5.3 SDK Released


New App Engine release. You might have noticed that the rate of releases has gone up slightly in the past few months. We’ve made some changes internally so we are looking to push out a new release every month. This month includes a few Datastore updates, some changes to Blobstore API and Memcache API, and finally a new feature for the Java developers.

Python and Java Changes

  • Blobstore API – We’ve removed the limits on the size of blob uploads. You can now upload files of any size, allowing your app to serve images, video, or anything your internet connection can handle.

Datastore Changes

  • Index retrieval – We’ve added the ability for you to programmatically retrieve the list of indexes you’ve currently defined in the datastore, as well as their statuses.
  • Datastore Admin – You can now enable the Datastore Admin function from the Admin Console. This will allow Java users to make use of this functionality, like deleting all entities of a certain kind, without having to upload a Python version of their application. And for Python developers, you no longer need to enable this in your app.yaml file.
  • HRD Migration Trusted Testers – We are seeking early adopters to try out an improved HRD migration tool that requires a read-only period relative to your datastore write rate (as opposed to your datastore size, which is how the current version behaves). Please see the release notes for more information.

Python Updates

  • Memcache API – We now support the CAS (compare-and-swap) operation in our Python Memcache API (Java already had it). This can be used to update a value in Memcache only if no other requests have updated it between when the value was retrieved and when you go to update it.


  • Download app – Using the AppCfg download_app command, you can download any files that were uploaded from your war directory when you last updated the app version.

This release also contains small updates and bugfixes for both Python and Java so be sure to check out the full release notes. Feedback, discussion, and questions can be posted in our Google Group.

New Free-Busy feed for the Google Calendar API

There is now a convenient way to query free-busy information from Google Calendar. The new Google Calendar free-busy feed allows you to query blocks of busy time for one or multiple users, or for all the users subscribed to a Google Group in a single request.

This new Google Data feed is accessible through the URL pattern
where “userID” is the email of the calendar you’d like to request the free-busy information of. The response will be an entry containing temporal blocks indicating the periods when the user is marked as busy in their Google Calendar. Visit our Developer’s Guide for more details and code samples about the free-busy feed.

You can also query free-busy information for multiple users in a single query using a batch request. The URL to use for such a batch request is:

Below is a sample batch request, requesting free-busy information for Liz, Bob and Luke:

This allows you, for example, to find common free time between multiple users in one single request to the Google Calendar API, which was not possible with previously existing feeds.

For example, the response from the batch request above would look like:  2010-03-13T00:00:00.000Z     … updated, category, self link, author and batch info ...                                            … Free-busy entry content for Bob ...    … Free-busy entry content for Luke ...

The response contains an entry for each requested calendar’s free-busy feed. Each of these entries contains blocks of time where the user is marked as busy in his Calendar for the next 24 hours.

Google Apps for Business domain users are also able to query free-busy information for all the members of a given Google Group in a single request. This feature is available through the following URL pattern: Where “groupID” is the email of the Google Group.

The response will be a feed containing the free-busy entries of each member of the group. To learn more about querying free-busy for groups please visit our Developer’s Guide.

KML, Traffic, and Bicycling layers come to Maps API v3

Since being formalized as an Open Geospatial Consortium standard, KML has become something of a lingua franca for geospatial information. From humble beginnings in Google Earth, KML support can now be found in a wide variety of mapping products and services. Today we’re happy to add Maps API v3 to this list with the introduction of the new KmlLayer class. The KmlLayer class enables KML or GeoRSS files that are hosted on publicly accessible web sites to be rendered in a Maps API v3 application.

The KmlLayer class is just one of several new layer classes we’re adding to Maps API v3 today. A layer class handles a collection of overlays that are added to the map as a single entity. In addition to the KmlLayer class, we are also adding a TrafficLayer class and a BicyclingLayer class.

The TrafficLayer class adds real time color coding of traffic speed on highways and major arterial roads. The BicyclingLayer class adds information about bike trails, lanes and recommended roads for bicyling onto the map:

  • A dark green line indicates a dedicated bike-only trail;
  • A light green line indicates a dedicated bike lane along a road;
  • A dashed green line indicates roads that are designated as preferred for bicycling, but without dedicated lanes

If you generate bicycling routes using the DirectionsService class, and display them on the map using a DirectionsRenderer, the BicyclingLayer is now added to the map with the route.

You can use the map below to try out these new layers and check how your own KML files are rendered by the KmlLayer class:

If you have any questions about these new layers, or the Maps API v3 in general, we recommend that you join the Maps API v3 Google Group. For more information about KML, check out the KML Tutorial.

Posted by Thor Mitchell, Maps API Product Manager