@jrss I just use C-c C-x c (org-clone-subtree-with-time-shift) to create enough time-shifted headings for a semester (which I have to calculate by myself) and then delete the ones I know I won't use.
This time I then deleted all the separate headings and just pasted all the timestamps under one heading, to keep it more compact.