91³Ô¹ÏÍø

Watch CBS News

Here's which stores are open and what's closed on Easter Sunday in Massachusetts

Easter Sunday is today, and some grocery stores and other businesses in Massachusetts are announcing they'll be open with special holiday hours or closed altogether.

"Blue laws" in the state force retailers to close on some holidays like Thanksgiving and Christmas, but they do not prevent stores from opening on Easter.

Here's a look at where you can and can't shop on Easter in Massachusetts:

Is Market Basket open on Easter?

All Market Basket supermarkets are closed on Easter Sunday.

Is Big Y open on Easter?

Big Y stores are also closed Sunday.

"We will be closed on Easter Sunday, April 5th, so that our employees may spend time with loved ones," the supermarket says on its website.

Is Stop & Shop open on Easter?

Stop & Shop stores will open at 7 a.m. but close early at 5 p.m. All in-store pharmacies will be closed.

Is Shaw's/Star Market open on Easter?

Shaw's and Star Market stores in Massachusetts will have regular Sunday hours, but all pharmacies will be closed for the day.

Is Trader Joe's open on Easter?

Trader Joe's will be open for regular hours on Easter.

Is Price Chopper/Market 32 open on Easter?

Price Chopper and Market 32 stores will be open normal hours, but pharmacies close at 2 p.m.

Is Roche Bros. open on Easter?

"Roche Brothers will be closed to allow associates time with their families," a store spokesperson said.

Is Wegmans open on Easter?

Wegmans says its stores will be open normal business hours on Sunday, but some departments might have modified or shortened hours. Customers should contact their local store for more information.

Is Hannaford open on Easter?

Hannaford stores in Massachusetts will be open from 7 a.m. to 3 p.m. on Easter.

Is Whole Foods open on Easter?

Most Whole Foods stores in Massachusetts will close early at 6 p.m. on Easter. Some will stay open until 8 p.m.

Is BJ's Wholesale Club open on Easter?

BJ's will be open from 8 a.m. to 6 p.m. Some club hours may vary slightly, and members can check with their local club.

Are liquor stores open on Easter?

Yes, liquor stores can be open and sell alcohol on Easter in Massachusetts. 

Is Costco open on Easter?

Costco stores are closed on Easter.

Is TJ Maxx/Marshalls open on Easter?

Framingham-based TJX says TJ Maxx, Marshalls, HomeGoods, Sierra and Homesense stores will be closed on Easter.

"We consider ourselves an Associate-friendly company and we are pleased to give Associates the time to enjoy Easter with family and friends," a TJX spokesperson said.  

National chains like Target, Lowe's and Kohl's are also closed on Easter. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });