diff --git a/erpnext/patches/jan_mar_2012/navupdate.py b/erpnext/patches/jan_mar_2012/navupdate.py
new file mode 100644
index 0000000..0ba21e9
--- /dev/null
+++ b/erpnext/patches/jan_mar_2012/navupdate.py
@@ -0,0 +1,20 @@
+import webnotes
+
+def execute():
+	from webnotes.modules import reload_doc
+	reload_doc('accounts', 'page', 'accounts_home')
+	reload_doc('selling', 'page', 'selling_home')
+	reload_doc('buying', 'page', 'buying_home')
+	reload_doc('stock', 'page', 'stock_home')
+	reload_doc('hr', 'page', 'hr_home')
+	reload_doc('support', 'page', 'support_home')
+	reload_doc('production', 'page', 'production_home')
+	reload_doc('projects', 'page', 'projects_home')
+	reload_doc('website', 'page', 'website_home')
+	
+	webnotes.conn.commit()
+	webnotes.conn.sql("""create table __SchedulerLog (
+		`timestamp` timestamp,
+		method varchar(200),
+		error text
+	) engine=MyISAM""")
\ No newline at end of file
diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py
index e391d37..3bc5e64 100644
--- a/erpnext/setup/doctype/email_digest/email_digest.py
+++ b/erpnext/setup/doctype/email_digest/email_digest.py
@@ -783,7 +783,7 @@
 			send_date = dt_dict['server_dt'].date()
 			send_time = dt_dict['server_dt'].time()
 
-			if (now_date == send_date) and (send_time <= now_time):
+			if (now_date == send_date):
 				#webnotes.msgprint('sending ' + ed_obj.doc.name)
 				ed_obj.send()
 			#else:
diff --git a/erpnext/startup/schedule_handlers.py b/erpnext/startup/schedule_handlers.py
new file mode 100644
index 0000000..49ee615
--- /dev/null
+++ b/erpnext/startup/schedule_handlers.py
@@ -0,0 +1,13 @@
+"""will be called by scheduler"""
+
+import webnotes
+	
+def execute_all():
+	"""get support email"""
+	from support.doctype.support_ticket import get_support_mails
+	get_support_mails()
+	
+def execute_daily():
+	"""email digest"""
+	from setup.doctype.email_digest.email_digest import send
+	send()
\ No newline at end of file
diff --git a/wnf.py b/wnf.py
index e137746..edbf146 100755
--- a/wnf.py
+++ b/wnf.py
@@ -23,13 +23,18 @@
 def setup_options():
 	from optparse import OptionParser
 	parser = OptionParser()
+
+	parser.add_option("-d", "--db",
+						dest="db_name",
+						help="Apply the patches on given db")
+
+	# build
 	parser.add_option("-b", "--build", default=False, action="store_true",
 						help="minify + concat js files")
 	parser.add_option("-c", "--clear", default=False, action="store_true",
 						help="increment version")
-	parser.add_option("--replace", nargs=3, default=False, 
-						metavar = "search replace_by extension",
-						help="file search-replace")
+
+	# git
 	parser.add_option("--status", default=False, action="store_true",
 						help="git status")
 	parser.add_option("--pull", nargs=2, default=False,
@@ -41,28 +46,43 @@
 	parser.add_option("-l", "--latest",
 						action="store_true", dest="run_latest", default=False,
 						help="Apply the latest patches")
+
+	# patch
 	parser.add_option("-p", "--patch", nargs=1, dest="patch_list", metavar='patch_module',
 						action="append",
 						help="Apply patch")
 	parser.add_option("-f", "--force",
 						action="store_true", dest="force", default=False,
 						help="Force Apply all patches specified using option -p or --patch")
-	parser.add_option("-d", "--db",
-						dest="db_name",
-						help="Apply the patches on given db")
 	parser.add_option('--reload_doc', nargs=3, metavar = "module doctype docname",
 						help="reload doc")
 	parser.add_option('--export_doc', nargs=2, metavar = "doctype docname",
 						help="export doc")
+
+	# install
 	parser.add_option('--install', nargs=3, metavar = "rootpassword dbname source",
 						help="install fresh db")
 	parser.add_option('--sync_with_gateway', nargs=1, metavar = "1/0", \
 						help="Set or Unset Sync with Gateway")
+
+	# diff
 	parser.add_option('--diff_ref_file', nargs=0, \
 						help="Get missing database records and mismatch properties, with file as reference")
 	parser.add_option('--diff_ref_db', nargs=0, \
 						help="Get missing .txt files and mismatch properties, with database as reference")
 
+	# scheduler
+	parser.add_option('--run_scheduler', default=False, action="store_true",
+						help="Trigger scheduler")
+	parser.add_option('--run_scheduler_event', nargs=1, metavar="[all|daily|weekly|monthly]",
+						help="Run scheduler event")
+
+	# misc
+	parser.add_option("--replace", nargs=3, default=False, 
+						metavar = "search replace_by extension",
+						help="file search-replace")
+	
+
 	return parser.parse_args()
 	
 def run():
@@ -165,6 +185,14 @@
 		import webnotes.modules.diff
 		webnotes.modules.diff.diff_ref_db()
 	
+	elif options.run_scheduler:
+		import webnotes.utils.scheduler
+		print webnotes.utils.scheduler.execute()
+	
+	elif options.run_scheduler_event is not None:
+		import webnotes.utils.scheduler
+		print webnotes.utils.scheduler.trigger('execute_' + options.run_scheduler_event)
+	
 	# print messages
 	if webnotes.message_log:
 		print '\n'.join(webnotes.message_log)
