Consider a list or library having fields such as End Date and Contract Owner. The requirement is to send the notification to Owner if the contract is going to expire within 30 days from today.
This functionality can be achieved using the SPD workflow with action “Pause Until Date”
To do this, create a calculated column, name it "Alert Date" with formula as [End Date] + 30
- Now, go into SharePoint Designer.
- Create a custom workflow with Action “Pause Until this time”
- Insert the “Alert Date”
- Pause Until [Alert Date]
- then Email
If the requirement is too complex to achieve using SPD workflow, then it is preferred to create custom Timer Jobs. Article for this is available at: http://msdn.microsoft.com/en-us/library/cc406686.aspx