I have a document library which has a field for Expiry date. This field is not mandatory and is used for our Legal team to identify if the contract is close to expiring.

The Legal team would like to get an email reminder 30 days prior to the expiry date and then also 7 days prior to expiry date if no action has been taken.

What is the best way for me to implement a solution?

I have been thinking of a workflow, but the expiry date may be a year or two in the future? Another thought has been to add an entry to a calendar and then send the email out from here.

I'd like to hear peoples views on their approach.

6 Answers 6


Workflows seem like the right way to do it. This should work no matter how far the expiry date is.

One question is whether the expiry date can be modified later after the workflow has started. If it is the case, you'll need to have two branches in parallel in your workflow: one that will wait for the expiry date, and the other that will force the workflow to stop and restart if the item is changed.

Update: some more detailed explanations can be found here:


  • Can you explain how to create the branches in parallel? I have the problem that when the workflow is updated it remains paused and I can't get the alert to go out at the right time.
    – rgwaldron
    Jan 10, 2012 at 22:09
  • I found the reference and added it to the reply.
    – Christophe
    Jan 10, 2012 at 22:50
  • 2
    Above link is not working. Please add the steps or code here. Thanks May 12, 2016 at 8:39

In my view, The best way to do with a daily timer job.

Over the period if you have many documents(say 1000+), the corresponding queued workflows may cause a performance hit.

  • Hi I require an email to be sent when a date column =today. Could you explain how to do this wit a timer job pls? Nov 18, 2013 at 10:12
  • If you had Nintex Workflow, a scheduled Site Workflow would work as the daily job for you. Apr 15, 2015 at 7:37

You can always set Information Management Policy for your documents.

Take a look at : Policy Features in SharePoint Server

Microsoft SharePoint Server 2007/2010 includes four information management policy features to help you manage your content: expiration, auditing, document labels, and document bar codes.

Expiration policy is thing you need:

After the document expires, you can determine the actions that the policy control takes. For example, the policy can delete the document, or define a workflow task to have SharePoint Server 2007/2010 route the document for permission to destroy it. In addition, the expiration policy feature provides the capability for you to build and use a custom plug-in action to be performed on the item after it reaches its expiration date.

Some links with more details:

IMHO you should avoid any solution that requires development of long running workflows (they are unstable and not flexible) and if you go with custom solution for this task develop daily timer job like @AmitKumawat suggested.

  • I thought I'd add a short comment on my experience. I've used Vedran's excellent suggestion. If you want a reminder to be sent (including 'recurrence' reminders) to be sent by using an Information Management Policy, this works. I have a Task List which reuses the item (when task is done, the Due Date is updated). But, my custom workflow that sends an reminder will no longer work. SP sees that the email has already been sent for the item, so it thinks the job has been done! The solutions works perfectly for 'one time tasks' though.
    – Tally
    Feb 12, 2018 at 10:19

This answer on StackOverflow details a few different ways to do this - workflow, scheduled jobs, open source and commercial add-ons.

Its talking about a calendar list and "Start Dates" but its no different to Doc Lib and expiry dates.

StackOverflow - Dated reminders in SharePoint calendars

  • +1 for finding information already here Dec 14, 2011 at 15:11

The problem with workflows is that once created, if someone edits the expiry date, the old workflow will still be out there.


Greg you can try using the Pause until date activity (Workflow) See this : http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/0f7e6ece-9326-4828-a5f8-93893d273fb3/

If not i just use Powershell. Let me know if that helps. Patrick

Your Answer

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

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