I have a shared calendar, of which is shared to a internal group: office.usa

When adding new employees to our organization, I want them to see that shared calendar by default.

However, they do not see it, even that they are included in the group (for the order of things, they were added to the group -> after the group was shared, but I feel this does not need to be an issue)

Is there a way to accomplish that?


This is a problem I've encountered as well. When a calendar is shared with a user directly, it also adds the calendar to the user's calendar list. Sharing the calendar through a group bypasses this step.

You can do this programmatically using Google Apps Manager as part of your provisioning process. These three commands below will create a user, add them to the group that gives access to the calendar, and add the shared calendar to the user's calendar list.

gam create user <user email address> firstname <First Name> lastname <Last Name> password <Password>
gam update group <group> add member user <user email address>
gam user <user email address> add calendar <calendar email address> selected true hidden false

Note that the "calendar email address" referenced above is the unique address associated with the calendar. You can find it by going to the settings page for that calendar (blue circle > red box): enter image description here

Next scroll down until you get to the "Calendar Address" section. The email address is listed after "Calendar ID:" enter image description here

If you want to make this even easier, you can script the GAM commands with Powershell. If you had a file (provisioning.csv) like the following:


And a powershell file (createuser.ps1) like the following:

$list = Import-Csv provisioning.csv
foreach ($entry in $list)
    .\gam.exe create user $($entry.username) firstname $($entry.firstname) lastname $($entry.lastname) password $($entry.password)
    .\gam.exe update group <group> add member user $($entry.username)        
    .\gam.exe user $($entry.username) add calendar <calendar email address> selected true hidden false        

Just open the powershell cli (powershell.exe or PS), cd to the directory where provisioning.csv and and createuser.ps1 reside, and type .\createuser.ps1 to execute the script.

You may need to configure Powershell to accept unsigned scripts.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.