Stay organized with collections
Save and categorize content based on your preferences.
Calendar API offers several concepts that are primarily useful for
Google Workspace
customers. These customers often have
resources—rooms, projectors, and so forth—that they may wish to
book for specific events. Furthermore, it’s common to build internal apps that
need access to all user calendars in a domain, for example to add corporate
events to them.
Domain resources & rooms
You can book resources and rooms by adding them to events as attendees, using
their email address. When they receive the invitation, they automatically
accept or decline the event based on the availability and access right of the
inviting user.
Accessing domain calendars as an app
An app can access domain-owned calendars without requiring
user credentials if it authenticates using a service
account. The service account must
have the necessary access using domain-wide authority
delegation. In
order to impersonate a user account, specify the email address of the user
account with the setServiceAccountUser method of the GoogleCredential
factory.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-18 UTC."],[],[],null,["Calendar API offers several concepts that are primarily useful for\n[Google Workspace](https://workspace.google.com/)\ncustomers. These customers often have\nresources---rooms, projectors, and so forth---that they may wish to\nbook for specific events. Furthermore, it's common to build internal apps that\nneed access to all user calendars in a domain, for example to add corporate\nevents to them.\n\nDomain resources \\& rooms\n\nYou can book resources and rooms by adding them to events as attendees, using\ntheir email address. When they receive the invitation, they automatically\naccept or decline the event based on the availability and access right of the\ninviting user.\n| **Note:** The Calendar API does not offer a way to create resource calendars. To do this, you need to use the Directory API's [Calendar Resource](/workspace/admin/directory/reference/rest/v1/resources.calendars) object. The calendarId corresponds to the resourceEmail field of the Calendar Resource representation.\n\nAccessing domain calendars as an app\n\nAn app can access domain-owned calendars without requiring\nuser credentials if it authenticates using a [service\naccount](/identity/protocols/OAuth2ServiceAccount). The service account must\nhave the necessary access using [domain-wide authority\ndelegation](/identity/protocols/OAuth2ServiceAccount#delegatingauthority). In\norder to impersonate a user account, specify the email address of the user\naccount with the `setServiceAccountUser` method of the `GoogleCredential`\nfactory."]]