91³Ô¹ÏÍø

Watch CBS News

Patriots' Day 2026 in Massachusetts: Here's what's open and what's closed.

Monday, April 20 is Patriots' Day, a holiday that's especially important in Massachusetts.

Not only is it Marathon Monday for the 130th running of the Boston Marathon, it's also a day to commemorate the start of the American Revolution. 

What is Patriots' Day?

Patriot's Day has been a holiday in Massachusetts since 1894. While April 19 is the official designated holiday, it is observed on the third Monday of April.

The date marks the first battles of the American Revolution in Lexington and Concord, Massachusetts. 

What's closed on Patriots' Day?

Public schools are closed in Massachusetts on Patriots' Day, as are all state, county and municipal offices and courts. 

All RMV offices and Service Center locations are also closed Monday.

What's open on Patriots' Day?

Federal offices and courts are open Monday, as is the Post Office, because Patriots' Day is not a federal holiday.

Most banks, retail stores, supermarkets, restaurants and gyms will be open. Liquor stores are also allowed to open, as are cannabis dispensaries on what's known as the "4/20" holiday. 

Patriots' Day events

Besides the Marathon, there are other annual events on Patriots' Day in Massachusetts.

The Boston Red Sox have their annual Patriots' Day game, starting at 11:10 a.m. against the Chicago White Sox at Fenway Park.

The town of will have a parade on Main Street at 9 a.m., followed by a block party from noon to 4 p.m.

The Daughters of the American Revolution will hold a wreath-laying ceremony at the Battle Green in at 10 a.m. before a "Paul Revere arrival" at 12:30 p.m.

Patriots' Day MBTA schedule

The subway will run on a weekday schedule while buses will be on a modified Saturday schedule to accommodate the marathon.

The Commuter Rail will run on a special marathon schedule on the Worcester line, with all other lines on a weekday schedule. The $10 holiday weekend pass will be good for Monday. 

The ferry and The Ride will be on a weekday schedule. 

Copley Station near the finish line will be closed all day for safety reasons. More information is available at the

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });