How can i copy an item from one list to another list,I want to archive this item after 365 days of modified date of any item in the list.this i have to be do with Custom Timer job. can you please suggest how would i do this.

  • I do have the same Requirement. i tried Like this but still unable to acheive the same. Canyou please help me on this Jun 3, 2013 at 6:45

3 Answers 3


I suggest you to use google...

Basically make a TimerJob in Visualstudio, write your code there and let this job run once a day.


  1. get list
  2. check if an item hasn't been modified since 365 days.
  3. move to other list

Look into information management policies. That is what they are designed to accomplish.

  • iam using sharepoint foundation 2010,as i know that there was no option of Information management policies in foundation..can u suggest through custom timer jobs
    – Naresh
    Aug 23, 2012 at 5:01

@Gwny have an pretty good answer but you could also manage it with Powershell.

"PowerShell: This is the best option when it comes to copying list in your SharePoint site. Here is what you need to do."

Get an instance of the SharePoint Site Collection using SharePoint SPSite object. Open the root web. Save the list that you want to copy as a template using SaveAsTemplate method of SPList. Get a reference to the list template that is created. Add a list using SPListCollection.Add Method (String, String, SPListTemplate). When successful, this method will display the list GUID. Update the root web using SPWeb.Update

The code below only copy the list, if you want to achieve only the items you have to check each item in the list.

#//Replace the URL with your real site collection URL
$siteURL = "http://sitecollectionURL"
#//Replace the list title with your list title in site collection
$sourceListTitle = "My List Title"
$targetListTitle = "My Target List Title"

$site = New-Object Microsoft.SharePoint.SPSite($siteURL)
$web = $site.OpenWeb()
$sourceList = $web.Lists[$sourceListTitle]
$listTemplate = $site.GetCustomListTemplates($web)[$sourceListTitle]
$web.Lists.Add($targetListTitle, $targetListTitle, $listTemplate

Then set the Scheduled task to run each 365 day.



  • 1
    Do you mean "Scheduled task" for triggering it? Aug 8, 2014 at 12:40
  • thats correct, I'll edit my answer
    – Plexus81
    Aug 8, 2014 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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