On our website, we need users to have an availability calendar to set the availability of items they have for rent. We of course want to keep the use of the calendar as simple as possible.

What is a good design for such calendars ? Using things such as Google calendar seems overly complicated in terms of use.

  • 2
    Seems like the question is very general and not well defined enough to be answered effectively. If you could elaborate, it'll help others provide helpful answers.
    – Dan Barak
    Commented Dec 18, 2010 at 11:42
  • 1
    Have a look at how hotel booking sites use calendars to show room availability. It basically is the same thing: rooms for rent, or things for rent. Commented Dec 19, 2010 at 10:13

2 Answers 2


I haven't designed or used such a system but here are some thoughts.

A lot depends on the usage patterns of your users, what is the main timescale that they work in, i.e. do people announce their availability mainly in months, weeks or days, are they marking availability or unavailability, are they marking a lot of contiguous time spans or are there a lot of interruptions. These are all questions we can't answer but serving the needs of the people that enter the data will automatically improve the ease of use.

For the use case of bulk entry one of the easier way to implement this might be to just let the type in dates and rate ranges e.g.


even for large amounts of data this might be a lot faster and more convenient than coming up with any kind of gui, additionally you could provide them with a interface to upload spreadsheets, you could provide templates and then take the information from the spreadsheets. And separate text entry areas for marking availablity or marking unavailability

For the during the year editing a calendar is might be a little bit easier to handle (I am guessing the use case here that the would go in and have to mark a certain date or date range as unavailable/available). But this would be an extension, the text entry interface can handle this case too.

Another way to handle this situation is by creating a hierarchy of timespans, where each span can be edited separately e.g. (doing this in text here ...)

(+) ... Tree disclosure control
[ ] ... checkbox empty
[x] ... checkbox marked    
<xxx> Button

<Mark All> <Unmark All>
(+) [ ] January
(+) [ ] February
(+) [ ] March

Checking off a month would mark the month as available/unavailable, clicking on the disclosure of one month would go to a view like that

<Mark All> <Unmark All>
(+) [x] January
(-) [ ] February
    [ ] Week 4   [x]28  [x]29  [x]30  [x]31  [ ] 1  [ ] 2  [ ] 3
    [x] Week 5   [x] 4  [x] 5  [x] 6  [x] 7  [x] 8  [x] 9  [x]10
    [ ] Week 6   [ ]11  [ ]12  [ ] 13 [ ]14  [ ]15  [x]16  [x]17
    [ ] Week 7   [ ]18  [x]19  [x]20  [ ]21  [x]22  [x]23  [x]24
    [ ] Week 8   [ ]25  [ ]26  [ ]27  [ ] 1  [ ] 2  [ ] 3  [x] 4
(+) [ ] March

Take this a representation of the logic, the user can mark each level in the hierarchy, if the mark a higher level all pieces underneath get marked, ie if the mark a month all the weeks in the month get marked (depending on normal use you would need to decide wether to mark the edge days (in this example the 28-31 of January, if the user marks February, I made the decision not to do this)

This lets them quickly cover a lot of ground but then work in more detail and make small changes where there are exceptions.


Dan is correct, your question is very general. But my first intuition after reading your question is that, for something like setting or viewing the availability of items, a calendar is probably not the best approach to start with.

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.