getMonth(date, startingDay) function returns a calendar object for the month of date object passed in, and startingDay is the day of the week you want your calendar to start on (0 = Sunday, 1 = Monday, 2 = Tuesday,3 = Wednesday,4 = Thursday,5 = Friday,6 = Saturday). 

Calendar object includes details of first day of the month, number of days in month, and number of weeks required to display month on calendar with a break down off all weeks and days of the week. If the first and/or last week of the month include dates from previous/next month details of those days are also included.

each day has an "isToday". "Yes" signals that the day is todays date.

Sample month returned:
    
    {
    "firstDay": "Friday",
    "monthLenght": 30,
    "calendarWeeks": 5,
    "week1": {
        "day1": {
            "day": 28,
            "month": 2,
            "year": 2016,
            "date": "2016-03-27T23:00:00.000Z",
            "isToday": "No"
        },
        "day2": {
            "day": 29,
            "month": 2,
            "year": 2016,
            "date": "2016-03-28T23:00:00.000Z",
            "isToday": "No"
        },
        "day3": {
            "day": 30,
            "month": 2,
            "year": 2016,
            "date": "2016-03-29T23:00:00.000Z",
            "isToday": "No"
        },
        "day4": {
            "day": 31,
            "month": 2,
            "year": 2016,
            "date": "2016-03-30T23:00:00.000Z",
            "isToday": "No"
        },
        "day5": {
            "day": 1,
            "month": 3,
            "year": 2016,
            "date": "2016-03-31T23:00:00.000Z",
            "isToday": "No"
        },
        "day6": {
            "day": 2,
            "month": 3,
            "year": 2016,
            "date": "2016-04-01T23:00:00.000Z",
            "isToday": "Yes"
        },
        "day7": {
            "day": 3,
            "month": 3,
            "year": 2016,
            "date": "2016-04-02T23:00:00.000Z",
            "isToday": "No"
        }
    },
    "week2": {
        ... etc.
    
Sample code to loop through and print out calendar

    //variable to hold table body
    var tableBody = "";
    //jQuery AJAX call for JSON
    $.getJSON('month/1/' + month + '/' + year, function (data) {
        //loop through weeks (based on how many weeks are needed to print full month)
        for (var weekNo = 1; weekNo <= data['calendarWeeks']; weekNo++) {
            //Print out details for each day of week
            tableBody += '<tr>';
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day1']['day'] + '</div></td>';            
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day2']['day'] + '</div></td>';            
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day3']['day'] + '</div></td>';         
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day4']['day'] + '</div></td>';            
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day5']['day'] + '</div></td>';            
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day6']['day'] + '</div></td>';            
                tableBody += '<td><div class="dateNumber">' + data['week' + weekNo]['day7']['day'] + '</div></td>';            
            tableBody += '</tr>';
        }
        //print out calendar
        document.getElementById('tableBody').innerHTML = tableBody;
    });
    
    
Similarily the getWeek(date, startingDay) function returns a week object, starting on a chosen day, with a break down of each day based on date passed in
