There are several uplink scheduling algorithms in IEEE 802.16 systems, such as unsolicited grant service (UGS) and real-time polling service (rtPS), which can be used for voice over IP (VoIP) services. But these algorithms have a problem of energy wasting. To solve this problem, we propose an energy saving based uplink scheduling algorithm for VoIP services. Then we analyze the performance of the proposed algorithm and carry out the simulation under different cases. Through simulation results, we can find that our proposed algorithm decreases energy consumption largely. At the same time, other performance, such as throughput and delay, is close to that of Lee's algorithm.