Roads will turn slippery mid-morning through mid-afternoon
Advertisement
Hour-by-hour: See when to expect steady snow Tuesday in Vermont, New York
Roads will turn slippery mid-morning through mid-afternoon
Advertisement
NBC5 First Warning Meteorologist
Advertisement
NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon. Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.Watch the video above to see the timeline for your area.
NBC5 meteorologists expect a burst of steady snow to arrive Tuesday morning in Vermont and northern New York, lasting through the early-mid afternoon.
Advertisement
Deteriorating road conditions will lead to slow travel for several hours, with some improvement expected by the evening commute.
Watch the video above to see the timeline for your area.
Advertisement
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
Advertisement
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
Advertisement
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
Advertisement
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
Advertisement
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
`;
}
Advertisement
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
Advertisement
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.mynbc5.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.mynbc5.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
Advertisement
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
WOODSTOCK — The pharmacy inside Ottauquechee Health Center on Pleasant Street is closed as of Friday, along with two other Vermont pharmacies owned by Smilin’ Steves Pharmacies.
The Vermont pharmacy chain announced in a Facebook post just after 2 p.m. Friday that the three locations would be permanently closed at the end of the day. Signs were also posted on the front doors of the stores in Woodstock, Springfield and Ludlow.
Smilin’ Steves’ Rutland pharmacy and High Mountain Home Care LTC Pharmacy, also in Rutland, will stay open.
Advertisement
The company urged customers to call the Rutland pharmacy at 802-775-2545 to transfer prescriptions to another pharmacy, access records or with any other questions.
“We apologize for the suddenness of this,” one of the companies’ owners, Jeff Hochberg, said in a Monday interview. “This was out of our control and we are trying to do everything we can to help correct the situation here and now and forever as long as we can.”
A sign on the door of the Springfield Pharmacy on Monday, May 18, 2026 in Springfield, Vt. JENNIFER HAUCK / Valley News
While the Facebook post from Smilin’ Steves Pharmacies references “unforeseen circumstances with our wholesaler,” Hochberg declined to provide specific details about the situation that he said arose last week. He described it as a “David-Goliath situation” and “where healthcare meets capitalism.”
“I really can’t speak too much to the circumstances other than that they were totally unforeseen. This was not planned and we did everything we could to try to rectify the situation as quickly as possible,” Hochberg said, adding that the situation is still unfolding and there may be “more to come.”
He also declined to explain why the Rutland pharmacy and home care pharmacy were able to continue operating.
Advertisement
The Ottauquechee Pharmacy opened inside the Dartmouth Health-run Ottauquechee Health Center in 2021 after the 167-year-old Woodstock Pharmacy closed its doors in 2020.
DH, which had no ownership or oversight of the pharmacy, learned about the closure on Friday, Keith Thomasset, the health network’s chief pharmacy officer, said in a Monday statement.
DH is “committed to ensuring our patients have access to the care they need, including medications,” and has started researching short-term and long-term solutions to address the pharmacy shortage in and around Woodstock, Thomasset said.
But “opening a new pharmacy is not a quick process,” he added.
Options might include “developing a proposed plan to assist with acute care needs while (continuing) to utilize other Dartmouth Health system pharmacy services, such as our own specialty pharmacy and home delivery pharmacy services,” or starting a new DH-owned pharmacy in the area, Thomasset said.
Advertisement
With the closure, Woodstock joins the growing list of Upper Valley towns without a pharmacy. Amid a bankruptcy case, Rite Aid closed all its locations last summer, leaving Windsor and Bethel without pharmacies.
Pharmacies around Vermont have closed over the last several years, often citing poor margins as a result of low reimbursement rates, according to reporting from VtDigger.
Woodstock residents will have to order prescriptions by mail or travel 25 minutes to pharmacies in Lebanon, including CVS, Hannaford, Price Chopper, Walmart and Walgreens or 35 minutes to Kinney Drugs in Randolph.
For its part, Springfield still has a Kinney Drugs location and the recently-opened North Star Health Pharmacy.
Hochberg encouraged Smilin’ Steves customers to contact the Rutland pharmacy with any questions, adding “the system is designed for situations like this” and customer data is still accessible.
Advertisement
As for the employees, Hochberg said the company reached out to other pharmacies to see if anyone was hiring immediately. He did not know exactly how many employees were impacted by the closures, but said it is more than 10.
When asked if there is any possibility of reopening the closed locations as the company works to resolve the situation, Hochberg said the “future is very uncertain.”
“There is definitely a possibility of something in the future, pharmacy is not going anywhere, it’s just got to change,” Hochberg said.
Over the last few years, many states have made it harder for transgender people to access gender-affirming care, or in some cases have outright banned it for minors.
Transgender people in many states have been restricted from playing sports or using bathrooms that match their identities, and some states have censored school curricula that discuss LGBTQ+ people more broadly and limited free expression. At the federal level, the Trump administration has sought to limit people’s ability to update IDs like passports to reflect their gender.
That’s why many local LGBTQ+ organizations say celebrating Pride Month, which traditionally occurs in June to commemorate the Stonewall riots, is more important than ever.
Advertisement
Free Vermont newsletter: Want to know how we do stories? Sign up for our new, free weekly newsletter and hear straight from us.
“Looking at so much of how this country is portraying queer and trans people, we need to celebrate who we are as a people,” said Essex Pride President Kris Smith Thyme. “We need to show that we’re not monsters in a closet, that we’re friends and partners, neighbors, artists and creators.”
“There’s nothing more beautiful than celebrating queerness and transness in the face of all this hatred,” Thyme said.
Advertisement
St. Albans Pride Corps President Scott Bushey echoed Thyme’s sentiments.
“Pride celebrations started out as the very first protests,” said Bushey, and today holding a Pride event is practicing peaceful protest.
“(We’re) standing up for the fact that we deserve the same rights that everyone else gets,” Bushey said. “That we shouldn’t have to fight to get them or to keep them. That we shouldn’t have to worry about what we’re legally able to do.
Essex Pride and St. Albans Pride Corps are two of a number of Vermont LGBTQ+ organizations preparing to host events — festivals, movie nights, arts performances and social hours — to honor people who’ve faced discrimination for their sexualities or genders around this time of year.
Essex Pride’s three-day celebration is slated to take place a few days before Pride Month, from May 29-31, St. Albans Pride Corps’ six-day celebration is set for June 7-14.
Advertisement
Both Thyme and Bushey said their groups’ plans include “something for everyone,” regardless of age or interests.
Essex Pride events
Essex Pride’s fourth annual Pride celebration includes a garlic bread-eating social gathering; a comedy show and dance party; a drag story hour; a festival; a families and friends happy hour; a festival afterparty, which will include a drag and burlesque show with local performers; and free movie screenings of “The Mitchells vs. The Machines” and “Paris is Burning.”
The festival will include local performances, vendors, food trucks and creative activities for all ages and abilities. There will also be a quiet indoor space for people to view the Vermont Queer Archives and a memorial to trans people who have died from violence.
“Joy is the greatest act of resistance, but we can’t ignore what’s happening to the community now,” said Thyme.
Advertisement
St. Albans Pride Corps events
St. Albans Pride Corps’ third annual Pride celebration includes a Pride-based church service; a film screening of and panel discussion about “To Wong Foo, Thanks for Everything! Julie Newmar”; Pride game and karaoke nights; its Pride in the Park festival; a drag show; a parade; and a family day and ice cream social, with free Ben & Jerry’s ice cream.
St. Albans Museum will also have a monthlong exhibit about Pride in Vermont through the years. Attendees can add to a storytelling quilt at the museum.
Bushey said his organization included a Pride-based church service in its lineup because religious spaces are where many LGBTQ+ people have historically faced significant discrimination. He added that St. Albans has a “very large LGBTQ church-going community.”
“It’s really important to us that we really highlight the support of these local churches,” said Bushey. “There are lots of people who go to church who don’t come out because they’re afraid of being kicked out or pushed away.”
Advertisement
The five churches that will share the service believe “everybody is loved by God, that everyone is welcomed in church,” Bushey said.
Megan Stewart is a government accountability reporter for the Burlington Free Press. Contact her at mstewartyounger@gannett.com.
Vermont is the home to several notable sports legends over the decades, from Susan Dunklee to David Ball to Albert Gutterson and beyond.
And that trend continues today, with high school athletes creating storylines across the state.
Which high schools in Vermont are considered the best for athletes in 2026?
According to a study conducted by Niche, which accounts for “reviews of athletics, number of state championships, student participation in athletics, and the number of sports offered at the school”—and data from the U.S. Department of Education—these are the top 25.
Advertisement
25. Spaulding High School (Barre)
Total number of sports: 19
24. Bellows Free Academy (Saint Albans)
Total number of sports: 15
23. Danville School
Total number of sports: 22
22. Montpelier High School
Total number of sports: 19
21. Hazen Union School (Hardwick)
Total number of sports: 19
Advertisement
20. Brattleboro Union High School
Total number of sports: 19
19. Otter Valley Union High School (Brandon)
Total number of sports: 19
18. Milton Senior High School
Total number of sports: 20
17. Enosburg Falls Junior/Senior High School
Total number of sports: 20
16. Champlain Valley Union High School (Hinesburg)