Tim helps merge your to-do list with your calendar. It looks at your availability and automatically timeboxes your day to minimize context switching and maximize ease.
When circumstances change, so does your calendar. (People sometimes joke that Tim is like a scheduling tool for people who can't keep to a schedule.) If you sleep late, for example, Tim will automatically rework your day so that your high-priority items still get done. If you skip a task or fail to complete it, Tim will reschedule it for some other time.
I'm pretty happy with how Tim works, but it's very much a work in progress.
Tim is a tool I built for myself, but I'm releasing the code publicly. At some point I'll add more detailed setup instructions and documentation, but that time hasn't come yet.