Typhoon Kalmaegi, known in the Philippines as Typhoon Tino, was a strong, deadly and extremely impactful tropical cyclone that affected portions of the central Philippines, particularly in Cebu, causing freshwater flooding due to record-breaking rains. It later struck Central Vietnam as one of the strongest typhoons on record in the area during early November 2025. The deadliest typhoon to strike the Visayas since Typhoon Rai in 2021, Kalmaegi is the twenty-fifth named storm and eleventh typhoon of the 2025 Pacific typhoon season.
Kalmaegi originated from an area of convection on October 30. The following day, it was later classified as a tropical depression as the Joint Typhoon Warning Center (JTWC) issued a Tropical Cyclone Formation Alert (TCFA) at 02:00 UTC. At 12:00 UTC, the Japan Meteorological Agency (JMA) upgraded the system to a tropical storm and assigned it the name Kalmaegi, as environmental conditions became increasingly favorable for development. The JTWC followed suit at 21:00 UTC, also designating it as a tropical storm. The system entered the Philippine Area of Responsibility (PAR) at 05:30 PHT on November 2 (21:30 UTC on the previous day) and was named Tino by the Philippine Atmospheric, Geophysical, and Astronomical Services Administration (PAGASA). At 12:00 UTC, the JMA upgraded Kalmaegi to a severe tropical storm. By 03:00 UTC on November 3, PAGASA, the JTWC, and the JMA all upgraded the system to typhoon status, citing a highly favorable environment for rapid intensification.
Tropical Cyclone Wind Signal No. 4, indicating potential winds of 118–184 km/h (73–114 mph), was raised in numerous areas. Kalmaegi generated strong winds and flooding that left at least 269 people dead, 523 injured and 113 others missing in the Philippines, mostly in Cebu, with 13 additional fatalities in Thailand and six more in Vietnam.
Meteorological history
Kalmaegi originated from an area of strong convection that developed on October 30, located about 313 nautical miles (580 km) east-southeast of Yap. Satellite imagery showed cycling deep convection over a poorly organized low-level circulation center (LLCC). The disturbance was embedded in a favorable environment for tropical cyclogenesis, with low wind shear and warm sea surface temperatures (SSTs). On the following day, the JMA classified the system as a tropical depression as its LLCC slowly consolidated. The JTWC noted that the depression remained in an environment conducive for further development, characterized by light vertical wind shear and warm SSTs. Around 05:00 PHT (21:00 UTC on the previous day) on November 1, PAGASA also classified the system as a tropical depression.
The JTWC issued a TCFA at around 02:00 UTC on November 1, citing a high probability of further development as the system moved west-northwestward. The JTWC noted a broad low-level circulation center (LLCC) with convection concentrated north of the center and some curved banding features. Favorable environmental conditions persisted, supported by good poleward outflow. As the LLCC gradually consolidated and convective banding wrapped around its northern semicircle, the system began tracking northwestward along the southwestern edge of a subtropical ridge. At 06:00 UTC, the JMA noted that, while the system remained in a favorable environment, the limited organization of its structure caused it to maintain its intensity for several hours. The JTWC later designated the system as 31W at 09:00 UTC. At around 12:00 UTC, the JMA upgraded 31W to a tropical storm, assigning it the name Kalmaegi. The JTWC observed a symmetric central dense overcast (CDO) enveloping the LLCC and described the system as compact as it tracked along the southern periphery of a subtropical ridge located to the northeast. By 21:00 UTC, the JTWC also classified Kalmaegi as a tropical storm, citing an expanding CDO and a highly favorable environment for further intensification. The storm later entered the PAR at 05:30 PHT on November 2 (the day before at 21:30 UTC) and was given the local name Tino. Satellite imagery showed robust radial outflow and intense central convection, with the deepest convection concentrated over the northern and western semicircles.
At 17:00 PHT (09:00 UTC), PAGASA upgraded Kalmaegi to a severe tropical storm. The JMA noted a brief slowdown in intensification before the system resumed strengthening. According to the JTWC, deep convective bursts developed over the center, with a banding feature forming to the north. Microwave imagery showed a small, forming eye and strong convection displaced slightly to the south, indicating increasingly favorable conditions for further intensification. Three hours later, the JMA also upgraded Kalmaegi to a severe tropical storm. The JTWC noted two distinct clusters of deep convection forming an oblong-shaped CDO. By 18:00 UTC, two lobes became apparent: the southeastern lobe was centered over the low-level circulation and served as the primary region of deep convection, while the northwestern lobe exhibited strong poleward outflow. At 03:00 UTC on November 3, the JTWC upgraded Kalmaegi to a typhoon, citing a consistently favorable environment and strong outflow supported by trade winds. Multispectral satellite imagery showed a compact core with deep convection wrapping closely around the center. At the same time, the JMA and PAGASA also upgraded the system to a typhoon when it was approximately 368 nautical miles (682 km) north-northeast of Sonsorol. The JTWC later noted that deep convection wrapped around the core but an eye failed to develop due to persistent northeasterly wind shear, despite otherwise favorable conditions.
On November 4, Kalmaegi intensified into a Category 2-equivalent typhoon before making landfall in Silago, Southern Leyte at around 00:00 PHT (16:00 UTC). It then weakened back into a Category 1 typhoon due to land interaction. The system went on to make three additional landfalls in Borbon, Cebu, Sagay, Negros Occidental, and San Lorenzo, Guimaras at 05:10 PHT (21:10 UTC), 06:40 PHT (22:40 UTC), and 11:10 PHT (03:10 UTC), respectively. The repeated landfalls caused Kalmaegi to slightly weaken and slow as it moved into the Iloilo Strait. At 13:20 PHT (05:20 UTC), Kalmaegi made its fifth landfall over Iloilo City. It then made a sixth landfall in Magsaysay in the Cuyo Archipelago at 19:30 PHT (11:30 UTC). At 04:10 PHT (20:10 UTC) on November 5, Kalmaegi made its seventh landfall over Batas Island in Taytay, Palawan, followed by an eighth landfall at 04:40 PHT (20:40 UTC) over El Nido, Palawan. Subsequently, Kalmaegi emerged over the South China Sea, where it began reorganizing under favorable oceanic and atmospheric conditions, with satellite imagery showing improved structure and strengthening convection. It rapidly intensified under favorable conditions, and the JTWC upgraded the storm into a Category 3-equivalent typhoon as a broad region of diffluent outflow developed and a ragged eye formed. The JMA soon followed suit and upgraded Kalmaegi into a very strong typhoon. The JTWC, on November 6, noted that Kalmaegi began to gradually weaken on approach to Vietnam due to northeasterly wind shear, although the environment remained marginally favorable, and satellite imagery continued to show a well-defined eye. Later that day, Kalmaegi moved inland over the provinces of Gia Lai and Đắk Lắk in southern Central Vietnam, with its center crossing near the northern part of Sông Cầu in Đắk Lắk. Subsequent interaction with the mountainous terrain rapidly disrupted the typhoon's structure, prompting the JTWC to issue its final warning at 15:00 UTC as it moved west-northwestward. At 18:00 UTC, the JMA downgraded the system to a severe tropical storm. Three hours later, the storm was downgraded again into a tropical storm before fully dissipating on November 7.
Two stations in Vietnam recorded the lowest sea-level atmospheric pressure during Typhoon Kalmaegi's impact lower than 975 hPa. An Nhơn weather station, located in Gia Lai province, recorded 973.2 hPa, and Quy Nhon weather station, also in Gia Lai province, recorded 967 hPa.
Preparations
Philippines
Highest Tropical Cyclone Wind Signal
Source:
At 11:00 PHT (03:00 UTC) on November 2, PAGASA issued Tropical Cyclone Wind Signal No. 1, indicating winds of 24 to 38 mph (39 to 61 km/h) after at least 36 hours, over Eastern Samar, Dinagat Islands, Siargao Island, and Bucas Grande Island. Six hours later, seven more provinces across the Visayas and Mindanao were added under Signal No. 1. At 23:00 PHT (15:00 UTC), Guiuan, Salcedo, and Mercedes in Eastern Samar, alongside Siargao Island and Bucas Grande Island, were raised to Signal No. 2, indicating winds of 62 to 88 km/h (39 to 55 mph) after at least 24 hours, while additional areas were also placed under Signal No. 1. By 05:00 PHT on November 3 (21:00 UTC on November 2), Signal No. 2 was extended to eleven more provinces.
At 08:00 PHT (00:00 UTC), Guiuan, Mercedes, Dinagat Islands, Siargao Island, and Bucas Grande Island were all elevated to Signal No. 3, signifying winds of 89 to 117 km/h (55 to 73 mph) after at least 18 hours. At 11:00 PHT (03:00 UTC), the southern part of Eastern Samar, Marabut in Samar, the central and southern portions of Leyte, Southern Leyte, Camotes Islands, the eastern portion of Bohol, Dinagat Islands, and the northern portion of Surigao del Norte were also placed under Signal No. 3. Three hours later, Dinagat Islands, Siargao Island, and Bucas Grande Island were upgraded to Signal No. 4, indicating winds of 118 to 184 km/h (73 to 114 mph) after at least 12 hours. At 17:00 PHT (09:00 UTC), Guiuan, the southern portion of Leyte, Southern Leyte, the Camotes Islands, and the northeastern portion of Bohol were raised to Signal No. 4. Three hours later, Signal No. 4 was extended to include Mercedes, the western portion of Leyte, and the northern portion of Cebu. At 23:00 PHT (15:00 UTC), the northernmost portion of Negros Oriental, the northern portion of Negros Occidental, and Guimaras were placed under the signal. Three hours later on November 4, the central and southern portions of Iloilo and the southern portion of Antique were likewise placed under the signal. At 08:00 PHT (00:00 UTC), the entire province of Iloilo and the southern portion of Aklan were added to the signal as well. As Kalmaegi approached Palawan, Signal No. 4 was hoisted in the northern portion of the province as well as the Calamian and Cuyo Islands. At 17:00 PHT (09:00 UTC), all areas previously under Signal No. 4 and No. 3 were lifted. By November 6, only Kalayaan, Palawan remained under alert; PAGASA issued its final bulletin at 17:00 PHT (09:00 UTC) that same day.
The Regional Disaster Risk Reduction and Management Council (RDRRMC) of Eastern Visayas warned citizens to avoid travel to and from the region and suggested the public to view weather bulletins. Officials of Lapu-Lapu City held a meeting to prepare for the storm's impact. The Department of Social Welfare and Development (DSWD) prepared thousands of food packs and placed specialized equipment on standby. All sea travel in Surigao del Norte and nearby routes due to bad conditions. Cebu City was placed in a blue alert, causing all response units in the city to be on standby. Cebu Governor Pam Baricuatro initiated a disaster preparedness and response plan for 11 municipalities and 1 city affected by the 2025 Cebu earthquake. The Department of Education alerted disaster reduction teams throughout the nation due to 25,000 schools having a risk of landslide. The National Capital Region Police Office considered raising a full alert due to the storm. A Cebu Schools Athletic Foundation, Inc. basketball match between the University of the Visayas and the University of Southern Philippines Foundation was postponed. Evacuations were done in Palo and Tanauan, Leyte. The local government in Guiuan resorted to forced evacuations. Dinagat Islands Governor Nilo Demerey Jr. reported that 10,000 to 15,000 people were evacuated in the province. The Office of Civil Defense on November 4 reported that 400,000 people had been evacuated nationwide. Cebu archbishop Alberto Uy ordered all churches in the Archdiocese of Cebu to be used as shelters for displaced residents. Kalmaegi caused 723 cities and municipalities to suspend their classes. Eighty-nine towns suspended classes in Calabarzon, 62 suspended classes in Mimaropa, 72 suspended classes in Bicol (Region 5), 98 suspended classes in Western Visayas (Region 6), 62 suspended classes in the Negros Island Region, 101 suspended classes in Central Visayas (Region 7), 143 suspended classes in Eastern Visayas (Region 8), 24 suspended classes in Northern Mindanao (Region 10), and 72 suspended classes in Caraga. Meanwhile, 484 cities and municipalities suspended work. One town suspended classes in Calabarzon, 60 in Mimaropa, 21 in Region 5, 62 in Region 6, 47 in the Negros Island Region, 101 in Region 7, 123 in Region 8, 10 in Region 10, and 59 in Caraga.
Vietnam
On the afternoon of November 4, several communes and wards in Gia Lai province began mobilizing and evacuating people in vulnerable areas at high risk of landslides and flooding. Thousands of people in Gia Lai and Quảng Ngãi province evacuated to shelters. Approximately 350,000 people were evacuated in Gia Lai in the lead-up to the storm. A further 7,976 people were evacuated in Dak Lak province. Six airports in central Vietnam suspended operations. Tô Lâm, the general secretary of the Communist Party of Vietnam, cut short a meeting of the party's Central Committee to allow officials to head back to affected regions. More than 260,000 soldiers and personnel, 6,700 vehicles and six aircraft were deployed for relief operations.