Overnight French Toast Bake

Overnight French Toast Bake


This Overnight French Toast Bake is beginner-friendly and foolproof – perfect for using up leftover dinner rolls or bread after a holiday meal. Prep the night before, let it sit in the fridge overnight and enjoy it for breakfast in the morning. 

overnight blueberry french toast bake

*Originally published 11/2015. Updated 8/2025*

Hi Friends!

This post for an overnight French toast bake is perfect for Christmas morning breakfast or as one of your go-to holiday brunch recipes! It actually first came about almost 10 years ago when I was looking for ways to use up my Thanksgiving leftovers. I was in charge of bringing a Costco-sized bag of dinner rolls to Thanksgiving dinner and we had a bunch leftover.

So I diced them up and make a french toast bake. It was perfect because I threw it together the night before, let it sit in the fridge overnight and baked it in the morning.


Best Bread For Overnight French Toast

The good news is there’s lots of flexibility here! I often make this with leftover dinner rolls but you could easily use a leftover loaf of Italian or French Bread. Any bread or rolls that can be sliced and cut into cubes that aren’t too thin will work. You could try brioche or King’s Hawaiian Bread for a richer-tasting option or sourdough for something slightly less sweet.

Overnight French Toast Bake vs Skillet French Toast

While both options have their place, an overnight french toast bake is definitely an easier way to feed a crowd. You can easily prep a large quantity AND it can be prepped ahead of time to make the morning easier.

This is also a great option for breakfast before school! Bake one up on Sunday and just cut and reheat a piece all week long. No need to babysit and flip the french toast on the stove while you’re running around trying to get everything else ready!


Ingredients for Easy Overnight French Toast Bake

In addition to being able to make this ahead of time, this recipe is also made with just a few simple ingredients, which is a major bonus. You need:

  • Bread – Dinner rolls or other leftover loaf of bread
  • Eggs and milk – These are French toast staple ingredients and you’re making a big pan so you need a lot!
  • Vanilla and Cinnamon – To add flavor
  • Berries– You can use fresh or frozen. I like blueberries best but mixed berries also work.
  • Brown sugar – To make a sweet crust on the top after baking

What Toppings Go Best with Overnight Baked French Toast?

Not into blueberries? Try:

  • Cinnamon and sugar – skip the mix-ins and top with a mixture of cinnamon and sugar
  • Maple Pecan – add some chopped pecans instead of blueberries and drizzle with a little cream cheese sweetened with maple syrup
  • Try mixing in some pumpkin seeds or ground flax for a heart-healthy boost of omega 3 fatty acids
  • Make an easy fruit compote for topping or top with diced fresh fruit of your choice
  • Apple cinnamon – Add extra cinnamon and stir in some chopped apples and walnuts

blueberry french toast bake casserole

How To Make Blueberry French Toast Bake Casserole

To make this recipe you need a 9×13 pan. Line it with parchment paper for easy removal or grease it well.

If your bread isn’t stale, you can cube it and put it in the oven at 170 degrees F for 15 min or so.

To make the casserole:

  • Cube the bread and put it in a 9×13 pan.
  • Add the blueberries.
  • Whisk together eggs, milk, vanilla and cinnamon and pour over the bread.
  • Use your hands to mix it all up and make sure all the bread is coated.
  • Cover with saran wrap and press down to flatten and refrigerate overnight.
  • When ready to bake, remove the saran wrap, sprinkle with brown sugar, bake and serve.

If you had extra cranberry sauce, you could mix some of that in as well!

Make Ahead Baked French Toast Troubleshooting

Should I cover baked French toast when baking?

No need to cover unless you add something like chopped nuts on top. If you notice they start to brown, you can cover with foil towards the end.

How do I make this recie dairy-free?

Feel free to use any type of plant-based milk in this recipe like soy, almond, etc.

Can I make a smaller version in a loaf pan?

Yes! Feel free to cut the recipe in half and bake in a loaf pan!

Should I grease the baking dish for French toast casserole?

Yes, either line the bottom of the pan with parchment paper or grease well before adding the bread and egg mixture to the pan.


How To Freeze and Reheat Overnight French Toast Bake

To freeze, let cool completely, then cut into squares and transfer to a freezer-safe bag (we love Stasher Bags – aff link). Then freeze until needed. Move to the fridge to defrost and microwave to warm.

Easy Overnight Baked French Toast Recipe

Here’s the recipe I use:

Print

Overnight Baked French Toast

overnight french toast bake

