Take the 2-minute tour ×
Web Applications Stack Exchange is a question and answer site for power users of web applications. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer

up vote 1 down vote accepted

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:

username,firstname,lastname,password
bobsmith,bob,smith,bobrawks!

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), 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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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