Is there any provision in the script for clearing old entries from the booking table? I'm just wondering about ten years from now when the database grinds to a halt… what would you suggest? A user option? or something that deletes bookings over x months old when you change an entry, or something els...

Okay. I made a couple of changes to your posted code and it now rolls over in a 1 month at a time scenario and shows 12 months at a time too. from: // define LAST block - START $last_month_start = (START_MONTH-MONTHS_TO_SHOW); # remove months_to_show x 2 to go back this block and then 1 more $last_y...

There's an issue with the current day highlighting - you need a tweak to account for the year. I added: $cur_year = date('Y'); to function draw_cal and amended: if( ($day_counter==$cur_day) && ($month==$cur_month) ) $border='style="border: 2px solid #99cc00"'; to if( ($day_counter=...

you missed out adding: elseif($booked_days[$this_date]=="prv") $day_image='cal_prv_'.$day_counter.'.png'; to function draw_cal in the " check if day is available " section other than that it seems to work fine. Many thanks... (now to update the live site and sort out showing +12 ...