ADVERTISEMENT

Habagat rains prompt Metro Manila class suspensions Aug. 14

Published Aug 14, 2026 11:17 am  |  Updated Aug 14, 2026 01:12 pm
(File photo)
(File photo)
Classes were suspended in several Metro Manila cities on Friday, Aug. 14, as persistent rains from the southwest monsoon or habagat continued to affect the capital region.
The suspensions covered various grade levels in public and private schools, with some local governments shifting to Alternative Delivery Mode (ADM) while others called off only afternoon face-to-face classes.
In Manila, classes from kindergarten to senior high school in public and private schools were suspended, with learning activities shifted to ADM.
Valenzuela City and Malabon City suspended classes at all levels in public and private schools and shifted learning activities to ADM.
Mandaluyong City suspended classes from preschool to Grade 12, including those under the Alternative Learning System (ALS).
In Pasig City, classes from kindergarten to senior high school, as well as those in Day Care/Early Childhood Development Centers and ALS, were suspended, with learning activities shifted to ADM.
Marikina City and San Juan City suspended classes at all levels in public and private schools, while Pateros called off classes from preschool to senior high school in both public and private schools.
In Makati City, face-to-face classes at all levels in both public and private schools were suspended.
Quezon City suspended afternoon face-to-face classes in public schools covering learners in Child Development Centers, kindergarten, Grades 1 to 12, and ALS.
In Caloocan City, afternoon classes at all levels in public and private schools were suspended due to continuous rains brought by the habagat, with classes shifted to ADM.
Las Piñas City also suspended classes at all levels in public and private schools.
Navotas City suspended all face-to-face classes at all levels in public and private schools beginning 12 noon on Friday, with schools shifting to alternative delivery modes, including online, asynchronous, or modular learning.
Meanwhile, in nearby Rizal province, Taytay suspended all afternoon face-to-face classes at all levels in public and private schools due to the expected continued rainfall and a Yellow Heavy Rainfall Advisory in the province.
Classes in Taytay shifted to Alternative Modes of Delivery of Learning (AMDL), based on the learning arrangements of individual schools.
In Bulacan, 24 local government units also suspended face-to-face classes at all levels in public and private schools amid the prevailing weather conditions.
The affected areas were Angat, Balagtas, Baliwag, Bocaue, Bulakan, Bustos, Calumpit, Doña Remedios Trinidad, Guiguinto, Hagonoy, Malolos, Marilao, Meycauayan, Norzagaray, Obando, Pandi, Paombong, Plaridel, Pulilan, San Ildefonso, San Jose del Monte, San Miguel, San Rafael, and Santa Maria.
Local governments continued to monitor flood-prone communities, waterways, and other areas vulnerable to prolonged rainfall as the habagat persisted over Metro Manila and nearby provinces. (With reports from Manila Bulletin Metro Team)

Related Tags

Metro Manila class suspension habagat southwest monsoon rainy weather public schools private schools Alternative Delivery Mode Aug. 14 2026
ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ static_articles_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.