This is a great script, and my company was planning to use it in a web app for a government client. But unfortunately, it doesn't meet accessibility guidelines, because the code that is output doesn't make sense to someone using a screenreader, and it's not keyboard accessible.
In looking at the code, it seems overly complicated to me. Why all the nested tables? For the month view, why not just output it like:
<table>
<caption>November</caption>
<tr>
<th scope="col">Monday</th><th scope="col">Tuesday</th> etc.
</tr>
<tr>
<td>1. Event here</td><td>2. Another event here</td> etc.
Alternatively, you could make the calendar days an ordered list. If you did either of those, half the battle would be won. The only other real issue is drag and drop events. Here's some info on making those accessible:
https://dev.opera.com/articles/accessible-drag-and-drop/
http://www.quirksmode.org/js/dragdrop.html
Thanks.
Mergedinto: 2264