{"id":70300,"date":"2026-07-10T18:32:39","date_gmt":"2026-07-10T18:32:39","guid":{"rendered":"https:\/\/schellfamilyfarm.com\/?page_id=70300"},"modified":"2026-07-10T20:49:49","modified_gmt":"2026-07-10T20:49:49","slug":"booking","status":"publish","type":"page","link":"https:\/\/schellfamilyfarm.com\/?page_id=70300","title":{"rendered":"Booking"},"content":{"rendered":"<p><div class=\"et_d4_element et_pb_section et_pb_section_0 sff-section sff-booking-page  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_0  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_0  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_0  et_pb_text_align_center et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><p class=\"sff-kicker\">PHOTOGRAPHY AT THE FARM<\/p>\n<h1>Book a Photography Appointment<\/h1>\n<p>Reserve an available photography time at Schell Family Farm for $25.<\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_code et_pb_code_0\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_code_inner\"> <div class=\"sff-booking-card\" id=\"sff-booking-calendar-1\">\n  <div class=\"sff-booking-price\">Photography appointment <strong>$25<\/strong><\/div>\n  <p>Choose an available date, then select an appointment time. Your appointment is confirmed after checkout and payment.<\/p>\n     <form method=\"post\" class=\"sff-booking-form\">\n    <input type=\"hidden\" id=\"sff_booking_nonce\" name=\"sff_booking_nonce\" value=\"ad24042ec8\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/index.php?rest_route=%2Fwp%2Fv2%2Fpages%2F70300\" \/>    <input type=\"hidden\" name=\"sff_booking_submit\" value=\"1\">\n    <input type=\"hidden\" class=\"sff-booking-slot-value\" name=\"sff_booking_slot\" value=\"\" required>\n\n    <div class=\"sff-calendar-shell\" data-slots=\"{&quot;2026-07-18&quot;:[{&quot;key&quot;:&quot;2026-07-18|10:00 AM&quot;,&quot;time&quot;:&quot;10:00 AM&quot;,&quot;label&quot;:&quot;Saturday, July 18, 2026 at 10:00 AM&quot;},{&quot;key&quot;:&quot;2026-07-18|11:30 AM&quot;,&quot;time&quot;:&quot;11:30 AM&quot;,&quot;label&quot;:&quot;Saturday, July 18, 2026 at 11:30 AM&quot;}]}\">\n     <div class=\"sff-calendar-toolbar\">\n      <button type=\"button\" class=\"sff-calendar-nav sff-calendar-prev\" aria-label=\"Previous month\">&#8249;<\/button>\n      <h3 class=\"sff-calendar-month\" aria-live=\"polite\"><\/h3>\n      <button type=\"button\" class=\"sff-calendar-nav sff-calendar-next\" aria-label=\"Next month\">&#8250;<\/button>\n     <\/div>\n     <div class=\"sff-calendar-weekdays\" aria-hidden=\"true\"><span>Sun<\/span><span>Mon<\/span><span>Tue<\/span><span>Wed<\/span><span>Thu<\/span><span>Fri<\/span><span>Sat<\/span><\/div>\n     <div class=\"sff-calendar-grid\" role=\"grid\" aria-label=\"Available photography appointment dates\"><\/div>\n    <\/div>\n\n    <div class=\"sff-time-panel\" hidden>\n     <h3>Available times for <span class=\"sff-selected-date\"><\/span><\/h3>\n     <div class=\"sff-time-options\" role=\"group\" aria-label=\"Available appointment times\"><\/div>\n    <\/div>\n\n    <div class=\"sff-selected-appointment\" aria-live=\"polite\">Select a date and time to continue.<\/div>\n    <button type=\"submit\" class=\"sff-booking-submit\" disabled>BOOK FOR $25<\/button>\n\n    <noscript>\n     <label for=\"sff_booking_slot_fallback_1\">Available date and time<\/label>\n     <select id=\"sff_booking_slot_fallback_1\" name=\"sff_booking_slot\">\n      <option value=\"\">Choose an appointment<\/option>\n      <option value=\"2026-07-18|10:00 AM\">Saturday, July 18, 2026 at 10:00 AM<\/option><option value=\"2026-07-18|11:30 AM\">Saturday, July 18, 2026 at 11:30 AM<\/option>     <\/select>\n     <style>.sff-booking-slot-value{display:none}.sff-booking-submit{display:block}<\/style>\n    <\/noscript>\n   <\/form>\n   <\/div>\n  <script>\n (function(){\n  var root=document.getElementById(\"sff-booking-calendar-1\");\n  if(!root) return;\n  var shell=root.querySelector('.sff-calendar-shell');\n  var grid=root.querySelector('.sff-calendar-grid');\n  var monthLabel=root.querySelector('.sff-calendar-month');\n  var prev=root.querySelector('.sff-calendar-prev');\n  var next=root.querySelector('.sff-calendar-next');\n  var panel=root.querySelector('.sff-time-panel');\n  var timeOptions=root.querySelector('.sff-time-options');\n  var selectedDateLabel=root.querySelector('.sff-selected-date');\n  var selectedSummary=root.querySelector('.sff-selected-appointment');\n  var slotInput=root.querySelector('.sff-booking-slot-value');\n  var submit=root.querySelector('.sff-booking-submit');\n  var slots={};\n  try{ slots=JSON.parse(shell.getAttribute('data-slots')||'{}'); }catch(e){ return; }\n  var dates=Object.keys(slots).sort();\n  if(!dates.length) return;\n  var first=dates[0].split('-').map(Number);\n  var last=dates[dates.length-1].split('-').map(Number);\n  var current=new Date(first[0],first[1]-1,1);\n  var minMonth=new Date(first[0],first[1]-1,1);\n  var maxMonth=new Date(last[0],last[1]-1,1);\n  var selectedDate='';\n  var monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];\n\n  function pad(n){return String(n).padStart(2,'0');}\n  function keyFor(y,m,d){return y+'-'+pad(m+1)+'-'+pad(d);}\n  function sameMonth(a,b){return a.getFullYear()===b.getFullYear() && a.getMonth()===b.getMonth();}\n  function formatDate(key){\n   var p=key.split('-').map(Number);\n   return new Intl.DateTimeFormat(undefined,{weekday:'long',month:'long',day:'numeric',year:'numeric'}).format(new Date(p[0],p[1]-1,p[2]));\n  }\n  function clearSelection(){\n   selectedDate=''; slotInput.value=''; submit.disabled=true; panel.hidden=true; timeOptions.innerHTML='';\n   selectedSummary.textContent='Select a date and time to continue.';\n  }\n  function showTimes(dateKey){\n   selectedDate=dateKey; slotInput.value=''; submit.disabled=true;\n   selectedDateLabel.textContent=formatDate(dateKey);\n   timeOptions.innerHTML='';\n   (slots[dateKey]||[]).forEach(function(slot){\n    var b=document.createElement('button');\n    b.type='button'; b.className='sff-time-button'; b.textContent=slot.time;\n    b.setAttribute('data-slot',slot.key);\n    b.addEventListener('click',function(){\n     timeOptions.querySelectorAll('.sff-time-button').forEach(function(x){x.classList.remove('is-selected');x.setAttribute('aria-pressed','false');});\n     b.classList.add('is-selected'); b.setAttribute('aria-pressed','true');\n     slotInput.value=slot.key; submit.disabled=false;\n     selectedSummary.textContent='Selected: '+slot.label;\n    });\n    b.setAttribute('aria-pressed','false');\n    timeOptions.appendChild(b);\n   });\n   panel.hidden=false;\n   selectedSummary.textContent='Choose a time for '+formatDate(dateKey)+'.';\n  }\n  function render(){\n   var y=current.getFullYear(), m=current.getMonth();\n   monthLabel.textContent=monthNames[m]+' '+y;\n   grid.innerHTML='';\n   var firstDay=new Date(y,m,1).getDay();\n   var total=new Date(y,m+1,0).getDate();\n   for(var i=0;i<firstDay;i++){\n    var blank=document.createElement('span'); blank.className='sff-calendar-blank'; blank.setAttribute('aria-hidden','true'); grid.appendChild(blank);\n   }\n   for(var d=1;d<=total;d++){\n    var dateKey=keyFor(y,m,d); var available=Object.prototype.hasOwnProperty.call(slots,dateKey);\n    var day=document.createElement('button'); day.type='button'; day.className='sff-calendar-day'; day.textContent=d;\n    day.setAttribute('aria-label',formatDate(dateKey)+(available?' \u2014 appointments available':' \u2014 unavailable'));\n    if(!available){ day.disabled=true; day.classList.add('is-unavailable'); }\n    else{\n     day.classList.add('is-available');\n     if(dateKey===selectedDate) day.classList.add('is-selected');\n     day.addEventListener('click',(function(k){return function(){\n      grid.querySelectorAll('.sff-calendar-day').forEach(function(x){x.classList.remove('is-selected');});\n      this.classList.add('is-selected'); showTimes(k);\n     };})(dateKey));\n    }\n    grid.appendChild(day);\n   }\n   prev.disabled=sameMonth(current,minMonth);\n   next.disabled=sameMonth(current,maxMonth);\n  }\n  prev.addEventListener('click',function(){ if(!sameMonth(current,minMonth)){current=new Date(current.getFullYear(),current.getMonth()-1,1);clearSelection();render();}});\n  next.addEventListener('click',function(){ if(!sameMonth(current,maxMonth)){current=new Date(current.getFullYear(),current.getMonth()+1,1);clearSelection();render();}});\n  render();\n })();\n <\/script>\n  <\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_section et_pb_section_1 sff-footer-section  et_pb_css_mix_blend_mode et_pb_fullwidth_section et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_fullwidth_code et_pb_fullwidth_code_0\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_code_inner\"><footer class=\"sff-site-footer\"><div class=\"sff-footer-grid\"><div class=\"sff-footer-about\"><img decoding=\"async\" class=\"sff-footer-logo\" src=\"https:\/\/schellfamilyfarm.com\/wp-content\/plugins\/sff-divi-restore\/assets\/images\/schell-logo-transparant.png\" alt=\"Schell Family Farm\"><p>Creating memories, celebrating the seasons, and bringing our community together at our family farm in Pinckney, Michigan.<\/p><a class=\"sff-footer-button\" href=\"https:\/\/schellfamilyfarm.com\/?page_id=70300\">BOOK A PHOTOGRAPHY SESSION<\/a><\/div><div class=\"sff-footer-links\"><h3>Explore<\/h3><a href=\"https:\/\/schellfamilyfarm.com\/\">Home<\/a><a href=\"https:\/\/schellfamilyfarm.com\/#aboutus\">About Us<\/a><a href=\"https:\/\/schellfamilyfarm.com\/#location\">Directions<\/a><a href=\"https:\/\/schellfamilyfarm.com\/?page_id=70300\">Photography Booking<\/a><a href=\"https:\/\/schellfamilyfarm.com\/#ContactUs\">Contact Us<\/a><\/div><div class=\"sff-footer-contact\"><h3>Visit the Farm<\/h3><p><strong>Schell Family Farm<\/strong><br>10055 Dexter-Pinckney Rd<br>Pinckney, MI 48169<\/p><p><a href=\"mailto:schellfamilyfarm@gmail.com\">schellfamilyfarm@gmail.com<\/a><\/p><a class=\"sff-footer-directions\" href=\"https:\/\/www.google.com\/maps\/search\/?api=1&#038;query=10055%20Dexter-Pinckney%20Rd%2C%20Pinckney%2C%20MI%2048169\" target=\"_blank\" rel=\"noopener\">GET DIRECTIONS<\/a><\/div><div class=\"sff-footer-map\"><h3>Find Us<\/h3><div class=\"sff-map-frame\"><iframe title=\"Google Map showing Schell Family Farm\" src=\"https:\/\/www.google.com\/maps?q=10055%20Dexter-Pinckney%20Rd%2C%20Pinckney%2C%20MI%2048169&#038;output=embed\" loading=\"lazy\" allowfullscreen referrerpolicy=\"no-referrer-when-downgrade\"><\/iframe><\/div><\/div><\/div><div class=\"sff-footer-bottom\"><span>&copy; 2026 Schell Family Farm. All rights reserved.<\/span><a href=\"#page-container\" class=\"sff-back-to-top\" aria-label=\"Back to top\">Back to top \u2191<\/a><\/div><\/footer><\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-70300","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/pages\/70300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=70300"}],"version-history":[{"count":5,"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/pages\/70300\/revisions"}],"predecessor-version":[{"id":70530,"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=\/wp\/v2\/pages\/70300\/revisions\/70530"}],"wp:attachment":[{"href":"https:\/\/schellfamilyfarm.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=70300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}