Feed rate scheduling is a critical step in computer numerical control (CNC) machining, as it has a close relationship with machining time and surface quality. It has now become a hot issue in both industry and academia. In this article, we present a novel and complete S-shape-based feed rate scheduling method for three-axis NURBS tool paths, which can reduce high chord errors and round-off errors, and generate continuous velocity, acceleration, and jerk profile. The proposed feed rate scheduling method consists of three modules: a bidirectional scanning module, a velocity scheduling module, and a round-off error elimination module. The bidirectional scanning module aims to guarantee the continuity of the feed rate at the junctions between successive NURBS blocks, where the chord error, tangential acceleration, and tangential jerk limitations are considered. After the NURBS blocks have been classified into two cases by the previous module, the velocity scheduling module first calculates the actual maximum feed rate. It then generates the feed rate profiles of all NURBS blocks according to the proposed velocity profile. Later, the round-off error elimination module is applied to adjust the actual maximum feed rate so that the total interpolation time becomes an integer multiple of the interpolation period, which leads to the elimination of round-off errors. Finally, benchmarks are conducted to verify the applicability of the proposed method. Compared with the traditional method, the proposed method can save the interpolation time by $4.67\% $ to $14.26\% $.