Halo-Halo Three Ways
Watch the full recipe

See every step.

Play the complete Kubo Cooks video directly on this page.

Player not loading? Watch on YouTube ↗

Discover the dish

About Halo-Halo Three Ways

Halo-halo is a Filipino shaved-ice dessert filled with a mixture of sweetened fruits, beans, jellies, milk, and other toppings. In Filipino, halo means “mix,” so halo-halo can be understood as “mix-mix.” The name describes how everything is mixed together before eating.

The modern dessert is often linked to shaved-ice sweets introduced by Japanese migrants before the Second World War. Filipinos gradually made it their own by adding local ingredients such as saba, kamote, macapuno, langka, ube, and leche flan. Today, the exact combination varies between regions, businesses, and individual households.

This recipe features three versions: Milky White Halo-Halo, Ube Halo-Halo, and Classic Overload Halo-Halo. Each one uses a different combination of creamy, chewy, fruity, and crunchy ingredients.

Making shaved ice normally requires a dedicated appliance, such as an electric ice shaver or a powerful blender. Most Filipino households do not keep single-purpose appliances like those, with the exception of a rice cooker, of course. So this recipe uses a simpler method: the milk mixture is frozen and shaved using only a regular kitchen knife.

The Kubo Cooks method

Why This Recipe Works

Freezing the powdered-milk mixture creates an ice base that is already creamy and flavorful. It prevents the finished halo-halo from tasting watery as the ice begins to melt.

Freezing the mixture in smaller portions produces manageable blocks that can be shaved with a regular kitchen knife. This means you can make finely shaved milk ice without needing an electric ice shaver or a powerful blender.

Flavoring part of the mixture with ube before freezing distributes the flavor throughout the ice instead of relying entirely on ube halaya as a topping.

The homemade sweetened saba and kamote provide two different textures. Nearly ripe saba becomes tender without immediately falling apart, while evenly cut kamote stays firm enough to hold its shape in the bowl.

Allowing the cooked ingredients and gulaman to cool completely protects the frozen base. Warm toppings would melt the finely shaved milk ice before the halo-halo can be served.

Each bowl combines soft, chewy, creamy, and crunchy ingredients. The toppings can still be adjusted according to preference, which is part of what makes halo-halo enjoyable.

Ingredients for Halo-Halo Three Ways
What to know

Ingredient Notes

Powdered milk and water
These form the milk ice used instead of plain shaved ice. Mix thoroughly so no dry pockets of powdered milk remain before freezing.
Ube flavoring
Added to part of the milk mixture before freezing. Start with the measured amount because the strength and color can vary between brands.
Sweetened saba
Use nearly ripe saba. It should be mature enough to become tender but still firm enough to hold its shape while simmering.
Sweetened kamote
Cut the sweet potato into small, evenly sized cubes. Rinsing removes excess surface starch and helps keep the syrup clearer.
Ube halaya
Adds a thicker, more concentrated ube flavor to the Ube and Classic Overload versions.
Macapuno
Provides soft, sweet coconut strips and a slightly chewy texture.
Kaong and nata de coco
These add color and chewiness. Drain away excess packing syrup before adding them if you do not want the bowl to become overly sweet.
Pandan gulaman
Let it set completely before cutting it into small cubes. Smaller pieces are easier to mix through the shaved ice.
Sweetened red monggo
Adds an earthy sweetness that balances the fruit, jelly, and creamy toppings.
Langka
A small amount provides a noticeable fruity aroma. Cut large strips into smaller pieces so they distribute more evenly.
Sweet corn
Its mild sweetness and firmer texture work well with the softer ingredients.
Leche flan
Add it close to serving so it remains visible and does not break apart before the halo-halo is mixed.
Grated cheese
Adds a lightly salty contrast to the sweet milk, ice cream, and preserved fruits.
Ice cream
Vanilla, mango, cheese, or ube ice cream can be used depending on the version and your preferred combination.
Evaporated milk
Pour it over the bowl immediately before serving. The milk helps loosen the shaved ice and brings the ingredients together.
Corn flakes and barquillos
Add these last so they remain crisp until the halo-halo is served.
Sugar
Optional for the assembled bowls. Taste after mixing because the preserved fruits, jellies, ice cream, and leche flan already contribute plenty of sweetness.
Make it your own

Substitutions

