If you can model everything as tasks, FogBugz has a feature I used to help myself complete grad school: https://fogbugz.com/evidence-based-scheduling/, which gives you a probability distribution over finishing times. It was incredibly useful! You might want to start the free trial to see if they still have the "if you have too few users, you can use it for free until you get big enough" deal they used to have.
As of (X years ago) it was missing appointment scheduling.
My most recent solution for individual scheduling is Skedpal. It does not have the overshoot estimation you want. Instead, it will flag tasks that are risky because they have little flexibility for rescheduling. This serves the purpose of deciding whether you can or can't schedule something: add it to your list (or to your calendar), hit update schedule, and if something goes to your hotlist or gets marked as red/yellow for flexibility, say no. You can include overshoot by giving yourself lots of slack (and % slack is a parameter to Skedpal's scheduling algorithm). This makes a constraint that binds you for planning when real constraints don't yet bind you. For sufficiently important stuff, you can turn off the slack to schedule that one item (and know that you're going to pay hell doing it.)
To schedule my team, I do a manual poor man's version of FogBugz. Someday I'll turn it into a web app. (I've had this in my head for 2+ years, so don't hold your breath.)
Not sure if this is exactly what you're looking for, but you could check out "Do Now" on the play store: https://play.google.com/store/apps/details?id=com.slamtastic.donow.app (no idea if it's available for apple or not)
Here’s an example On calendar: you have a meeting 11am-12pm. Tasks You need to schedule an appointment by 11am. This will take 30 mins. You need to do grocery shopping by 12pm. This will take 1 hour You need to eat lunch by 1pm. This will take an hour. You have an assignment due at 6pm today. This will take 3 hours. (Note that this is only in the context of 1 day, but this could easily be in the context of a week with many many tasks and many many deadlines.)
Is there a todo list app that uses time estimates to automatically calculate whether or not you'll overshoot on these deadlines so you can accurately tell people if you do / don't have time to schedule a meeting with them or have an easier way to say yes or no to random events that pop up throughout the day?
I created a very jank one with google spreadsheets, google calendar, and google scripts, but would prefer something that is more "smooth" (lower barrier to entering tasks and calculating overshoots) than having to re-run a Google script every single time.