Schedule a pickup order

Bakery pickup days:

Thursday - Monday (8am to 4pm)*

Orders must be placed at least 48 hours ahead of desired pickup time.

Richmond, VA

This week’s pickup location:

*Crowded Table Baking Co. is CLOSED until 10/30. We apologize for any inconvenience.

ORDER FORM

We will reach out within 1 business day to finalize your order and confirm pickup details.

Looking to request a cake or group catering order?

Submit here.

<script>
// Wait for everything to fully load
window.addEventListener('load', function() {
  
  // Add a slight delay to ensure form is rendered
  setTimeout(function() {
    
    // DATE FIELD: Try multiple ways to find it
    const dateInput = document.querySelector('input[type="date"]') || 
                     document.querySelector('.field-element[type="date"]') ||
                     document.querySelector('[data-type="date"] input');
    
    if (dateInput) {
      console.log('Date field found!'); // Check browser console to confirm
      
      // Set minimum date to 2 days from now
      const today = new Date();
      const minDate = new Date(today);
      minDate.setDate(today.getDate() + 2);
      dateInput.min = minDate.toISOString().split('T')[0];
      
      // Validate on change to only allow Thu-Mon
      dateInput.addEventListener('change', function() {
        const selectedDate = new Date(this.value + 'T00:00:00');
        const dayOfWeek = selectedDate.getDay();
        
        // Allow: Thursday(4), Friday(5), Saturday(6), Sunday(0), Monday(1)
        const allowedDays = [0, 1, 4, 5, 6];
        
        if (!allowedDays.includes(dayOfWeek)) {
          alert('Please select a Thursday, Friday, Saturday, Sunday, or Monday for pickup.');
          this.value = '';
        }
      });
    } else {
      console.log('Date field NOT found');
    }
    
    // TIME FIELD: Try multiple ways to find it
    const timeInput = document.querySelector('input[type="time"]') ||
                     document.querySelector('.field-element[type="time"]') ||
                     document.querySelector('[data-type="time"] input');
    
    if (timeInput) {
      console.log('Time field found!'); // Check browser console to confirm
      
      // Set min and max times
      timeInput.min = "08:00";
      timeInput.max = "16:00";
      
      // Additional validation
      timeInput.addEventListener('change', function() {
        const selectedTime = this.value;
        
        if (selectedTime < "08:00" || selectedTime > "16:00") {
          alert('Please select a pickup time between 8:00 AM and 4:00 PM.');
          this.value = '';
        }
      });
    } else {
      console.log('Time field NOT found');
    }
    
  }, 1000); // 1 second delay
  
});
</script>