I would like to clean up old reports on an annual basis. Is there a way to move old reports to a separate folder where after 30 days I would go and do a mass delete?
You can query for this information in
Apex, and you could send out an email alert via a scheduled job for reports that have gotten stale. Here is the
SOQL you would need to find anything that hasn't been run in the last 30 days:
SELECT Name, FolderName FROM Report WHERE LastRunDate < LAST_N_DAYS:30
If you want to change the folder or delete anything via
Apex, you will need to use the Metadata API.