Great question.
I tried to develop such things, but I struggled to manage my time (what a pity).
I thought about a system accessible through different media (mobile, laptop, desktop, browser), with labels (work/family/self), location (home/work/commute), best time to do (morning/afternoon/night) and dependencies.
Once in a while, the system remind me (notification) to do one selected thing. Either I accept (and the system ask me after the duration of it's completed) or I deny and the system ask me why (fill dependency, location etc.) Before presenting me something else.
The complexity is to synchronize on all platforms, to have a nice and easy GUI, and manage the dependency (priority?)
Good luck with that and stay in touch if you come with something.