For a more detailed version of the steps below visit: https://developers.google.com/admin-sdk/directory/v1/guides/delegation
- Enable the necessary APIs (calendar, drive, gmail, etc.) in Cloud Console
- Create a service account, download the json key file, and enable domain wide delegation (DwD)
- Determine the required scopes (calendar readonly, drive read/write, etc.)
- In the G Suite console, an admin authorizes the service account (client ID) with the specified scopes
- The admin also identifies an account — with proper admin privileges — that the service account will impersonate (when you want to access user's data without manual authorization from the user)