{"action":"closed","issue":{"url":"https://api.github.com/repos/google/google-api-nodejs-client/issues/441","labels_url":"https://api.github.com/repos/google/google-api-nodejs-client/issues/441/labels{/name}","comments_url":"https://api.github.com/repos/google/google-api-nodejs-client/issues/441/comments","events_url":"https://api.github.com/repos/google/google-api-nodejs-client/issues/441/events","html_url":"https://github.com/google/google-api-nodejs-client/issues/441","id":89583424,"number":441,"title":"calendar.events.list multiple extendedProperty queries","user":{"login":"afloyd","id":1231004,"avatar_url":"https://avatars.githubusercontent.com/u/1231004?v=3","gravatar_id":"","url":"https://api.github.com/users/afloyd","html_url":"https://github.com/afloyd","followers_url":"https://api.github.com/users/afloyd/followers","following_url":"https://api.github.com/users/afloyd/following{/other_user}","gists_url":"https://api.github.com/users/afloyd/gists{/gist_id}","starred_url":"https://api.github.com/users/afloyd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/afloyd/subscriptions","organizations_url":"https://api.github.com/users/afloyd/orgs","repos_url":"https://api.github.com/users/afloyd/repos","events_url":"https://api.github.com/users/afloyd/events{/privacy}","received_events_url":"https://api.github.com/users/afloyd/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-06-19T14:54:12Z","updated_at":"2015-10-22T17:40:23Z","closed_at":"2015-10-22T17:40:23Z","body":"With the current implementation, it's not possible to query multiple `privateExtendedProperty` fields... Per https://developers.google.com/google-apps/calendar/v3/reference/events/list, each additional query for another field should be added to the query string. \r\n\r\nHowever, due to the nature of JavaScript object it's not possible to supply the `list` method of the Calendar v3 implementation the privateExtendedProperty multiple times in a single object with a string value.\r\n\r\nThis currently works for a single property:\r\n```\r\ncalendar.events.list({\r\n\tcalendarId: 'xyz@group.calendar.google.com',\r\n\tprivateExtendedProperty: 'userId=55'\r\n}, function(err, data) {\r\n\tif (err) return console.error(err);\r\n\tconsole.log(data);\r\n});\r\n```\r\n\r\nHowever, you cannot specify `privateExtendedProperty` multiple times such as:\r\n```\r\ncalendar.events.list({\r\n\tcalendarId: 'xyz@group.calendar.google.com',\r\n\tprivateExtendedProperty: 'first=john',\r\n\tprivateExtendedProperty: 'last=doe' // duplicate property, will just overwrite previous one\r\n}, function(err, data) {\r\n\tif (err) return console.error(err);\r\n\tconsole.log(data);\r\n});\r\n```\r\n\r\nProposed solution (somewhere around here: https://github.com/google/google-api-nodejs-client/blob/master/lib/apirequest.js#L176)... If `privateExtendedProperty` or `sharedExtendedProperty` is an array then split out the contained strings to be appended to `request`'s `qs` property so it's works per the Calendar API specs. If not an Array and just a String then do nothing as it works as currently coded for single sharedExtendedProperty or privateExtendedProperty query.\r\n```\r\ncalendar.events.list({\r\n\tcalendarId: 'xyz@group.calendar.google.com',\r\n\tprivateExtendedProperty: ['first=john', 'last=doe'],\r\n\tsharedExtendedProperty: ['donutType=chocolate', 'filling=strawberry']\r\n}, function(err, data) {\r\n\tif (err) return console.error(err);\r\n\tconsole.log(data);\r\n});\r\n```"}}