Rules

Secret ingredients to quality software

Edit
Info

Do you clean useless calendars in SharePoint?

Last updated by Ulysses Maclaren on 09 Dec 2015 11:13 pm (over 5 years ago) See History

Most SharePoint site templates contain a calendar list, this will bring lots of useless calendars.

Use the below PowerShell script to clean them:

$site = Get-SPSite("http://<site collection URL>/"); # Specify url here
foreach ($web in $site.AllWebs) {    
    $lists = $web.Lists
    for ($i=($lists.Count-1);$i -gt 0; $i--) {  
        $list = $lists[$i]
        #Write-host $i  $list.Title $list.BaseTemplate.ToString()
        if ($list.BaseTemplate.ToString().ToLower().contains('events')) {      
            if ($list.Items.Count -eq 0)
            {
                Write-Host $list.Items.Count "items in the list" $list.Title '('$list.BaseTemplate') at '$web.Url "- cleaning it!"
                $list.Recycle()
                #$list.Delete()
            }
        }
    }
}

This script will put the calendars which do not have any events into Site Settings | Recycle Bin : EmptyCalendarsInRecyckeBin Figure: Empty Calendars in Recycle Bin folder

William YinWilliam Yin
Brendan RichardsBrendan Richards

We open source. This page is on GitHub