Go Back
+ servings
White bowls with vegan kheer or Indian rice pudding and rose petals for garnish.
Print Recipe
5 from 23 votes

Vegan Kheer (Indian Rice Pudding)

This vegan kheer (Indian rice pudding) is dairy-free but more delicious. It's smooth and creamy with the aromatic flavors of cardamom and saffron woven through. The recipe is nut-free, although you can use nuts as a garnish. It is also soy-free and gluten-free.
Cook Time45 minutes
Rice soaking time30 minutes
Total Time1 hour 15 minutes
Course: Dessert
Cuisine: Indian
Diet: Gluten Free, Vegan, Vegetarian
Servings: 8 servings
Calories: 213kcal



  • ½ cup basmati rice
  • 6 cups oat milk (can substitute one cup of the oat milk with vegan condensed milk or vegan heavy whipping cream or single oat cream for a richer consistency).
  • ½ cup sugar (can use date syrup, maple syrup, agave nectar, stevia or erythritol).
  • ½ teaspoon ground cardamom
  • 2 tablespoons sliced almonds (optional. Can use pumpkin seeds instead).
  • 2 tablespoons raisins
  • ½ teaspoon vanilla extract
  • A generous pinch saffron


  • Soak the rice: Place the rice in a bowl and pour in enough water to cover by two to three inches. Soak for an hour, then strain but don't wash the rice further-- you don't want to lose all the good starch in there that will help thicken the pudding.
  • Heat the milk and rice. Place the milk in a large saucepan or Dutch oven. Add the drained, soaked rice and cook over low to medium-low heat for about 15-20 minutes or until the rice grains are really soft. Stir frequently, at least every couple of minutes. Don't cover the pot.
  • Add the sugar and stir it in. Continue cooking and stirring for another 15 minutes. The milk should have thickened quite a bit by this time due to reduction and as the starch from the rice is released into it.
  • Stir in the cardamom, raisins and nuts. Continue to cook and stir until the milk has thickened further and the rice grains have swollen quite a bit and are visible on the top. At this time stir in the saffron, if using. Let the kheer cook another five minutes.
  • Stir in the pure vanilla extract. Immediately turn off the heat, stir, cover and let the kheer stand until it's at room temperature. The saffron will continue to release its color into the kheer.
  • Serve chilled or at room temperature. Kheer is usually served at room temperature, although I love it chilled.


Expert tips
  • Cook the kheer over low to medium low heat. It might be tempting to blast the heat up so the milk reduces fast, but this will result in the rice not cooking properly and as a result the kheer won't thicken and have the right consistency or flavor.
  • Choose a creamy milk for best results. Oat milk, soy milk and cashew milk are all good choices.
  • Add vegan condensed milk or vegan whipping cream for a richer consistency. Replace one cup of the milk with vegan condensed milk or 1 cup of vegan whipping cream to add more richness and depth to the kheer. If you use condensed milk, which is already sweetened, you will need to reduce the amount of sugar in the recipe. Add ¼ cup less sugar, taste, and add more only if needed.
  • Stir frequently. This is not a project you want to walk away from. It will take about 45 minutes for the rice to cook fully and the milk to reduce to the right consistency. You can multitask in the kitchen during this time but be sure to stir the kheer every few minutes to make sure everything is cooking evenly. Often a skin will form on top of the milk. Just stir it back in.
  • Turn the heat off just before the kheer reaches your desired consistency. Kheer will continue to thicken for a bit as it cools, so turn it off just a little bit before it reaches the thickness you desire.
Troubleshooting tips
  • Milk separated while reducing. Don't reduce the milk over a high flame. Always maintain the heat at low to medium-low, depending on the heating power of the burner you are using, and make sure you stir the milk frequently. Homemade milk can also separate more easily when heated. I use store bought oat milk and sometimes soy milk for the kheer and it works perfectly.
  • Rice was not cooked. Always soak the rice for an hour before you begin making the kheer (discard the water before you add the rice to the pot). The rice will take about 15 minutes to cook in the milk over medium low heat and it will continue to soften and break down and release its starches as you continue to reduce the milk. This will lead to a creamy kheer. If the rice remained uncooked, it was probably either because you didn't soak it first, or you didn't give the rice enough time to cook with the milk. Just continue to cook the kheer over low heat until the rice is cooked.
  • Kheer is too thin: If the kheer is too runny for your liking, simply continue to reduce it for longer until it reaches the right consistency.
  • Kheer is too thick: If the kheer ends up being too thick, or has thickened a lot upon standing, just add a little milk to it to thin it out and warm through. Check and add more sugar if needed.
  • Kheer thickened upon standing. The kheer could thicken further after standing for a few hours or after being refrigerated. If that happens, just add a bit more milk to thin it out.


Calories: 213kcal | Carbohydrates: 43g | Protein: 4g | Fat: 3g | Saturated Fat: 0.1g | Polyunsaturated Fat: 0.3g | Monounsaturated Fat: 1g | Sodium: 87mg | Potassium: 153mg | Fiber: 2g | Sugar: 27g | Vitamin A: 369IU | Vitamin C: 0.2mg | Calcium: 270mg | Iron: 2mg