SharePoint Online: Find Unused Lists based on Last Modified Date

Requirement: Find Unused SharePoint Online Lists based on Last Modified Date

How to Get the List Last Modified Date in SharePoint Online?

Are you looking for a way to clean up your SharePoint Online site? Maybe you’re finding that it’s becoming cluttered with unused lists. Or possibly, you’d just like to get rid of any old or irrelevant lists before they start causing problems. In this article, we will show you how to find unused lists in SharePoint Online based on their last modified date. This can help free up storage space and improve performance on your site.

Go to the “Site Contents” page (https://tenant.sharepoint.com/_layouts/15/viewlsts.aspx) of the site either from the left navigation or from the site settings menu of the site, which lets you get the last modified date of all lists on the site.

sharepoint online list last modified date

SharePoint Online: Get List Last Modified Date using PowerShell

You can get the last modified date value of a SharePoint Online list using PnP PowerShell as,

#Set variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$ListName = "Documents"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive 

#Get the List Last modified date         
(Get-PnPList -Identity $ListName).LastItemUserModifiedDate

How about getting the last modified date for all lists in a site? This time let’s use the CSOM PowerShell script:

#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Variables 
$SiteURL ="https://crescent.sharepoint.com/sites/marketing"
 
Try {
    #Setup Credentials to connect
    $Cred= Get-Credential
  
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
          
    #Get all lists from the Web
    $Lists = $Ctx.Web.Lists
    $Ctx.Load($Lists)
    $Ctx.ExecuteQuery()

    #Iterate through Lists
    ForEach($List in $Lists | Where {$_.hidden -eq $false})
    {
        #Get List last modified date
        Write-Host $List.Title  "Last Modified: " $List.LastItemUserModifiedDate
    }
}
Catch {
    write-host -f Red "Error:" $_.Exception.Message
}

Once you have identified unused lists, you can delete them from the SharePoint Online site: How to Delete a List in SharePoint Online using PowerShell?

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

4 thoughts on “SharePoint Online: Find Unused Lists based on Last Modified Date

Leave a Reply