If you have a valid app registered in the google cloud console, and a set of credentials, you can try this after making sure that "https://www.wolframcloud.com/objects/forms/oauth/verifier20/" is added to the list of valid redirect uris in your app:
googleKey = "heregoesyourkey.apps.googleusercontent.com";
googleSecret = "GOCSPX-3-HERE-GOES-YOUR-SECRET";
googleSAK =
SecuredAuthenticationKey[<|"Name" -> "GoogleCalendar",
"OAuthType" -> "ThreeLegged", "OAuthVersion" -> "2.0",
"ClientCredentials" -> <|"ConsumerKey" -> googleKey,
"ConsumerSecret" -> googleSecret|>,
"ResponseType" -> "code",
"Scopes" -> {"https://www.googleapis.com/auth/calendar", "https://www.googleapis.com/auth/calendar.readonly"},
"ScopeDelimiter" -> " ",
"VerifierInputFunction" -> Automatic,
"AccessTokenURL" -> "https://www.googleapis.com/oauth2/v4/token",
"UserAuthorizationURL" -> "https://accounts.google.com/o/oauth2/v2/auth"|>]
ServiceExecute["GoogleCalendar", "CalendarList", Authentication -> googleSAK]
Unfortunately, support for refreshing access tokens (like google's case which expires after an hour) is yet to be properly handled. So, you will have to refresh your service connection each time your token expires. The plan to improve and optimize this is on the roadmap but will not be available as soon as I would like to promise you.
If there's any other inquiry, feel free to email me at juanl@wolfram.com,
Regards,
Juan