This will detail discoveries about the FullCalendar plugin.
We're primarily interested in three views: month, agendaWeek and agendaDay. Further, we're only interested in the calendar itself and not the header (div.fc-toolbar).
I've written it in Markdown so I can scroll the container.
## month ##
The `div.fc-month-view` is within the `div.fc-view-container` and consists of a table with a `thead.fc-head` which has the days of the week and a `tbody.fc-body`.
* `tbody.fc-body`
* `tr`
* `tr.fc-widget-content`
* `div.fc-day-grid-container`
* `div.fc-day-grid`
* `div.fc-row.fc-week` **×6**
* `div.fc-bg`
* `table`
* `tbody`
* `tr`
* `td.fc-day.fc-widget-content` **×7 plus (`fc-sun`, `fc-mon`, `fc-tue`, `fc-wed`, `fc-thu`, `fc-fri` or `fc-sat`)**
* `div.fc-content-skeleton`
* `table`
* `thead`
* `tr`
* `td.fc-day-number` **×7 plus (`fc-sun`, `fc-mon`, `fc-tue`, `fc-wed`, `fc-thu`, `fc-fri` or `fc-sat`), this is where the numbers are.**
* `tbody`
* `tr`
* `td` **if these have events then `.fc-event-container`, otherwise just empty**
## agendaWeek ##
* `tbody.fc-body`
* `tr`
* `td.fc-widget-content`
* `div.fc-day-grid`
* `div.fc-row.fc-week.fc-widget-content`
* `div.fc-bg`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-widget-content`
* `span`
* `td.fc-day.fc-widget-content` **×7 plus (`fc-sun`, `fc-mon`, `fc-tue`, `fc-wed`, `fc-thu`, `fc-fri` or `fc-sat`)**
* `div.fc-content-skeleton`
* `hr.fc-divider.fc-widget-header`
* `div.fc-time-grid-container.fc-scroller`
* `div.fc-time-grid`
* `div.fc-bg`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-widget-content`
* `td.fc-day.fc-widget-content` **×7 plus (`fc-sun`, `fc-mon`, `fc-tue`, `fc-wed`, `fc-thu`, `fc-fri` or `fc-sat`)**
* `div.fc-slats`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-time fc-widget-content`
* `span` **Time here (repeated for every half hour during the day)**
* `td.fc-widget-content`
* `tr.fc-minor`
* `div.fc-content-skeleton`
* `table`
* `tbody`
* `tr`
* `td.fc.axis`
* `td` **×7**
* `div.fc-content-col`
* `div.fc-event-container.fc-helper-container`
* `div.fc-event-container` **Events go here**
* `div.fc-highlight-container`
* `div.fc-bgevent-container`
* `div.fc-business-container`
## agendaDay ##
* `tbody.fc-body`
* `tr`
* `td.fc-widget-content`
* `div.fc-day-grid.fc-unselectable`
* `div.fc-row.fc-week.fc-widget-content`
* `div.fc-bg`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-widget-content`
* `span` **all-day**
* `td.fc-day.fc-widget-content` **and fc-*day***
* `div.fc-content-skeleton`
* `hr.fc-divider.fc-widget-header`
* `div.fc-scroller.fc-time-grid-container`
* `div.fc-time-grid.fc-unselectable`
* `div.fc-bg`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-widget-content`
* `td.fc-day.fc-widget-content` **and fc-*day***
* `div.fc-slats`
* `table`
* `tbody`
* `tr`
* `td.fc-axis.fc-time.fc-widget-content` **these two cells are repeated every half hour**
* `span` **time here**
* `td.fc-widget-content`
* `hr.fc-divider.fc-widget-header`
* `div.fc-content-skeleton`
* `table`
* `tbody`
* `tr`
* `td.fc-axis`
* `td`
* `div.fc-content-col`
* `div.fc-event-container.fc-helper-container`
* `div.fc-event-container` **Events here**
* `a.fc-time-grid-event.fc-v-event.fc-event.fc-start.fc-end.fc-draggable.fc-resizable`
* `div.fc-content`
* `div.fc-time`
* `span` **time here**
* `div.fc-title`
* `div.fc-bg`
* `div.fc-highlight-container`
* `div.fc-bgevent-container`
* `div.fc-business-container`
