Thanks Ray.
I've got things working so that I can execute a REST call wrapped in cURL, to get the public calendar feed. I'm using json_decode() to parse the results. It seems to work well. I'm still using a developer key but I'll try taking that out and seeing if it still works.
I'd like to see Google document this approach better - they suggest that you can use REST but they don't say the calls need not be authenticated and they don't give any examples using PHP. The only thing remaining is to cache the results in a DB so the REST call doesn't have to be executed every time a visitor browses to the page.