Sharepoint 2010: Resource Booking WebPart

I had a request to build a simple generic, configurable, weekly resource booking web part for Sharepoint 2010.  Here is a list of the design goals that we set:
  • Ability to have multiple resource booking webparts on a single Sharepoint Web
  • The available resources should be configurable by the end users
  • A weekly view of bookings
  • Ability to easily identify resources that can be booked and to filter the weekly view
  • Validation to guard against double bookings
  • Ability to delete bookings you created
  • Defaults to make creating new bookings quick and easy
  • Use AJAX to avoid ugly post backs (page reloads)
The resulting Sharepoint Feature contains a WebPart which is deployed at Site level and can be used in any site within the Site Collection.  A Web level Feature contains List Templates for the Resource list and the Bookings list which can be activated by any site administrator that wants to use the Resource Bookings WebPart.

The Resource Booking WebPart has two custom properties to link it to the Resource list and the Bookings list.  The Resource list is included on the Quick Launch menu, while the Bookings list in not.  It's possible to change this, of course, along with list permissions and adding your own views to the Bookings list to extend functionality for the users.

Below is a screenshot of the Resource Booking WebPart.


The Resource Booking WebPart defaults to show the current week starting on a Monday.  At the top it shows the week start date and end date, there are arrow buttons to navigate to the previous and next weeks.

Each box shows the Bookings for a particular day sorted in time order.  Bookings with a red cross next to them are one's made by the currently logged on user, clicking the red cross will delete the booking.  You can only delete your own bookings using the WebPart, you could open the Bookings list and delete bookings from there if you have sufficient permissions.  Hovering the mouse over a booking will popup who own's that booking, as shown in the screenshot.

In the bottom right hand corner is a list of all the resources that are available for booking.  This list is created from the Resources list which is managed by the users.  Checking the boxes against the resources will filter the view to show only those bookings against the selected resources.  You can filter the view and still navigate to previous or next weeks keeping the chosen filter in effect.

To create a new booking simply click on the icon.  Below is a screenshot of the New Resource Booking view:


The From time defaults to the current time and the To time to the current time plus one hour.  The Owner will default to the currently logged on user.  All of the fields are required and there is validation in place to ensure there is no double booking of resources.  The validation error message will tell you who has the resource booked when the times they have it reserved.

22 comments:

Rob Dawson said...

Is there any chance of this becoming a codeplex project? Cheers

Ian Chivers said...

This is now available as an Office365 or SPOnline solution!

Anonymous said...

Where is this solution available on Office365 / SPOnline? Can you please provide the url?

Ian Chivers said...

Thanks for your interest, the solution is available at a cost of $250. Please contact me directly for details and to arrange an evaluation.

Anonymous said...

What is your contact information to evaluate the Resource Booking WebPart?

Ian Chivers said...

Please contact me via
email: ian@ianchivers.com
skype: ichivers

Zeb said...

Is a live demo available? I think this may be what a client is after, but it would be easier to run them through a demo so they could see it in action before purchasing. Thanks.

Ian Chivers said...

I've setup a CodePlex project for this now, you can access it here:

http://spresourcebooking.codeplex.com

Anonymous said...

Ian, I want to use this webpart for Meeting room bookings can this be sync'd to outlook calendar.
Thanks

Anonymous said...

Is there a way to add more fields in the booking list and diplay the newly added fields when on the new booking window

Anonymous said...

Ian,Can you possibly tell me how you were able to validate who and when the double booking was conflicting with? I am using the default resource calendar in sharepoint 2010 and can't figure out how to get the 'who and when' error message to post.
Many Thanks!

Ian Chivers said...

That was the point of this solution to provide this functionality which is missing from the out of the box product.

Anonymous said...

Thanks but I don't want to buy the whole album for just a song!

Ian Chivers said...

Well this is open source, you can download the code and copy the double booking conflict functionality.

Anonymous said...

Great Solution.
Is this free or do you have to buy it ?

Thanks..

Ian Chivers said...

It's free, download it from http://spresourcebooking.codeplex.com

Anonymous said...

Is it possible to do Recurrence booking as available in standard calendar using your solution. Because we need to do permanent booking of few resources for particular time. How it could be encorporated?

Anonymous said...

