I find myself working on a number of smaller projects for clients, as well as managing my daily list of "to do" items.
I'm looking for a tool that would allow entry of tasks (taskname, duration, start day, start time, end day, end time), and then, given the start/end times for my day, give me a prioritied list of what I need to get done that day.
The ability to prioritize scheduling is important. Meetings and appointments with a fixed time take precedence. After that, everything's in due date/time order, oldest (earliest start date) first.
I want the software to be intelligent enough that if I have a 10:30 meeting (per my first priority), it won't schedule a two-hour task beginning at 9am, but rather look to the next prioritized items to fill a 1 1/2 hour time period, coming BACK to the two hour task that was skipped and inserting it into the next available 2 hour block. Alternately, splitting the task acrossunscheduled time periods would be acceptable.
The idea is that all I need to do is worry about capturing tasks and having a tool that schedules my life for me based on prioritization parameters.
EDIT: I've adopted my own flavor of Pomodoro; I don't assign specific tasks to specific Pomodoros...mostly because nothing ever takes as long as the guesstimate. I structure my day according to Pomodoro principles, though. Work + shortbreak x 4, long break, repeat. However, Like I said, I rarely assign specific tasks to a work period. I just attack my prioritized to-do list for 25 minutes, then break for 5, etc.
I'm looking for a tool that will allow me to do that, but detail the ITEMS in the list in each Pomodoro. I woul also like it to exclude any schedule appointment times from the available Pomodoros.
So, for instance, if I have a meeting from 10-10:30, 11:30-12:30, and my to do list for today has the following:
Write client proposal, 2:00 answer e-mails, 0:25 change printer toner, 0:05 call client, 0:15 generate invoices 0:20
My schedule would look like:
08:30-10:00 - Client proposal 10:00-10:30 - Meeting 10:30-11:00 - Client proposal (last half hour of task) 11:00-11:25 - Answer emails 11:30-12:30 - Meeting 12:30-12:35 - change toner 12:35-12:50 - call client 12:50-13:00 - generate invoices 13:00-13:30 - meeting 13:30-13:40 - generate invoices (last half of task)
Alternately, the scheduler could also wait until AFTER 13:30 to schedule the Client Proposal, and fill the 08:30-10:00 with shorter tasks. That'd look like this.
08:30-08:55 - Answer emails 08:55-09:00 - change toner 09:00-09:15 - call client 09:15-09:25 - generate invoices ... 10:00-10:30 - Meeting ... 11:30-12:30 - Meeting ... 13:00-13:30 - meeting 13:30-15:30 - Client proposal
Either option would be acceptable.
Since I'm learning java and c#, open source written in one of those would be awsome so I can learn more about the code.
Is anyone aware of a tool like this that's available free or cheap?