$(document).ready(function() { var options = { viewType: "Week", dayBeginsHour: 7, dayEndsHour: 18, businessBeginsHour: 8, businessEndsHour: 16, businessEndsDay: 4, headerDateFormat: "dd/MM/yyyy", events: { list: }, onTimeRangeSelected: function(args) { var start = args.start.value; var end = args.end.value; if (!is_day_acceptable(start)) { alert("Bookings only available online for Monday to Wednesdays."); $(".calendar_default_shadow").remove(); return false; } if (is_start_time_acceptable(start) && is_end_time_acceptable(end)) { // do nothing, we carry on below } else { alert("Working hours are between 8am and 4pm."); $(".calendar_default_shadow").remove(); return false; } $.ajax({ url: "/booking", data: { start: start, end: end }, dataType: "json", type: "post", success: function(result) { if (!result.success) { alert(result.message); $(".calendar_default_shadow").remove(); return false; } // otherwise we can book it window.location.href = "/booking/form"; } }); }, onBeforeCellRender: function(args) { console.log("Rendering cell: ", args.cell.start.toString("yyyy-MM-dd"), "Day of Week: ", args.cell.start.getDayOfWeek()); // Mark weekends as non-business days if (args.cell.start.getDayOfWeek() === 0 || args.cell.start.getDayOfWeek() === 6) { args.cell.cssClass = "non-business-day"; console.log("Weekend: ", args.cell.start.toString("yyyy-MM-dd")); // Debugging line } // Mark Thursday, Friday, and Saturday as non-business days if (args.cell.start.getDayOfWeek() === 4 || args.cell.start.getDayOfWeek() === 5 || args.cell.start.getDayOfWeek() === 6) { args.cell.cssClass = "non-business-day"; console.log("Non-business day: ", args.cell.start.toString("yyyy-MM-dd")); // Debugging line } } }; $("#calendar").daypilotCalendar(options);