"calendar"
Bootstrap 3.0.0 Snippet by evarevirus

<link href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script> <script src="//code.jquery.com/jquery-1.11.1.min.js"></script> <!------ Include the above in your HEAD tag ----------> <div class="wrapper"> <div id="calendarContainer"></div> <div id="organizerContainer" style="margin-left: 8px;"></div> </div> <p>This is a more of a schedule type calendar for a website. Thought I'd share it here... So made it a library! ( that's why I didn't add an indicator that there's events in a specific day... If you have any suggestion for that though, let me know; I might end up using it )</p> <script> /* Full tutorial on how to use the Calendar Javascript Library https://github.com/nizarmah/calendar-javascript-lib/blob/master/README.md */ function Calendar(id, size, labelSettings, colors) { this.id = id; this.size = size; this.labelSettings = labelSettings; this.colors = colors; months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ] label = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ]; this.months = months; this.label = []; this.labels = []; for (var i = 0; i < 7; i++) this.label.push(label[(label.indexOf(labelSettings[0]) + this.label.length >= label.length) ? Math.abs(label.length - (label.indexOf(labelSettings[0]) + this.label.length)) : (label.indexOf(labelSettings[0]) + this.label.length)]); for (var i = 0; i < 7; i++) this.labels.push(this.label[i].substring(0, (labelSettings[1] > 3) ? 3 : labelSettings[1])); this.date = new Date(); this.draw(); this.update(); } Calendar.prototype.constructor = Calendar; Calendar.prototype.draw = function () { backSvg = '<svg style="width: 24px; height: 24px;" viewBox="0 0 24 24"><path fill="' + this.colors[3] + '" d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"></path></svg>'; nextSvg = '<svg style="width: 24px; height: 24px;" viewBox="0 0 24 24"><path fill="' + this.colors[3] + '" d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"></path></svg>'; theCalendar = document.createElement( "DIV"); theCalendar.className = "calendar " + this.size; document.getElementById(this.id).appendChild(theCalendar); theContainers = [], theNames = [ 'year', 'month', 'labels', 'days' ]; for (var i = 0; i < theNames.length; i++) { theContainers[i] = document.createElement( "DIV"); theContainers[i].className = theNames[i]; if (theNames[i] != "days") { if (theNames[i] != "month") { theContainers[i].style.backgroundColor = this.colors[1]; theContainers[i].style.color = this.colors[3]; if (theNames[i] != "labels") { backSlider = document.createElement("DIV"); backSlider.id = this.id + "-year-back"; backSlider.insertAdjacentHTML('beforeend', backSvg); theContainers[i].appendChild(backSlider); theText = document.createElement("SPAN"); theText.id = this.id + "-" + theNames[i]; theContainers[i].appendChild(theText); nextSlider = document.createElement("DIV"); nextSlider.id = this.id + "-year-next"; nextSlider.insertAdjacentHTML('beforeend', nextSvg); theContainers[i].appendChild(nextSlider); } } else { theContainers[i].style.backgroundColor = this.colors[0]; theContainers[i].style.color = this.colors[2]; backSlider = document.createElement("DIV"); backSlider.id = this.id + "-month-back"; backSlider.insertAdjacentHTML('beforeend', backSvg); theContainers[i].appendChild(backSlider); theText = document.createElement("SPAN"); theText.id = this.id + "-" + theNames[i]; theContainers[i].appendChild(theText); nextSlider = document.createElement("DIV"); nextSlider.id = this.id + "-month-next"; nextSlider.insertAdjacentHTML('beforeend', nextSvg); theContainers[i].appendChild(nextSlider); } } } for (var i = 0; i < this.labels.length; i++) { theLabel = document.createElement("SPAN"); theLabel.id = this.id + "-label-" + (i + 1); theLabel.appendChild(document.createTextNode(this.labels[i])); theContainers[2].appendChild(theLabel); } theRows = [], theDays = [], theRadios = []; for (var i = 0; i < 6; i++) { theRows[i] = document.createElement("DIV"); theRows[i].className = "row"; } for (var i = 0, j = 0; i < 42; i++) { theRadios[i] = document.createElement("INPUT"); theRadios[i].className = "day-radios"; theRadios[i].type = "radio"; theRadios[i].name = this.id + "-day-radios"; theRadios[i].id = this.id + "-day-radio-" + (i + 1); theDays[i] = document.createElement("LABEL"); theDays[i].className = "day"; theDays[i].htmlFor = this.id + "-day-radio-" + (i + 1); theDays[i].id = this.id + "-day-" + (i + 1); theText = document.createElement("SPAN"); theText.id = this.id + "-day-num-" + (i + 1); theDays[i].appendChild(theText); theRows[j].appendChild(theRadios[i]); theRows[j].appendChild(theDays[i]); if ((i + 1) % 7 == 0) { j++; } } for (var i = 0; i < 6; i++) { theContainers[3].appendChild(theRows[i]); } for (var i = 0; i < theContainers.length; i++) { theCalendar.appendChild(theContainers[i]); } document.getElementById(this.id).appendChild(theCalendar); } Calendar.prototype.update = function () { document.getElementById(this.id + '-year').innerHTML = this.date.getFullYear(); document.getElementById(this.id + '-month').innerHTML = months[this.date.getMonth()]; for (i = 1; i <= 42; i++) { document.getElementById(this.id + '-day-num-' + i).innerHTML = ""; document.getElementById(this.id + '-day-' + i).className = this.id + " day"; } firstDay = new Date(this.date.getFullYear(), this.date.getMonth(), 1).getDay(); lastDay = new Date((this.date.getMonth() + 1 > 11) ? this.date.getFullYear() + 1 : this.date.getFullYear(), (this.date.getMonth() + 1 > 12) ? 0 : this.date.getMonth() + 1, 0).getDate(); previousLastDay = new Date((this.date.getMonth() < 0) ? this.date.getFullYear() - 1 : this.date.getFullYear(), (this.date.getMonth() < 0) ? 11 : this.date.getMonth(), 0).getDate(); if (firstDay != 0) for (i = 0, j = previousLastDay; i < this.label.indexOf(label[firstDay]); i++, j--) { document.getElementById(this.id + '-day-num-' + (1 + i)).innerHTML = j; document.getElementById(this.id + '-day-' + (1 + i)).className = this.id + " day diluted"; } for (i = 1; i <= lastDay; i++) { document.getElementById(this.id + '-day-num-' + (this.label.indexOf(label[firstDay]) + i)).innerHTML = i; if (i == this.date.getDate()) document.getElementById(this.id + '-day-radio-' + (this.label.indexOf(label[firstDay]) + i)).checked = true; } for (i = lastDay + 1, j = 1; (this.label.indexOf(label[firstDay]) + i) <= 42; i++, j++) { document.getElementById(this.id + '-day-num-' + (this.label.indexOf(label[firstDay]) + i)).innerHTML = j; document.getElementById(this.id + '-day-' + (this.label.indexOf(label[firstDay]) + i)).className = this.id + " day diluted"; } } function Organizer(id, calendar) { this.id = id; this.calendar = calendar; this.draw(); this.update(); } Organizer.prototype = { constructor: Organizer, back: function (func) { date = this.calendar.date; lastDay = new Date((date.getMonth() + 1 > 11) ? date.getFullYear() + 1 : date.getFullYear(), (date.getMonth() + 1 > 12) ? 0 : date.getMonth() + 1, 0).getDate(); previousLastDay = new Date((date.getMonth() < 0) ? date.getFullYear() - 1 : date.getFullYear(), (date.getMonth() < 0) ? 11 : date.getMonth(), 0).getDate(); if (func == "day") { if (date.getDate() != 1) { this.changeDateTo(date.getDate() - 1); } else { this.back('month'); this.changeDateTo(lastDay); } } else { if (func == "month") { if (date.getDate() > previousLastDay) { this.changeDateTo(previousLastDay); } if (date.getMonth() != 0) date.setMonth(date.getMonth() - 1); else { date.setMonth(11); date.setFullYear(date.getFullYear() - 1); } } else date.setFullYear(date.getFullYear() - 1); } this.calendar.update(); this.update(); }, next: function (func) { date = this.calendar.date; lastDay = new Date((date.getMonth() + 1 > 11) ? date.getFullYear() + 1 : date.getFullYear(), (date.getMonth() + 1 > 12) ? 0 : date.getMonth() + 1, 0).getDate(); soonLastDay = new Date((date.getMonth() + 2 > 11) ? date.getFullYear() + 1 : date.getFullYear(), (date.getMonth() + 2 > 12) ? 0 : date.getMonth() + 2, 0).getDate(); if (func == "day") { if (date.getDate() != lastDay) { date.setDate(date.getDate() + 1); } else { this.next('month'); date.setDate(1); } } else { if (func == "month") { if (date.getDate() > soonLastDay) { this.changeDateTo(soonLastDay); } if (date.getMonth() != 11) date.setMonth(date.getMonth() + 1); else { date.setMonth(0); date.setFullYear(date.getFullYear() + 1); } } else date.setFullYear(date.getFullYear() + 1); } this.calendar.update(); this.update(); }, changeDateTo: function (theDay, theBlock) { if ((theBlock >= 31 && theDay <= 11) || (theBlock <= 6 && theDay >= 8)) { if (theBlock >= 31 && theDay <= 11) this.next('month'); else if (theBlock <= 6 && theDay >= 8) this.back('month'); } this.calendar.date.setDate(theDay); this.calendar.update(); this.update(); calendar = this.calendar; setTimeout(function () { calendar.update(); }, 10); } } Organizer.prototype.draw = function () { backSvg = '<svg style="width: 24px; height: 24px;" viewBox="0 0 24 24"><path fill="' + this.calendar.colors[3] + '" d="M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z"></path></svg>'; nextSvg = '<svg style="width: 24px; height: 24px;" viewBox="0 0 24 24"><path fill="' + this.calendar.colors[3] + '" d="M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z"></path></svg>'; theOrganizer = document.createElement( "DIV"); theOrganizer.className = "events " + this.calendar.size; theDate = document.createElement( "DIV"); theDate.className = "date"; theDate.style.backgroundColor = this.calendar.colors[1]; theDate.style.color = this.calendar.colors[3]; backSlider = document.createElement("DIV"); backSlider.id = this.id + "-day-back"; backSlider.insertAdjacentHTML('beforeend', backSvg); theDate.appendChild(backSlider); theText = document.createElement("SPAN"); theText.id = this.id + "-date"; theDate.appendChild(theText); nextSlider = document.createElement("DIV"); nextSlider.id = this.id + "-day-next"; nextSlider.insertAdjacentHTML('beforeend', nextSvg); theDate.appendChild(nextSlider); theRows = document.createElement( "DIV"); theRows.className = "rows"; theList = document.createElement("OL"); theList.className = "list"; theList.id = this.id + "-list"; theRows.appendChild(theList); theOrganizer.appendChild(theDate); theOrganizer.appendChild(theRows); document.getElementById(this.id).appendChild(theOrganizer); } Organizer.prototype.update = function () { document.getElementById(this.id + "-date").innerHTML = this.calendar.months[this.calendar.date.getMonth()] + " " + this.calendar.date.getDate() + ", " + this.calendar.date.getFullYear(); document.getElementById(this.id + "-list").innerHTML = ""; } Organizer.prototype.list = function (data) { document.getElementById(this.id + "-list").innerHTML = ""; content = ""; for (var i = 0; i < data.length; i++) { content += '<li id="' + this.id + '-list-item-' + i + '"><div><span class="' + this.id + ' time" id="' + this.id + '-list-item-' + i + '-time">' + data[i].startTime + ' - ' + data[i].endTime + '</span><span class="' + this.id + ' m" id="' + this.id + '-list-item-' + i + '-m">' + data[i].mTime + '</span></div><p id="' + this.id + '-list-item-' + i + '-text">' + data[i].text + '</p></li>'; } document.getElementById(this.id + "-list").innerHTML = content; } Organizer.prototype.setupBlock = function (blockId, theOrganizer, callback) { document.getElementById(calendarId + "-day-" + blockId).addEventListener('click', function () { if (document.getElementById(calendarId + "-day-num-" + blockId).innerHTML.length > 0) { theOrganizer.changeDateTo(document.getElementById(calendarId + "-day-num-" + blockId).innerHTML, blockId); callback(); } }); } Organizer.prototype.setOnClickListener = function (theCase, backCallback, nextCallback) { calendarId = this.calendar.id; organizerId = this.id; theOrganizer = this; switch (theCase) { case "days-blocks": for (i = 1; i <= 42; i++) { theOrganizer.setupBlock(i, theOrganizer, backCallback); } break; case "day-slider": document.getElementById(organizerId + "-day-back").addEventListener('click', function () { theOrganizer.back('day'); backCallback(); }); document.getElementById(organizerId + "-day-next").addEventListener('click', function () { theOrganizer.next('day'); nextCallback(); }); break; case "month-slider": document.getElementById(calendarId + "-month-back").addEventListener('click', function () { theOrganizer.back('month'); backCallback(); }); document.getElementById(calendarId + "-month-next").addEventListener('click', function () { theOrganizer.next('month'); nextCallback(); }); break; case "year-slider": document.getElementById(calendarId + "-year-back").addEventListener('click', function () { theOrganizer.back('year'); backCallback(); }); document.getElementById(calendarId + "-year-next").addEventListener('click', function () { theOrganizer.next('year'); nextCallback(); }); break; } }; // end of library // full tutorial on how to use it is on GitHub // https://github.com/nizarmah/Calendar-Javascript-Library/blob/master/README.md /* end of library; everything is explained below; i'm sorry for the messy code and my bad practices; please criticise me */ var calendar = new Calendar("calendarContainer", "small", [ "Wednesday", 3 ], [ "#e91e63", "#c2185b", "#ffffff", "#f8bbd0" ]); var organizer = new Organizer("organizerContainer", calendar); currentDay = calendar.date.getDate(); // used this in order to make anyday today depending on the current today // my best way of organizing data, maybe that can be the outcome of joining multiple tables in the database and then parsing them in such a manner, easier for the person to push use a date and the events of it data = { years: [ { int: 1999, months: [ { int: 4, days: [ { int: 28, events: [ { startTime: "6:00", endTime: "6:30", mTime: "pm", text: "Weirdo was born" } ] } ] } ] }, { int: (new Date().getFullYear()), months: [ { int: (new Date().getMonth() + 1), days: [ { int: (new Date().getDate()), events: [ { startTime: "6:00", endTime: "7:00", mTime: "am", text: "This is scheduled to show today, anyday." }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" }, { startTime: "8:00", endTime: "9:00", mTime: "pm", text: "Next spam is for demonstration purposes only" }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" }, { startTime: "5:45", endTime: "7:15", mTime: "pm", text: "WIP Library" }, { startTime: "10:00", endTime: "11:00", mTime: "pm", text: "Probably won't fix that (time width)" } ] } ] } ] } ] }; function showEvents() { theYear = -1, theMonth = -1, theDay = -1; for (i = 0; i < data.years.length; i++) { if (calendar.date.getFullYear() == data.years[i].int) { theYear = i; break; } } if (theYear == -1) return; for (i = 0; i < data.years[theYear].months.length; i++) { if ((calendar.date.getMonth() + 1) == data.years[theYear].months[i].int) { theMonth = i; break; } } if (theMonth == -1) return; for (i = 0; i < data.years[theYear].months[theMonth].days.length; i++) { if (calendar.date.getDate() == data.years[theYear].months[theMonth].days[i].int) { theDay = i; break; } } if (theDay == -1) return; theEvents = data.years[theYear].months[theMonth].days[theDay].events; organizer.list(theEvents); // what's responsible for listing } showEvents(); organizer.setOnClickListener('day-slider', function () { showEvents(); console.log("Day back slider clicked"); }, function () { showEvents(); console.log("Day next slider clicked"); }); organizer.setOnClickListener('days-blocks', function () { showEvents(); console.log("Day block clicked"); }, null); organizer.setOnClickListener('month-slider', function () { showEvents(); console.log("Month back slider clicked"); }, function () { showEvents(); console.log("Month next slider clicked"); }); organizer.setOnClickListener('year-slider', function () { showEvents(); console.log("Year back slider clicked"); }, function () { showEvents(); console.log("Year next slider clicked"); }); </script>
body { display: felx; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } .wrapper { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; } body > p { font-family: "Satellite", "Roboto", sans-serif; font-size: 20px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; margin: 20px 40px; text-align: justify; } .calendar { width: 800px; height: 800px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; font-family: "Satellite", "Roboto", sans-serif; border: 1px solid rgba(21, 21, 21, 0.12); -webkit-transform: scale(1); transform: scale(1); box-shadow: 0px 0px 4px rgba(21, 21, 21, 0.21); -ms-user-select: none; user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; } .calendar.small { width: 400px; height: 400px; } .calendar.medium { width: 600px; height: 600px; } .calendar.large { width: 800px; height: 800px; } .year { width: calc(100% - 10px); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px; font-size: 14px; } .year > span { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; text-transform: uppercase; } .year > div { cursor: pointer; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; } .month { width: calc(100% - 10px); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 20px 5px; font-size: 40px; box-shadow: 0px 2px 6px rgba(21, 21, 21, 0.21); } .month > span { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; text-transform: uppercase; } .month > div { cursor: pointer; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; } .labels { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } .labels > span { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; font-size: 12px; text-transform: uppercase; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; padding: 10px; } .days { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; box-shadow: 0px 2px 6px -2px rgba(21, 21, 21, 0.21); } .row { width: 100%; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } .day { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; padding: 5px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; border-bottom: 1px solid rgba(21, 21, 21, .12); border-right: 1px solid rgba(21, 21, 21, .12); cursor: pointer; -webkit-transition: box-shadow 200ms ease-in-out; transition: box-shadow 200ms ease-in-out; } .day:last-child { border-right: none; } .day:hover { background-color: rgba(21, 21, 21, 0.012); box-shadow: inset 0px 0px 4px rgba(21, 21, 21, 0.21); } .day-radios { display: none; } .day-radios:checked + .day { background-color: rgba(21, 21, 21, 0.012); box-shadow: inset 0px 0px 4px rgba(21, 21, 21, 0.21); } .day > span { width: auto; font-size: 14px; color: rgba(21, 21, 21, 0.84); } .day.diluted { background-color: rgba(21, 21, 21, 0.021); box-shadow: inset 0px 0px 1px rgba(21, 21, 21, 0.12); } .day.diluted > span { width: auto; font-size: 10px; color: rgba(21, 21, 21, 0.73); } .events { width: 800px; height: 800px; font-family: "Satellite", "Roboto", sans-serif; box-shadow: 0px 0px 4px rgba(21, 21, 21, 0.21); border: 1px solid rgba(21, 21, 21, 0.12); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -ms-user-select: none; user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; } .events.small { width: 400px; height: 400px; } .events.medium { width: 600px; height: 600px; } .events.large { width: 800px; height: 800px; } .date { width: calc(100% - 10px); display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; background-color: ' + this.calendar.colors[1] + '; color: ' + this.calendar.colors[3] + '; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; padding: 5px; font-size: 14px; } .date > span { -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -ms-flex-line-pack: center; align-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; text-transform: uppercase; } .date > div { cursor: pointer; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; } .rows { width: 100%; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; overflow: hidden !important; } .list { width: 100%; -webkit-box-flex: 1; -ms-flex: 1; flex: 1; overflow-y: auto !important; padding: 0; margin: 0; color: rgba(21, 21, 21, 0.94); } .list > li { width: 100%; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; border-bottom: 1px solid rgba(21, 21, 21, 0.12); } .list > li:hover { box-shadow: inset 0px 0px 4px rgba(21, 21, 21, 0.21); } .list > li > div { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-flex: 2; -ms-flex: 2; flex: 2; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; padding: 10px; border-right: 1px solid rgba(21, 21, 21, 0.12); } .time { font-size: 14px; } .m { font-size: 14px; text-transform: uppercase; padding-left: 5px; } .list > li > p { -webkit-box-flex: 4; -ms-flex: 4; flex: 4; margin: 10px; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -ms-flex-line-pack: center; align-content: center; font-size: 18px; word-wrap: break-word; word-break: break-word; }

Related: See More


Questions / Comments:

Hi, thank you for the code. May I have another option to add event on any date.

email me at kakcikrock@gmail.com

kakcik () - 4 years ago - Reply 0


please! add option to add manual event for any date.

and please provide code for me.

skc.uknome@gmail.com

skumar4u () - 5 years ago - Reply 0


are you already have the code now?

kakcik () - 4 years ago - Reply 0


the previous month date is coming wrong what should do to fix that

vijay11 () - 6 years ago - Reply 0