3 Ways to Share Google Calendars in Google Workspace

Discover three ways to share Google Calendars in Google Workspace to manage access across teams and personal calendars effectively
The author of the article Chris Shuptrine
Aug 2025
3 Ways to Share Google Calendars in Google Workspace

Sharing calendars in Google Workspace sounds simple until you juggle team schedules, personal calendars, and room resources. Permissions matter. Get them wrong and you expose details; get them right and coordination clicks across teams.

This guide walks through three practical ways to share Google Calendars, when to use each, and how permission levels affect visibility and editing. You’ll learn options for specific people, Google Groups, and organization-wide or public access.

Table of Contents

Use Google Workspace’s UI

Here, you’ll use the Google Calendar web UI to share a calendar with coworkers or your whole organization. These steps follow Google’s own Calendar Help and Admin Help guides.

Open Google Calendar

  • Go to Google Calendar in a browser and sign in.
  • In the left panel, find My calendars. Hover over the calendar you want to share, select the three dots, then choose Settings and sharing.

Share your calendar with specific people or groups

  • In Settings for your calendar, scroll to Share with specific people and groups.
  • Select Add people and groups, enter the email address for a person or a Google Group, pick a permission level, then Send.
  • Permissions you can choose:
    • See only free/busy
    • See all event details
    • Make changes to events
    • Make changes and manage sharing
    • Tip: Share with a Google Group to give or remove access as team membership changes. Google Calendar Help: Share your calendar covers these options.

Make your calendar visible to your organization

  • Still in Settings and sharing, go to Access permissions for events.
  • Check Make available for [your domain].
  • Choose the visibility level:
    • See only free/busy
    • See all event details
    • This makes your calendar discoverable to people in your domain. It does not share it outside your company. Google’s docs call this “Make available for your organization.”

Create and share a team or project calendar

  • In the left panel, select the plus icon next to Other calendars, then Create new calendar.
  • Name it, add a description and time zone, then Create calendar.
  • Open that calendar’s Settings and sharing.
  • Under Share with specific people and groups, add teammates or a Google Group and set their permissions.
  • For most teams, use Make changes to events. Give Make changes and manage sharing only to calendar owners. Google Calendar Help: Create a new calendar shows these steps.

Share just one event instead of the whole calendar

  • Open the event, then use the Guests panel to add people or a Google Group.
  • Control what guests can do with the three checkboxes: Modify event, Invite others, See guest list.
  • This shares only that event. It does not give access to other events on the calendar. See Google Calendar Help: Invite people to your calendar event.

If you do not see certain sharing options

  • Your admin might restrict sharing levels or external sharing. You may only see free/busy or be unable to share outside your domain.
  • Check the calendar’s Settings and sharing again. If options are missing, contact your Google Workspace admin.

Admin: set org-level and external sharing controls

  • In the Admin console, go to Apps, then Google Workspace, then Calendar, then Sharing settings.
  • Set Internal sharing options for primary calendars to control how users can share within your domain.
  • Set External sharing options for primary calendars to control sharing with people outside your domain.
  • Apply settings to specific organizational units if needed, then Save.
  • Google Workspace Admin Help: Control calendar sharing explains each level, including free/busy only and full event details.

Use Torii

Instead of handling this solely in Google Workspace, you can use Torii, a SaaS Management Platform, to share calendars in Google Workspace. SMPs centralize SaaS subscriptions and integrations in one place, making it simple to automate user onboarding/offboarding, review license and subscription details, and more.

Where Google Workspace might require manual steps, Torii lets you automate the process so it runs automatically once a trigger occurs. Triggers could include a new hire, an employee offboarding, or a contract renewal. This saves time when the action needs to happen often.

To share calendars in Google Workspace directly from Torii, follow these steps:

1. Sign up for Torii

Contact Torii, and ask for your free two-week proof-of-concept.

2. Connect your Google Workspace account to Torii

Once your account is live, connect Google Workspace to Torii (assuming you already have an account). Here are the instructions for the Google Workspace integration.

torii google workspace dashboard

3. Create a Torii workflow for Google Workspace

In Torii, create an automated workflow to share calendars in Google Workspace. Go to the Workflows tab, choose a trigger, and then add an action that shares calendars in Google Workspace. From then on, whenever the trigger is met, Torii will update Google Workspace automatically.

creating google workspace workflows in torii

Use Google Workspace’s API

Here, you’ll grant calendar access by creating and managing ACL rules with the Google Calendar API. No UI clicks, just HTTP calls.

