A Green’s function formalism for calculating spin-wave excitations is developed for practical calculations and tested for real solids. The mapping to the Heisenberg Hamiltonian commonly used in spin-wave calculations is avoided, making the formalism suitable for both localized and itinerant magnetic systems. To test the formalism, we have calculated the spin-wave spectra and dispersions of ferromagnetic Fe and Ni. The results prove to be in very good agreement with experiment and some novel features are predicted.