Have you looked at Journler? It does all that, and is free. http://journler.phildow.net/