Soak almonds in 3-4 cups of filtered water overnight in the fridge. (You need just enough water so they are fully covered).
Drain almonds (optional to remove skin from almonds - I recommend for a creamier milk!) and add to a powerful blender. Add filtered water into the blender, how much you use depends on the desired thickness. I usually add 3 cups filtered water.
If using dates, soak them in water for a few minutes to soften. Then add them into the blender.
Start blender on low setting and gradually move it to high. Once almonds turn into a white liquid, stop the blender (1-2 minutes).
Place a nut milk bag (or a cheesecloth) over a bowl and begin to pour the liquid over the bag/cheesecloth.
Squeeze to remove the liquid and the bag/cloth will hold the remaining almond pulp. Set the pulp aside to repurpose if desired, or throw away.
Once almond milk is strained, add milk back into blender and add in the vanilla and other flavorings you like (such as maple syrup, honey, cinnamon, etc).
Store in fridge in closed jar for up to 5 days.