A computer program product for implementing Quality-of-Service (QoS) scheduling of a plurality of flows with a cached status array and a plurality of calendars for scheduling said flows in a scheduler, said computer program product including a plurality of computer executable instructions stored on a computer readable medium, wherein said instructions, when executed by said scheduler, cause said scheduler to perform the steps of:
- storing an active flow indicator for each calendar entry for each of said plurality of calendars in a calendar status array (CSA);
- storing a subset of said active flow indicators from said calendar status array (CSA) for each of said plurality of calendars in a cache;
- and
- updating calendar status array (CSA) based upon a predefined calendar range and resolution for each of said plurality of calendars;
- and
- utilizing said subset of said active flow indicators for each of said plurality of calendars to determine a flow of a calendar for servicing.