Milk ice
Whole milk can be frozen instead, although its texture and milk flavor may differ from the powdered-milk mixture.
Saba
Use a firm ripe plantain when saba is unavailable. Cook only until tender enough to eat while still holding its shape.
Kamote
Ube or another firm sweet potato can be used, but the color and cooking time may differ.
Macapuno
Use young coconut strips for a less sweet coconut component, or omit it.
Kaong and nata de coco
Replace either one with another jelly or chewy halo-halo ingredient. They may also be omitted.
Pandan gulaman
Use unflavored or another flavored gulaman. Prepare it according to its package instructions because setting strength can vary.
Sweetened red monggo
Sweetened white beans or another prepared bean topping can be used. It may also be left out.
Ube halaya
Use a different sweetened root-crop topping or omit it for a non-ube version.
Evaporated milk
Fresh milk or unsweetened coconut milk can be used, although each will give the dessert a different flavor and richness.
Ice cream
Use any complementary flavor or leave it out for a lighter bowl.
Premade halo-halo mix
A bottled or jarred halo-halo mix can replace several individual toppings when you want something more convenient. In my experience, the quality and texture are not always as good as preparing or choosing the ingredients separately, although this may depend on the brand. Drain some of the syrup and taste the mixture before adding extra sugar.
Individual toppings
Halo-halo is flexible. Any topping you do not enjoy or cannot find may simply be omitted.
Halo-Halo Three Ways process photo 1
Halo-Halo Three Ways process photo 2
Halo-Halo Three Ways process photo 3
Gallery photos 1–3 of 6
From my kitchen

Kubo Cooking Notes

Choose a freezer-safe container

I used plastic ice bags for the milk mixture in the video. If you prefer not to freeze food in plastic or are concerned about microplastics, you can use another freezer-safe container instead.

Choose a small or shallow container that produces a manageable block of ice. A large, thick block will be more difficult to handle and shave with a kitchen knife. Whichever container you use, leave a little room for the mixture to expand as it freezes.

Shave the ice carefully

Remove the frozen milk ice from its plastic bag or container and place it on a stable cutting board with a non-slip surface underneath.

Use a sharp kitchen knife and shave away from your supporting hand. If the block is extremely hard, let it sit briefly until the surface becomes easier to shave. Do not allow it to soften until watery.

Cool the homemade toppings completely

The sweetened saba, kamote, and pandan gulaman should be fully cooled before they touch the milk ice.

Their texture is also easier to judge once cooled. Saba and kamote that seem slightly soft while hot may firm up a little after resting.

Build contrast into each bowl

A satisfying halo-halo includes more than sweetness. Combine creamy ingredients with chewy fruit or jellies and finish with something crisp.

The listed amounts are guides rather than strict limits. Avoid adding so much of one topping that it overwhelms the other flavors or leaves too little room for mixing.

Keep the crunchy toppings for last

Corn flakes and barquillos soften quickly once they touch milk and melting ice. Add them immediately before serving.

They can also be served on the side so each person can add more as they eat.

Mix from the bottom

The heavier fruits, beans, and jellies tend to sit underneath the shaved ice. Use a long spoon to reach the bottom, then lift and fold everything together.

Choose a bowl or glass with enough extra room for mixing without spilling the toppings over the sides.

Plan ahead

Make-Ahead, Storage, and Reheating

Make ahead: Prepare and freeze the milk mixture at least six hours ahead or leave it overnight. The sweetened saba, sweetened kamote, and pandan gulaman may also be prepared ahead and refrigerated separately. Keep every topping in its own covered container. Assemble the halo-halo only when you are ready to serve.

Store the components: Keep the frozen milk ice tightly covered so it does not absorb odors from the freezer. Refrigerate the cooked saba, kamote, gulaman, opened preserved fruits, and other perishable toppings in separate covered containers. Consume homemade toppings within 3–4 days and follow the storage instructions on packaged products. Keep corn flakes and barquillos sealed at room temperature so they remain crisp.

If the milk ice becomes difficult to shave: Allow the frozen container to stand briefly at room temperature until only the surface becomes easier to scrape. Do not thaw and refreeze the entire block repeatedly. Shave only the amount you need and return the remaining covered ice to the freezer promptly.

Bring it to the table