icon print
Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

4.5 from 2 reviews

This Overnight Baked French Toast is the perfect recipe to use up leftover dinner rolls after a holiday meal. Prep the night before, let it sit in the fridge overnight and enjoy it for breakfast in the morning.

  • Prep Time: 5 minutes
  • Cook Time: 1 hour
  • Total Time: 1 hour 5 minutes
  • Yield: 9×13 pan

Ingredients

  • 10 cups cubed dinner rolls or bread (approx 12 rolls)*
  • 2 cups fresh or frozen blueberries
  • 8 eggs
  • 1.5 cup milk
  • 1 Tbsp vanilla extract
  • 1 Tbsp cinnamon
  • 1/4 cup brown sugar for sprinkling (optional)

Instructions

  1. Cube rolls and place in a 9×13 pan lined with parchment paper.
  2. Add berries.
  3. In a bowl, mix eggs, milk, vanilla and cinnamon with a whisk.
  4. Pour over bread mixture in pan.
  5. Use your hands to make sure all the bread gets covered with the egg mixture.
  6. Cover with saran wrap, press down gently to flatten and place in the fridge overnight.
  7. When ready to bake, sprinkle top with brown sugar if desired.
  8. Bake at 350 degrees for 45 min and serve.

Notes

*Stale bread works best. Cube and leave your bread out overnight or bake at 170 degrees for 15 minutes before using.

Did you make this recipe?

Tag @theleangreenbean on Instagram

window.trCommon={“minRating”:6,”ajaxurl”:”https://www.theleangreenbean.com/wp-admin/admin-ajax.php”,”ratingNonce”:””,”postId”:20464};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});


Overnight French Toast Bake FAQs

How long should overnight French toast soak?

I find it does best when you soak it for 10-12 hours. You want to give the bread time to absorb the egg but don’t leave it sitting so long that the bread starts to break down.

How to store an overnight french toast bake?

After baking, store the leftovers in the fridge in an airtight container for up to 4 days. To reheat, you can use the microwave!

Could this be a crockpot French toast bake?

I haven’t tried this overnight French toast bake recipe in the crockpot but I think it would work. If you’re looking specifically for a Crockpot recipe, try:

  • Easy Slow Cooker French Toast Casserole
  • Crockpot French Toast Casserole
  • Crockpot French Toast Casserole with Glaze

Could you make an overnight French toast bake with cinnamon rolls?

Yes! This would be delicious, I think. I would probably not replace more than half the bread with cubed cinnamon rolls, and I would skip the brown sugar sprinkle on top since cinnamon rolls are quite sweet.

overnight french toast bake with blueberries

Could this be a cream cheese french toast bake?

If you’re specifically looking for a cream cheese French toast bake, try one of these:

  • French Toast Casserole with Cream Cheese
  • Baked Cream Cheese French Toast Casserole

What to serve with overnight French toast bake?

Need a brunch menu idea? Serve this and let the French toast be the star! Cut into squares in the pan and let everyone serve themselves! Leave out lots of additional toppings like powdered sugar, chopped nuts, syrup, fruit compote and fresh fruit! You could also add easy breakfast sides like scrambled eggs, sausage or bacon, yogurt and coffee.

Does baked French toast need to be refrigerated overnight?

Yes! After mixing the bread and egg mixture and placing in the pan, be sure to store in the fridge until ready to bake.


Overnight French Toast For A Crowd

This Overnight French Toast Bake is perfect for using up leftover dinner rolls or bread after a holiday meal. Prep the night before, let it sit in the fridge overnight and enjoy it for breakfast in the morning. 

This overnight French Toast Bake is easy, affordable and sure to be a hit for your next brunch, holiday breakfast but can just as easily help out a tired mom on a busy weekday morning.

Easy Breakfasts To Feed A Crowd

Need more ideas? Try:

  • Healthy Blueberry Muffins
  • Egg Waffles
  • Tater Tot Waffles
  • Breakfast Enchilada Casserole
  • Crepe Kabobs

Enjoy!
–Lindsay–





Source link

More From Author

6 Essential Daily Rituals that Will Change the Rest of Your Life

6 Essential Daily Rituals that Will Change the Rest of Your Life

ProSomnus Oral Appliances – American Academy of Sleep Medicine – Association for Sleep Clinicians and Researchers

ProSomnus Oral Appliances – American Academy of Sleep Medicine – Association for Sleep Clinicians and Researchers

Leave a Reply

Your email address will not be published. Required fields are marked *