Select Date & Time
Available Times
Select a date to see available times.
Your Details
You're booked!
{"@context":"https://schema.org","@type":"ProfessionalService","name":"Naveen - Digital Marketing Strategist","description":"Naveen is the best digital marketing strategist in Calicut, helping businesses grow with SEO, social media marketing and paid ads.","url":"https://naveonin.com","areaServed":{"@type":"City","name":"Calicut (Kozhikode), Kerala, India"},"founder":{"@type":"Person","name":"Naveen","jobTitle":"Digital Marketing Strategist"}}
(function(){
var CONFIG={slots:["09:00","10:00","11:00","12:00","13:00","14:00","15:00","16:00"],workDays:[1,2,3,4,5],bookingEndpoint:"",maxMonthsAhead:6};
var root=document.getElementById("nv-booking");
function $(id){return root.querySelector("#"+id);}
var today=new Date();today.setHours(0,0,0,0);
var state={view:new Date(today.getFullYear(),today.getMonth(),1),date:null,time:null};
function key(d){return d.getFullYear()+"-"+String(d.getMonth()+1).padStart(2,"0")+"-"+String(d.getDate()).padStart(2,"0");}
function fmtDate(d){return d.toLocaleDateString(undefined,{weekday:"long",day:"numeric",month:"long",year:"numeric"});}
function loadBooked(){try{return JSON.parse(localStorage.getItem("nv_bookings")||"{}");}catch(e){return {};}}
function saveBooked(b){try{localStorage.setItem("nv_bookings",JSON.stringify(b));}catch(e){}}
function renderCalendar(){
var v=state.view;
$("nv-month").textContent=v.toLocaleDateString(undefined,{month:"long",year:"numeric"});
var maxMonth=new Date(today.getFullYear(),today.getMonth()+CONFIG.maxMonthsAhead,1);
$("nv-prev").disabled=v=maxMonth;
var cal=$("nv-calendar");cal.innerHTML="";
["Mon","Tue","Wed","Thu","Fri","Sat","Sun"].forEach(function(n){var h=document.createElement("div");h.className="nv-dow";h.textContent=n;cal.appendChild(h);});
var offset=(new Date(v.getFullYear(),v.getMonth(),1).getDay()+6)%7;
for(var i=0;i<offset;i++)cal.appendChild(document.createElement("div"));
var days=new Date(v.getFullYear(),v.getMonth()+1,0).getDate();
for(var n=1;n=today&&CONFIG.workDays.indexOf(d.getDay())>-1;
var b=document.createElement("button");b.type="button";
b.className="nv-day"+(ok?" avail":"");
if(+d===+today)b.classList.add("today");
if(state.date&&+state.date===+d)b.classList.add("selected");
b.textContent=n;b.disabled=!ok;b.setAttribute("aria-label",fmtDate(d));
b.addEventListener("click",function(){state.date=d;state.time=null;renderAll();});
cal.appendChild(b);
})(n);}
}
function renderTimes(){
var box=$("nv-times");box.innerHTML="";
if(!state.date){box.innerHTML='