Based on @Hassan Raza's answer, I did this jsfiddle: https://jsfiddle.net/ToniBCN/mzke8tuv/
Set the calendar for February 2019 so that some days are orange, others are green, and the rest are disabled, depending on json data.
// In order to call bootstrap datepicker instead of jquery object // https://github.com/uxsolutions/bootstrap-datepicker var datepicker = $.fn.datepicker.noConflict(); // return $.fn.datepicker to previously assigned value $.fn.bootstrapDP = datepicker; // give $().bootstrapDP the bootstrap-datepicker functionality $.fn.bootstrapDP.defaults.format = "dd/mm/yyyy"; $.fn.bootstrapDP.defaults.startDate = '01/01/2019' $.fn.bootstrapDP.defaults.beforeShowDay = function(date) { // in order to get current day from calendar in the same format than json calendar_dates = date.getFullYear() + ('0' + (date.getMonth() + 1)).slice(-2) + ('0' + date.getDate()).slice(-2); let optionByDate = [{ "date": "20190126", "option": "A" }, { "date": "20190128", "option": "B" }, { "date": "20190131", "option": "A" }, { "date": "20190202", "option": "B" }, { "date": "20190205", "option": "A" }, { "date": "20190207", "option": "B" }, { "date": "20190210", "option": "A" }, { "date": "20190212", "option": "B" }, { "date": "20190215", "option": "A" }, { "date": "20190217", "option": "B" }, { "date": "20190220", "option": "A" }, { "date": "20190222", "option": "B" }, { "date": "20190225", "option": "A" }, { "date": "20190227", "option": "B" }, { "date": "20190302", "option": "A" }, { "date": "20190304", "option": "B" } ]; // Get data from optionByDate json function getDataByCalendar(date) { return optionByDate.filter( function(optionByDate) { return optionByDate.date == date } ); } let search_index = getDataByCalendar(calendar_dates); if (search_index.length > 0) { if (search_index[0].option == "A") return { classes: 'highlighted-a', tooltip: 'A option' }; if (search_index[0].option == "B") return { classes: 'highlighted-b', tooltip: 'B option' }; } else { // Disabled day return { enabled: false, tooltip: 'No option' }; } };