I use Toodledo [1] for contexts.  You can actually filter your task list by context, and I&#x27;ve created similar contexts myself to what you&#x27;ve described (i.e. &quot;On Phone&quot;, &quot;At Laptop&quot;, &quot;Out Of House&quot;).  There&#x27;s a separate field for Locations, and you can set reminders for when you&#x27;re near a specific location if you want.<p>Times are easy, you can set a Due Date &#x2F; Time and a Start Date &#x2F; Time.  I use that for Gardening ToDos that can only be done during daylight hours.<p>It won&#x27;t extract todos from code, but there&#x27;s a way you can email to-dos into Toodledo, so you could write a script.  There&#x27;s a full API as well, but I&#x27;ve not put in the time to get that to work.<p>The web version has Saved Searches, which are really custom views on your to-do database.  You can create your own searches use boolean logic, substring searches as well as filtering by field.<p>Works on mobile &amp; web, with some third party clients for both desktop and mobile.  (I actually use Ultimate To Do List on Android instead of the official Toodledo client.)<p>[1] <a href="http:&#x2F;&#x2F;www.toodledo.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.toodledo.com&#x2F;</a>