• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 3048
  • Last Modified:

Push Exchange user shared calendars to all mailboxes

Ok Exchange 2010 guru's, I have a challenge. The President of my company wants everyone to share their calendars and either give full view, restricted, or just show free/busy depending on who they are. This is the easy part.

We want all users to have everyone's calendars showing in groups, by department (calendar group) in outlook's calendar view. The challenge is this: I would like to be able to execute an EMS command that will be able to copy the settings from one mailbox to another, or simply write a command that will add all of the user's shared calendars to each mailbox calendar view. Or any other way to automate the process rather than manually adding all calendar groups, and calendars to each mailbox through outlook logged in as that user.

Our HR Manager had this at her previous company and said that the IT department pushed that out to everyone so that they didn't have to add them all manually.

Please let me know if there is any way to do this. I can't find any reference to it anywhere online. THANK YOU!
  • 6
  • 3
1 Solution
Simon Butler (Sembee)ConsultantCommented:
Ah, the old "it was done at my old company so you must be able to do it" excuse. This is probably the same place the idea came from.
The end user probably has a hazy memory, doesn't remember that IT sat at every machine for 30 minutes or they were not even using Exchange! (It sounds like something Lotus Notes can do).

As far as I am aware, it isn't possible to do what you have asked. Certainly not from Exchange.
You may be able to write a script to do something in Outlook to do it, but it isn't anything I have seen, certainly not the grouping of calendars.
Shared Calendar display is a client side setting, not a server side setting.

If it can be done, your best chance of getting there would be using the Office Customization Tool for Office 2010
timgbaldwinAuthor Commented:
Have not had a chance to try this but I will next week. Thanks!
Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

timgbaldwinAuthor Commented:
I looked at the Office Customization Tool and this is only for initial setup. For instance to insert the product key, company name, etc.
The only way I can see to get this done using groups is to create a powershell script that will enumerate all the individuals in a user group, then apply calendar permissions to each of those users.  You'd have to invoke this script each time you want permissions modified.

From the conceptual level this would be:
Read AD Group CalendarLimitedDetails
For each user in group {
Set-mailboxfolderpermissions ...

There is no direct method of applying calendar permissions to groups of people, because calendar permissions are assigned within the users mailbox inside the exchange database, and that mailbox entry has no outward visibility to Active Directory - a mailbox cannot query AD for information, so therefore it has no method of enumerating a user group when applying access permissions.

Get-ADGroupMember -Identity "Calendar_LimitedDetails" | ForEach-Object { 
    $mb = Get-Mailbox -Identity $_.distinguishedName
    set-MailboxFolderPermission -Identity "${mb}:\Calendar" -User Default -AccessRights LimitedDetails

Open in new window

The Variable "LimitedDetails" is defined by Microsoft and can be any of the following:
{Variable} 		{Rights Granted}
None 			FolderVisible
Owner 			CreateItems, ReadItems, CreateSubfolders, FolderOwner, FolderContact, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
PublishingEditor 	CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
Editor 			CreateItems, ReadItems, FolderVisible, EditOwnedItems, EditAllItems, DeleteOwnedItems, DeleteAllItems
PublishingAuthor 	CreateItems, ReadItems, CreateSubfolders, FolderVisible, EditOwnedItems, DeleteOwnedItems
Author 			CreateItems, ReadItems, FolderVisible, EditOwnedItems, DeleteOwnedItems
NonEditingAuthor 	CreateItems, ReadItems, FolderVisible
Reviewer 		ReadItems, FolderVisible
Contributor 		CreateItems, FolderVisible

The following roles apply specifically to calendar folders:
AvailabilityOnly 	View only availability data
LimitedDetails		View availability data with subject and location

Open in new window

The default value for calendar access permissions is "AvailabilityOnly"
timgbaldwinAuthor Commented:
I'm still looking for an answer to this. If I could just figure out how to create calendar groups, and open shared calendars for each user in powershell, (EMS), then we could script this to open all that are needed without user intervention. I'm not a powershell expert, so I'm calling on the gods to help me...
timgbaldwinAuthor Commented:
Sorry Jrhelgeson, I just saw your post, I probably just didn't refresh. The permissions are not a problem since I can set those with EMS for each user. It's clunky, but it works..

My main problem is just getting the shared calendars to be opened for each user in Outlook and grouped by department. I know these settings are stored on the server since the user can open outlook on any computer and the opened calendars are the same.

 I don't mind scripting this, if we could just find a command to create a calendar group, then to open shared calendars under this group. Thanks for your time and help with this! I think the community would eventually benefit from this if we can find the answer!
My main problem is just getting the shared calendars to be opened for each user in Outlook and grouped by department.
No surprise but you are not the first person to want this, and I have not yet found any method to accomplish this.

I know that Exchange 2010 uses a 'hidden mailbox' to store this information, but have not found any method to directly manipulate that information. The only thing I could think to do is run every command I can think of against a user mailbox and log all the settings, modify their calendar then re-run the powershell commands and compare the results...  I don't hold much hope for that though.  I'm almost certain it would have to be a MAPI utility of some sort.

I think the community would eventually benefit from this if we can find the answer!
Hear hear!

timgbaldwinAuthor Commented:
The best that we could come up with is to create a knowledge base article explaining how to create the groups (departments), then copy paste the list of user names from each department in the "open calendar" dialog, so they wouldn't have to hunt for each user to add to each group. Each user can get this done in about 5 minutes, if someone just takes a few minutes to create a list of users for each department, and make the list accessible to them.  The only problem of course is when new hires arrive, or employees leave the company, the list needs updated.

We then emailed the users and advised them that the new article existed and to please perform these steps.
timgbaldwinAuthor Commented:
Because there is no true answer for the question I proposed. My solution is a work around.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Creating Active Directory Users from a Text File

If your organization has a need to mass-create AD user accounts, watch this video to see how its done without the need for scripting or other unnecessary complexities.

  • 6
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now