Have a look at the Calendar module. Here is an excerpt from its project page:
... display any Views date field in calendar formats, including CCK date fields, node created or updated dates, etc. Switch between year, month, and day views. Back and next navigation is provided for all views. Lots of the Calendar functionality comes from the Date module, so any time you update the Calendar module you should be sure you also update to the latest version of the Date module at the same time.
The Community documentation of the calendar module is another great resource to get you going. Here is a quote of that page also:
The Date and Calendar modules are a suite of modules that work together to handle dates and calendaring. They include a Date API, a Date module to create CCK date fields that can be added to any content type (Entity Bundle in D7), and a Calendar module that works with the Views module to display dates in a calendar.
In your specific case, create a "content type" called something like "availability", "schedule", "appointment", "timeframe" (or any better name you see fit). Use the "title" and the "body" for whatever you see fit. But make sure to "add a field" to it, with some label of your choice. But with a type of "date". Using things like "data multi select", "data picker", etc, you can have any user enter the required data (even in the future if you want). After doing all that, the Calendar module will be able to dispay that all in a calendar format.
So with that your question is reduced to basically designing some content type with a date field, and users will then perform like a "create new content" (of the type you want to use). It's that easy, really. And from then on you get all those amazing extra features that Drupal offers, like theming stuff, access control, mobile options, multi language, wysiwyg editing, etc.
For an online sample, refer to this (public) calendar of some primary school (with a tiny budget). It may not be in your own language, but just note the marks in yellow or green. It shows that some parent confirmed to be available (at a give date and time) to help children pass some street with a lot of traffic. These parents just create some "nodes" (which is basically only picking dates) to confirm so. Don't bother either about the look-and-feel of that page (the theming), and be aware that this is not even using the most recent Drupal release.
PS: About your "...I haven't quite decided on which I will use ...": I'd go for Drupal, to leave all options open for future requirements also. Drupal is no longer just a CMS, it's a CMF, aka Content Management Framework.