Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

We have a department that needs a rich calendar control:

  • It will display a month layout, with each day being clickable.
  • When a day is clicked, a popup would allow someone to select a two-hour time window from a range of hours, if no one else has taken it.
  • When the user clicks OK, it would then write that to a list with the user's domain ID.
  • If departmental Approvers approve the item, it would appear on the calendar; else not. Either case, the user needs to be notified of approval/rejection.

Is this possible with a SharePoint 2010 calendar or 3rd party component?

share|improve this question
add comment

1 Answer

up vote 2 down vote accepted

It will display a month layout, with each day being clickable.

SharePoint calendar default behavior

When a day is clicked, a popup would allow someone to select a two-hour time window from a range of hours, if no one else has taken it.

Some custom event receiver needed to check if time window is free. Trick part is how to allow only two-hour window. Ideal solution would require some additional customization maybe even some JavaScript.

When the user clicks OK, it would then write that to a list with the user's domain ID.

Default behavior: every item has Created by (Author) column that contains user info.

If departmental Approvers approve the item, it would appear on the calendar; else not. Either case, the user needs to be notified of approval/rejection.

You can turn on 'Require content approval' on calendar (default behavior). However deletion needs to be handled by event receiver.

Summary: Most of required functions are SharePoint OOTB. You will need some extra customization to achieve better user experience and to handle verification. It is quite simple task for some experienced SP developer. I see only one 'tricky issue': is time window free or not if there is unapproved event present?

I am not aware of any 3rd party solution but most likely there are more the few out there.

share|improve this answer
    
Thanks, Vedran. I'm seeing a few challenges even with custom development: 1) How do you only allow a range of time from 8 a.m. - 10 p.m.? 2) How do you allow only 2-hour blocks? 3) How do you detect if a time slot is pending approval for someone else? 4) How do you prevent someone from signing up on multiple calendars (for the different areas)? For these reasons, it might be easier to just go with the default calendar, have the user email a request, and admin enter the info into the calendar. Then for most users the calendar is read-only. –  Alex C Sep 6 '11 at 7:32
1  
You can handle all your challenges easily in event receiver. With some form customization and by using javaScript (or jQuery) you can provide much better user experience but it is more difficult to develop. Question is: is it worthwhile? I had similar issue in recent project and ended up with your solution: make just few admins and let others send their requests by email. Not very proud of this but since customer had unrealistic requirements this was safest and quickest option. –  Vedran Rasol Sep 6 '11 at 8:28
    
Thanks, Vedran. What are event receivers in SharePoint? I've heard of the term but not sure what they are or how to create one. Thanks again :) –  Alex C Sep 6 '11 at 8:39
1  
This explanation is nice (2007) blogs.msdn.com/b/brianwilson/archive/2007/03/05/… –  Vedran Rasol Sep 6 '11 at 8:52
    
So it seems that event handlers for lists are similar to triggers on SQL tables. Thank you, Vedran, for your great help. It's much appreciated. –  Alex C Sep 6 '11 at 10:24
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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