There are different approaches to this kind of problem.
1) Brute Forcing
You simply try all the combinations and see what fits.
This is easy to implement, but it requires many many operations, ergo such an algorithm is impossible to do perform by hand and very slow even for a computer.
In particular, there are $N!$ permutations to verify, anyway you can slightly optimize it not repeating identical sequences (I mean, there are 4 "60" in your set, if you swap them nothing changes!).
The main idea is "long seminars are cumbersome, try to position them until you have room!"
So, in the blocks of 3 hours we start placing the "60", then the "45", finally the "30". In this particular case it works, but doesn't if you want to generalize the problem.
Computationally, this algorithm is extremely efficient ($O(N)=Nlog(N)$ because you have to sort the data), but it's not granted to work.
Basically a recursive algorithm explores all the possible sequences starting from a seminar, adding another, then another, and so on...
Differently from brute forcing, when it finds a wrong sequence, it easily excludes similar wrong sequences from being tested, strongly reducing the number of required operations.
This algorithm is fast, average difficulty to implement, but incredibly memory (RAM) leeching. This is granted to work if there exists at least a valid sequence.
There may be other interesting algorithm to discuss, but this is not the right place I guess.