This thesis presents the iterative learning control of a fully flexible valve actuation system for non-throttled load control of an internal combustion engine. First, a description is given of a novel camless valve actuation system with a unique hydro-mechanical internal feedback mechanism which simplifies the external control design. All the critical parameters describing the engine valve event, i.e. lift, timing, duration and seating velocity can be continuously varied by controlling the triggering timings of three two-state valves. Initial testing of a prototype experimental setup reveals that the performance of the system (transient tracking and steady-state variability) is influenced purely by the state of the system when the internal feedback mechanism is activated. This feature motivates the development of a cycle-to-cycle learning-based external control for activating the internal feedback mechanism based on the desired valve profile characteristics and the system state. To verify the proposed control methodology, it is implemented on the experimental system to track reference trajectories for the various valve event parameters corresponding to the non-throttled load control of an engine during the U.S. Federal Test Procedure (FTP) urban driving cycle. Vehicle load demand analysis is used to compute the desired engine speed and torque requirements. Detailed dynamic valve flow simulations assuming full flexibility of the engine valve event parameters are used to calculate the required trajectory of all these parameters to satisfy the speed and torque requirements without the use of a throttle. The experimental results show that the proposed framework, i.e., the valve actuation system and the external control methodology, is able to provide excellent performance even during aggressive transient operation. Over the 19 145 valve events of the FTP cycle, 99% of cycles had lift errors of 0.203 mm or less, and 99% of cycles had duration errors of 4.87 crank-angle degrees or less. Furthermore, only 11.99% of cycles had seating velocities higher than the desired bound; 99% of cycles had seating velocities 0.0429 m/s or less over the desired bound.