Thursday, November 27, 2008

SPD Workflow: How to send a reminder a few days before the start date of a calendar entry?

A. Introduction As the title conveys, in this article I would like to show how one can create a workflow (using SharePoint Designer), which sends notifications to a list of recipients 7 days before the start date of a calendar entry. B. Preparations Create a Calendar, which we would attach the workflow to. For this demo, I have created a Calendar called Team Meetings. C. Workflow - Open Microsoft Office SharePoint Designer 2007. - Click File > Open Site. - Enter the URL of the site containing our calendar called Team Meetings. - Now click File > New > Workflow. - On the Define your new workflow page, enter the following data: --- Name: ReminderForMeetings --- Attachment List: Team Meetings --- Start Options: Automatically start this workflow when a new item is created and Automatically start this workflow whenever an item is changed - Click Next, in order to start designing the workflow steps. - Enter Calculate the reminder date as the Step Name. - In the Actions section, select the action Add Time to Date. - Click the 0 link and type -7. - Click the minutes link and select days. - Click the date link and then click fx. For the source select Current Item and for the field select Start Time. - Click OK. - Click the output link and create a new variable called ReminderDate of type Date/Time. - Click OK. - Click Add workflow step in the right panel, in order to create another workflow step. - Enter Check whether a pause is needed as the Step Name. - In the Conditions section, select Compare any data source. - Click the value link, then click fx. For the source select Workflow Data and for the field select ReminderDate. - Click the equals link and select is greater than. - Click the value link. Click the ellipsis, select Current Date and click OK. - In the Actions section, select the action Pause Unit Date. - Click the this time link and click fx. For the source select Workflow Data and for the field select ReminderDate. - Click Add workflow step in the right panel, in order to create another workflow step. - Enter Send reminder as the Step Name. - In the Actions section, select the action Send an Email. - Click the this message link and configure the different e-mail settings. - Click Finish, in order to save and publish the workflow. D. Test the solution 1. Create a new calendar item, whose Start Date is less than 7 days. -- Check that the ReminderForMeetings workflow has completed successfully. -- Check that you receive a notification now. 2. Create a new calendar item, whose Start Date is greater than 7 days. -- Check that the ReminderForMeetings workflow has started successfully. -- Check that you receive a notification on the right date.

9 comments:

Anonymous said...

I was reading your post and was wondering what your thoughts are on attaching this workflow to a re-occurring event entry in the calendar b/c they're only entered into the list as one item but show multiple events on the calendar web control? Any thoughts on this would be nice! By the way I Love your walk thru's they are very nicely done.

Thanks,
Shane G.

p.s. I will check back or look for future post about this issue thanks [I'm not a blogger I have space.live.com :( trying to keep everything in one spot]

Samar Hossam said...

Hi Shane,

Thanks for your comment and for the very good question.

Actually, I have checked the issue of attaching this workflow to a recurring calendar event, but with no success.

There should be some kind of turnaround, but I haven't figured it out yet.

So, I'll keep your question in mind. If I get an answer I would post it.

Best regards,
Samar Hossam

Stuart said...

Thanks Samar great tutorial solved a problem for me.

Regards

Stuart

Anonymous said...

Hello Samar,
Shane G. here, I still have yet to find an answer to the problem. I don't think that it is possible from the research I have done. What I have found is that instead of creating individual items in the list for each re-occurring calendar entry, SharePoint actually creates some XML properties and stores them in the database, I don't like this but I think it is done to keep the calendar lists compatible with outlook. you can do this threw the object model (see links). On a side note I absolutely Love your blog(s) they are so easy to follow, well written and very detailed so keep up the good work.

Thanks,
Shane G.

Links:

SharePoint Calendar Explained:
http://blogs.msdn.com/sharepoint/archive/2007/05/14/understanding-the-sharepoint-calendar-and-how-to-export-it-to-ical-format.aspx

web service data access:
http://geekswithblogs.net/mcassell/archive/2007/08/22/Accessing-Sharepoint-Data-through-Web-Services.aspx

Object model calendar:
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.spcalendaritem_members.aspx

lisa said...

Hi,
Great post.
New hire roll outs become a simple procedure by implementing a workflow to kick off with the first form filled out and submitted.
Thanks.
SharePoint Consulting

MOSSDeveloper said...

Hi All Does anyone know how to schedule workflows created with Sharepoint Designer. I need to run a worklow once a day for all the items how can I configure one. It Should sends emails to people with expired contracts

Anonymous said...

nice tip. saved me some time

Anonymous said...

Can you help with a workflow for a when the item is 1 day past due. Thanks and here is my email oglex30@gmail.com

Samar Hossam said...

Hello there,

I currently don't have any SharePoint development environment where I can try a scenario and tell you the steps. However, I just did a search and found a question on the forums, which might be similar to your problem. Please check this link:
https://community.office365.com/en-us/f/158/t/318023