I ran into the same problem as in this post:
Google Calendar api v3 update problem
Namely, as soon as I create an event and update it once using the Google Calendar API (v3), I can no longer update the event. When I try, I get a response of 400 - invalid. (FWIW I work in PHP).
Following the example above, I tried to solve the problem using etags (although, admittedly, my understanding of how they work is limited). In principle, when updating an event, the API returns a response that I now save in my database. Then, for subsequent (n> 1) updates, I pull the current file out of the database and include it in the http header:
Content-Type: application/json Authorization: OAuth [token] If-Match: [etag]
The following is the heading for "Updating Entries" here: http://code.google.com/apis/gdata/docs/2.0/reference.html#ResourceVersioning
Sidenote: In the google feed above, the If-Match title appears as
If-Match: "S0wCTlpIIip7ImA0X0QI"
with double quotes around etag. I store etags in a double-quoted database, just like I get them in the first update response. Do I need to avoid quotes or anything when adding to the header using curl_setopt / HTTPHEADER?
Despite the fact that this etag If-Match option is implemented, I still get the same 400 response - Invalid value. I know that my request authorities are valid because the first update is working fine. There are only some additional problems associated with subsequent updates.
Any help is greatly appreciated.