Hi Ian, great solution to the old 'double booking' issue! Just wondering if you might lead me in the right direction to add date fields in to the booking form? Many thanks.

Ian Chivers said...

Field in the Booking List are as follows:

KWSBookingOwner - User
KWSBookingFrom - DateTime
KWSBookingTo - DateTime
KWSBookingSummary - Text

Anonymous said...

Hi there, this looks fantastic! Does it work in SP2013?

Unknown said...

đồng tâm
game mu
cho thuê nhà trọ
cho thuê phòng trọ
nhac san cuc manh
số điện thoại tư vấn pháp luật miễn phí
văn phòng luật
tổng đài tư vấn pháp luật
dịch vụ thành lập công ty trọn gói
nước cờ trên bàn thương lượng
mbp
erg
nghịch lý
chi square test
nghệ thuật nói chuyện
coase
thuyết kỳ vọng
chiến thắng con quỷ trong bạn
cân bằng nash

- Không được, phải đưa đến Đồn công an, chuyện do hai con đó gây ra, sao có thể thả. Bọn nó chạy thì sao?
Lúc này một người đàn ông béo, mặt đỏ ửng vì rượu chạy tới nói:
- Quảng Minh, anh làm gì vậy hả? Tôi vừa gọi cho anh cơ mà?

- Sếp Khương, theo tình hình tôi biết hai cô này là bị hại…
Cảnh sát dẫn đầu miễn cưỡng nói.

- Theo tình hình anh biết? Anh rõ ràng đã nghe chỉ thị rồi cơ mà. Đám này lai lịch không rõ, rõ ràng đến đây gây chuyện, bây giờ bạn tôi bị đánh, xem ra phải vào bệnh viện, tiền thuốc men, chữa trị nhất định phải trả cho tôi. Ngoài ra phải xử lý bọn chúng.
Thằng thanh niên hung dữ nhìn chằm chằm Triệu Quốc Đống:
- Muốn chạy, không dễ đâu.

- Mang về rồi nói.
Người đàn ông lùn vung tay nói:
- Quảng Minh, anh đưa bọn họ về, tôi lập tức đi theo xử lý. Chuyện này do tôi xử lý.

- Sếp Khương, chúng tôi mang mấy người này về, vậy còn bọn họ?
Triệu Quốc Đống nhìn mấy tên thanh niên mà nói.

- Bọn họ bị thương phải đưa đi bảo vệ.
Tên đàn ông lùn trừng mắt nhìn Triệu Quốc Đống rồi nói:
- Đây là chuyện của tao, cần mày xen vào à?

- Bọn họ phạm pháp mà có thể không tới Đồn công an ngay, chúng tôi là kẻ bị hại chẳng lẽ không được đổi bộ quần áo sao, lý lẽ gì vậy?
Triệu Quốc Đống lạnh lùng nói.

- Thằng ranh, nói chuyện giỏi nhỉ.
Tên đàn ông lùn tức giận nhìn chằm chằm Triệu Quốc Đống:
- Mày nói bọn họ phạm pháp, mày nói mày là bị hại? Có chứng cứ không, bọn mày đánh nhau, gây rối, cũng là đối tượng phải điều tra. Tao có quyền xử lý linh hoạt.

Triệu Quốc Đống lần đầu ngồi xe bắt tội phạm đưa về Đồn công an. Đồng Úc và Cù Vận Bạch cũng lần đầu bị như vậy. Đồng Úc có chút sợ hãi ngồi thu lu một chỗ. Chẳng qua Triệu Quốc Đống lại thấy rất bình thường.

Không gian phía sau khá chật hẹp, nhất là Triệu Quốc Đống cao mét tám nên ngồi rất khó chịu. Mà thêm cả Đồng Úc và Cù Vận Bạch nên chỉ có thể ngồi sát vào nhau.

Cù Vận Bạch rất giận và xấu hổ, nhưng rượu vẫn chưa hết, hơn nữa lần đầu cô gặp chuyện như vậy nên có chút lo lắng. Cô định gọi điện cho lãnh đạo huyện hoặc Chu Tinh Văn, nhưng lại thấy mình làm vậy là mất hình ảnh.

Unknown said...

Ian, Is there a way I can add a summary text field to the mouse hover over along with the booking owner?