Start with the one that runs the fewest times and then add the next so it does not conflict.
1. Every Sunday, 12:20 AM
20 0 * * 0 SundayJob
Do not set it to run at midnight or on the hour, or it will conflict with the next two
2. Every midnight (12:10AM)
10 0 * * * MidnightJob
3. Every hour
0 * * * * HourJob
Now you have no conflicts, they are 5 minutes apart around midnight.
4. Every five minutes -- the tricky part
5,15,25,30,35,40,45,50,55 * * * * 5minuteJob
No conflict with the others, but you do have "holes" at 0, 10, and 20.
a. There is nothing you can do about the 'hole' at 0, nothing. If you must, adjust your hourly job to include the 5-minute job. But make sure that it does not bloat the hourly job to the point that it in itself causes a high resource suspension.
b. The 'hole' at 10. Create a fourth cron job to fill in some of the holes.
10 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * 5MinuteJob
runs at 10 after the hour, every hour except Midnight.
c. The 'hole' at 20. You need to create a couple more cron jobs to fill this hole. I leave it to you to figure it out.