Get an OAuth 2.0 access token with the right scopes

Use an access token that represents the calendar owner or an admin using domain-wide delegation. The token needs one of these scopes:

  • https://www.googleapis.com/auth/calendar (read/write, includes ACLs)
  • https://www.googleapis.com/auth/calendar.acl (ACLs only)

Set your token so you can reuse it:

export ACCESS_TOKEN="ya29.a0Af."

Find the calendarId you want to share

You need the calendarId to set permissions.

  • Options:
    • Primary calendar of the authorized user: use primary or that user’s email address.
    • Secondary calendar owned by the user: list the user’s calendars and pick the id.
    • Room or resource calendar: list resource calendars from the Admin SDK, then use that resource’s resourceEmail or calendar ID.

Example curl to list a user’s calendars:

curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/users/me/calendarList"

Example curl to list resource calendars (Admin SDK Directory API; admin token required):

curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://admin.googleapis.com/admin/directory/v1/customer/my_customer/resources/calendars"

Note:

  • For resource calendars, retrieve the resourceEmail or resourceId, then use that as calendarId with the Calendar API.
  • The Admin SDK call above needs one of these scopes:
    • https://www.googleapis.com/auth/admin.directory.resource.calendar.readonly
    • https://www.googleapis.com/auth/admin.directory.resource.calendar

Share the calendar by inserting an ACL rule

Create a permission by calling Calendar ACL insert:

  • Endpoint: POST https://www.googleapis.com/calendar/v3/calendars/{calendarId}/acl
  • Roles: reader, writer, owner (not valid on primary calendars), freeBusyReader
  • Scopes:
    • user: a single user’s email
    • group: a Google Group email
    • domain: your Google Workspace domain, like example.com
    • default: public internet (avoid unless you intend it)

Share with one user as reader:

curl -s -X POST -H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl" \
-D '{
    "role": "reader",
    "scope": { "type": "user", "value": "[email protected]" }
}'

Share with a Google Group as writer:

curl -s -X POST -H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl" \
-D '{
    "role": "writer",
    "scope": { "type": "group", "value": "[email protected]" }
}'

Share free/busy with the whole domain:

curl -s -X POST -H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl" \
-D '{
    "role": "freeBusyReader",
    "scope": { "type": "domain", "value": "example.com" }
}'

Tip:

The ACL id is usually scopeType:scopeValue (for example, user:[email protected]).

List current shares on a calendar

Use this to confirm or find ruleId values for updates:

curl -s -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl"

Update an existing share

Change the role by patching the ACL rule. You need the ruleId from the list call.

curl -s -X PATCH -H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl/user:[email protected]" \
-d '{ "role": "writer" }'

You can also replace the entire rule with PUT.

Remove a share

Delete the ACL rule to revoke access:

curl -s -X DELETE -H "Authorization: Bearer $ACCESS_TOKEN" \
"https://www.googleapis.com/calendar/v3/calendars/primary/acl/user:[email protected]"

Notes that help avoid surprises

  • Primary calendars cannot be reassigned owner. Use reader, writer, or freeBusyReader.
  • For domain-wide changes across user calendars, call these endpoints as an admin with domain-wide delegation and impersonate each calendar owner.
  • Group-based sharing uses Google Group email addresses. Membership changes in the group apply automatically.

Frequently Asked Questions

You have three options to share Google Calendars: use the Google Calendar web UI to add people, use Torii to automate sharing via workflows, or use the Google Calendar API to create ACL rules. Choose by scale and automation needs.

You can choose free/busy only, see all event details, make changes to events, or make changes and manage sharing. Primary calendars cannot be reassigned owner. Pick the least privilege needed to limit exposed information and editing rights.

Use Torii when you need to automate repetitive sharing tasks across hires, offboards, or contract changes. Torii triggers workflows, syncs Google Groups, and applies ACLs automatically, saving manual steps for teams, large orgs, or frequent updates.

Open the event, add guests or a Google Group in the Guests panel, then set guest permissions: modify event, invite others, or see guest list. This shares only that event and does not grant access to other calendar events.

Get an OAuth2 access token with the calendar or calendar.acl scope, determine the calendarId (primary, secondary, or resource), then POST an ACL rule to calendars/{calendarId}/acl with the scope type (user/group/domain/default) and desired role.

Missing sharing options usually stem from admin restrictions or external sharing disabled. Admins can update Apps > Google Workspace > Calendar > Sharing settings in the Admin console, set internal and external sharing levels, and apply controls per organizational unit.