- Home
- Guides
- Reference
- Support
Complete the steps described in the rest of this page to create a simple JavaScript web application that makes requests to the Google Calendar API.
Prerequisites
To run this quickstart, you need the following prerequisites:
- Python 2.4 or greater [to provide a web server]
- A Google Cloud Platform project with the API enabled. To create a project and enable an API, refer to Create a project and enable the API
- Authorization credentials for a desktop application. To learn how to create credentials for a desktop application, refer to Create credentials.
- A Google account with Google Calendar enabled.
Step 1: Set up the sample
To set up the sample:
- In your working directory, create a file named
index.html
. Include the following code in
index.html
:In the code, replace
with the client ID you created as a Prerequisite for this quickstart.
In the code, replace
with the API key you created as a Prerequisite for this quickstart.
Step 2: Run the sample
To run the sample:
- Start the web server using the following command from your working directory:
Python 2.x
python -m SimpleHTTPServer 8000
Python 3.x
python -m http.server 8000
In your browser, navigate to
//localhost:8000
.[optional]. If this is your first time running the sample, the sample opens an OAuth consent screen prompting you to authorize the app to access your data on your behalf:
If you are not already signed in to your Google account, you are prompted to sign in. If you are signed in to multiple Google accounts, you are asked to select one account to use for authorization.
Click Accept. The app is authorized to access your data.
The sample executes.
If you have problems, refer to the Troubleshoot the sample section.
Troubleshoot the sample
This section describes some common issues that you can encounter while attempting to run this quickstart.
Error: origin_mismatch
This error occurs during the authorization flow if the host and port used to serve the web page doesn't match an allowed JavaScript origin on your Google Developers Console project. Make sure you set an authorized JavaScript origin and that the URL in your browser matches the origin's URL.
idpiframe_initialization_failed: Failed to read the 'localStorage' property from 'Window'
This error occurs when 3rd party cookies and data storage aren't enabled in your browser. These options are required by the Google Sign-in library. For further information, refer to 3rd party cookies and data storage.
idpiframe_initialization_failed: Not a valid origin for the client
This error occurs when the domain registered as a Prerequisite doesn't match the domain being used to host the web page. Ensure that the origin you registered as a Prerequisite matches the URL in the browser.
This app isn't verified
If the OAuth consent screen displays the warning "This app isn't verified," your app is requesting scopes that provide access to sensitive user data. If your application uses sensitive scopes, your app must go through the verification process to remove that warning and other limitations. During the development phase, you can continue past this warning by selecting Advanced > Go to {Project Name} [unsafe].
Further reading
For further information on the APIs used in this quickstart, refer to the Google API Client Library for JavaScript section of GitHub.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2022-07-29 UTC.
[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"Missing the information I need" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"Too complicated / too many steps" },{ "type": "thumb-down", "id": "outOfDate", "label":"Out of date" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"Samples / code issue" },{ "type": "thumb-down", "id": "otherDown", "label":"Other" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"Easy to understand" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"Solved my problem" },{ "type": "thumb-up", "id": "otherUp", "label":"Other" }]