Serving Suggestions

  • Serve immediately after assembling while the milk ice is still finely shaved.
  • Chill the serving bowls or glasses beforehand to slow down melting.
  • Place additional toppings on the table so everyone can customize their bowl.
  • Offer evaporated milk and sugar separately since the prepared toppings already vary in sweetness.
  • Serve with a long spoon that can reach the fruits, beans, and jellies at the bottom.
  • Pair with barquillos or another crisp wafer for additional texture.

Ingredients

Milky White Halo-Halo 1 serving

  • 60 g powdered milk + 500 ml water, frozen for the milk ice
  • 1–2 Tbsp sweetened saba banana
  • 1–2 Tbsp sweetened macapuno
  • 1–2 Tbsp sweetened white kaong
  • 1 slice leche flan
  • 1–2 Tbsp nata de coco
  • 1–2 Tbsp grated cheese
  • 1 scoop vanilla ice cream
  • 2–3 Tbsp evaporated milk
  • 1 Tbsp sugar

Ube Halo-Halo 1 serving

  • 1 tsp ube flavoring + 60 g powdered milk + 500 ml water, frozen for the ube ice
  • 1–2 Tbsp ube halaya or ube jam
  • 1–2 Tbsp sweetened kamote or sweet potato
  • 1–2 Tbsp sweet corn
  • 1 slice leche flan
  • 1–2 Tbsp corn flakes
  • 1–2 Tbsp grated cheese
  • 1 scoop cheese ice cream
  • 2–3 Tbsp evaporated milk
  • 1 Tbsp sugar

Classic Overload Halo-Halo 1 serving

  • 60 g powdered milk + 500 ml water, frozen for the milk ice
  • 1–2 Tbsp pandan jelly
  • 1–2 Tbsp sweetened red kaong
  • 1–2 Tbsp sweetened red monggo
  • 1 Tbsp sweetened langka or jackfruit
  • 1–2 Tbsp nata de coco
  • 1–2 Tbsp sweetened kamote or sweet potato
  • 1–2 Tbsp sweetened saba banana
  • 1–2 Tbsp sweet corn
  • 1–2 Tbsp sweetened macapuno
  • 1 Tbsp ube halaya or ube jam

How to Make It

Sweetened Saba and Sweetened Kamote

  1. Peel and slice the saba bananas into even pieces.
  2. Peel the sweet potatoes, cut them into small cubes, then rinse until the water runs clear.
  3. Combine 1/2 cup sugar and 250 to 300 ml water in a pan. Stir over medium heat until the sugar dissolves.
  4. Add the saba and cook for 10 to 15 minutes, or until tender and glossy. Transfer to a container and let cool.
  5. In the same pan, combine 1 cup sugar and 500 to 600 ml water. Stir until the sugar dissolves.
  6. Add the sweet potatoes and cook for 10 to 15 minutes, or until tender but still holding their shape. Transfer to a container and let cool.

Pandan Gulaman

  1. Cook the pandan gulaman according to the package instructions, then pour it into a container and let it set completely.
  2. Cut the set gulaman into small cubes.

No Ice Crusher Ice Mixture

  1. Combine 500 ml water and 60 grams powdered milk, then mix until fully dissolved.
  2. Divide the milk mixture into three portions. Add ube flavoring to one portion, then freeze all portions for at least 6 hours or overnight.

Halo-Halo Asssembly

  1. Using a sharp knife, shave the frozen milk mixture into fine pieces.
  2. For the milky white halo-halo, top the shaved milk ice with sweetened saba, macapuno, white kaong, leche flan, nata de coco, grated cheese, and mango or vanilla ice cream.
  3. For the ube halo-halo, line the bowl with ube halaya, then add shaved ube ice, sweet corn, corn flakes, grated cheese, sweetened kamote, more ube halaya, leche flan, and cheese ice cream.
  4. For the classic overload, top the shaved milk ice with pandan jelly, red kaong, red mung beans, sweetened langka, nata de coco, sweetened kamote, sweetened saba, sweet corn, macapuno, and ube halaya. Finish the classic overload with ube ice cream, leche flan, grated cheese, corn flakes, and barquillos.
  5. Pour evaporated milk over each bowl, mix well, and add sugar if desired.
  6. Serve immediately and enjoy!
Kubo Tips
  • Use nearly ripe saba so the pieces become tender without turning mushy.
  • Let the cooked saba, sweet potatoes, and gulaman cool completely before assembling.