We have a SharePoint calendar that our customers use to create job requests which we do for their department. We can only do a certain amount of jobs per day, and of those only a certain amount per time zone. I want to make it so that when we have confirmed our max of 7 per day, users will not be able to create a new job request for that day. Also, during certain times of the day they can't do concurrent jobs.

Basically, when people are creating a new request, the date/time they put in needs to get validated against the master calendar. If it is at a certain time of day and there is another event happening, it gets denied. If we are maxed out for the day it gets denied. If it is maxed out for the time zone it gets denied.

I am doing this so our team doesn't spend so much time rejecting these requests if we can prevent them from being submitted in the first place.

As well, I am familiar with creating validation for the various fields, but I do not know how to make it reference the calendar to check what has already been confirmed.

Anyone done something similar to this?
Thank you in advance.


1 Answer 1


You might need to write an event receiver(ItemAdding) for your calendar list. Where can get all the existing "job request" items and do the validation against the current item, which user is trying to create. If all the validations are passed, you don't need to do anything. If any validation fails, ask sharepoint not to save this item (properties.Cancel=true;).

I am considering that you are a sharepoint developer....:) You would easily get a lot of help for writing event receivers, in case doing this for the first time.

  • This is very helpful. While I am not a SP Developer I think I can figure this out with a bit of help. So does this mean I have to make a workflow? The workflow would go through the list of other events on that day and see if anything is concurrent, then see if we are maxed out?
    – Mike
    Commented Feb 13, 2015 at 19:53
  • No, you don't need a workflow. The eventreceiver "ItemAdding" is supposed to fire automatically whenever somebody adds an item to a list and clicks on Save button. If you set properties.Cancel=true; somewhere in the code then the item will not be saved. Else item will be saved normally.
    – Amit Tyagi
    Commented Feb 13, 2015 at 23:27

Your Answer

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

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