This is the classic scheduling problem, and a good data-structure to use is a heapsorted list, aka binary heap.

inserts and extracts are O(log(N)) so it scales well to 100's or 1000's of entries,...