Syncing SharePoint 2013 with Outlook 2013 is very simple! I can just click 'Connect to Outlook' in the ribbon and it's that easy: http://office.microsoft.com/en-ca/office365-sharepoint-online-small-business-help/synchronize-sharepoint-content-with-outlook-HA102774420.aspx

However besides my own, I want each user in my site collection to have their Outlook calendar in SharePoint. Is there a way to do this automatically or programatically? Can it be done with My Sites? Do I create a new Calendar list for each user and somehow sync with some code? If I sync every user's Outlook calendar into one list, that may get bloated as I have ~ 1000 users.

Any suggestions or direction is greatly appreciated.

1 Answer 1


At first, you must create My site to all users.

foreach($profile in $AllProfiles) 
    $AccountName = $profile[[Microsoft.Office.Server.UserProfiles.PropertyConstants]::AccountName].Value     
        if($profile.PersonalSite -eq $Null) 
            write-host "Creating personel site for  $AccountName"  
            write-host "Personal Site Admin has assigned"  
            Write-Warning "$AccountName already has personel site" 
        Write-Error "Failed to create personal site for '$AccountName'" 

After you can enumerate sites in My site collection and add calendar for each.

$spweb=get-spweb http://yoururl                             
$template = $spweb.ListTemplates["Calendar"]                        
$spweb.Lists.Add("My New Calendar", "New Calendar Description", $template)       
$calendarlist=$spweb.Lists["My New Calendar"]                                      

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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