diff --git a/home/page/latest_updates/latest_updates.js b/home/page/latest_updates/latest_updates.js
index dea571d..a3f3760 100644
--- a/home/page/latest_updates/latest_updates.js
+++ b/home/page/latest_updates/latest_updates.js
@@ -8,7 +8,7 @@
 		"Bookmarks: Add bookmarks via toolbar by clicking on the <i class='icon-star'></i> sign.",
 	]],
 	["5th February, 2013", [
-		"Holiday Block List: Block users from taking leave on certain days.",
+		"Leave Block List: Block users from taking leave on certain days.",
 	]],
 	["2nd February, 2013", [
 		"Warehouse: Added table Warehouse User to restrict Warehouse Entry per user.",
diff --git a/hr/doctype/department/department.txt b/hr/doctype/department/department.txt
index 34b6bc7..f5a6ff6 100644
--- a/hr/doctype/department/department.txt
+++ b/hr/doctype/department/department.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-01-10 16:34:13", 
+  "creation": "2013-02-05 11:48:26", 
   "docstatus": 0, 
-  "modified": "2013-02-04 15:34:55", 
+  "modified": "2013-02-14 17:21:51", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -60,10 +60,10 @@
  {
   "description": "Days for which Holidays are blocked for this department.", 
   "doctype": "DocField", 
-  "fieldname": "holiday_block_list", 
+  "fieldname": "leave_block_list", 
   "fieldtype": "Link", 
-  "label": "Holiday Block List", 
-  "options": "Holiday Block List"
+  "label": "Leave Block List", 
+  "options": "Leave Block List"
  }, 
  {
   "doctype": "DocPerm", 
diff --git a/hr/doctype/department/test_department.py b/hr/doctype/department/test_department.py
index 9db4f61..c4664a5 100644
--- a/hr/doctype/department/test_department.py
+++ b/hr/doctype/department/test_department.py
@@ -1,5 +1,5 @@
 test_records = [
 	[{"doctype":"Department", "department_name":"_Test Department"}],
 	[{"doctype":"Department", "department_name":"_Test Department with Block List",
-		"holiday_block_list": "_Test Holiday Block List"}],
+		"leave_block_list": "_Test Leave Block List"}],
 ]
diff --git a/hr/doctype/holiday_block_list/locale/_messages_doc.json b/hr/doctype/holiday_block_list/locale/_messages_doc.json
deleted file mode 100644
index e521830..0000000
--- a/hr/doctype/holiday_block_list/locale/_messages_doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-[
- "Allow Users", 
- "Block Holidays on important days.", 
- "Block Days", 
- "HR", 
- "Company", 
- "Holiday Block List Allowed", 
- "Holiday Block List Dates", 
- "Holiday Block List", 
- "Stop users from making Leave Applications on following days.", 
- "Applies to Company", 
- "Holiday Block List Name", 
- "Year", 
- "If not checked, the list will have to be added to each Department where it has to be applied.", 
- "Allow the following users to make Leave Applications for block days."
-]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/_messages_js.json b/hr/doctype/holiday_block_list/locale/_messages_js.json
deleted file mode 100644
index 0637a08..0000000
--- a/hr/doctype/holiday_block_list/locale/_messages_js.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/_messages_py.json b/hr/doctype/holiday_block_list/locale/_messages_py.json
deleted file mode 100644
index d2e6ee4..0000000
--- a/hr/doctype/holiday_block_list/locale/_messages_py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-[
- "Date is repeated", 
- "Block Date"
-]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/ar-doc.json b/hr/doctype/holiday_block_list/locale/ar-doc.json
deleted file mode 100644
index 05fdaea..0000000
--- a/hr/doctype/holiday_block_list/locale/ar-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "\u0627\u0644\u0633\u0645\u0627\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646", 
- "Allow the following users to make Leave Applications for block days.": "\u062a\u0633\u0645\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0627\u0644\u062a\u0627\u0644\u064a\u0629 \u0644\u062c\u0639\u0644 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0625\u062c\u0627\u0632\u0629 \u0644\u0639\u062f\u0629 \u0623\u064a\u0627\u0645 \u0643\u062a\u0644\u0629.", 
- "Applies to Company": "\u064a\u0646\u0637\u0628\u0642 \u0639\u0644\u0649 \u0634\u0631\u0643\u0629", 
- "Block Days": "\u0643\u062a\u0644\u0629 \u0623\u064a\u0627\u0645", 
- "Block Holidays on important days.": "\u0645\u0646\u0639 \u0627\u0644\u0625\u062c\u0627\u0632\u0627\u062a \u0641\u064a \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u0647\u0627\u0645\u0629.", 
- "Company": "\u0634\u0631\u0643\u0629", 
- "HR": "HR", 
- "Holiday Block List": "\u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", 
- "Holiday Block List Allowed": "\u0639\u0637\u0644\u0629 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062d\u0638\u0631 \u0645\u0633\u0645\u0648\u062d", 
- "Holiday Block List Dates": "\u0645\u0648\u0627\u0639\u064a\u062f \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", 
- "Holiday Block List Name": "\u0627\u0633\u0645 \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0625\u0646 \u0644\u0645 \u064a\u0643\u0646 \u062a\u0645\u060c \u0633\u064a\u0643\u0648\u0646 \u0644\u062f\u064a\u0643 \u0642\u0627\u0626\u0645\u0629 \u062a\u0636\u0627\u0641 \u0625\u0644\u0649 \u0643\u0644 \u0642\u0633\u0645 \u062d\u064a\u062b \u0623\u0646\u0647 \u0644\u0627 \u0628\u062f \u0645\u0646 \u062a\u0637\u0628\u064a\u0642\u0647\u0627.", 
- "Stop users from making Leave Applications on following days.": "\u0648\u0642\u0641 \u0627\u0644\u0645\u0633\u062a\u062e\u062f\u0645\u064a\u0646 \u0645\u0646 \u0625\u062c\u0631\u0627\u0621 \u062a\u0637\u0628\u064a\u0642\u0627\u062a \u0639\u0644\u0649 \u0625\u062c\u0627\u0632\u0629 \u0627\u0644\u0623\u064a\u0627\u0645 \u0627\u0644\u062a\u0627\u0644\u064a\u0629.", 
- "Year": "\u0639\u0627\u0645"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/ar-py.json b/hr/doctype/holiday_block_list/locale/ar-py.json
deleted file mode 100644
index e50eb48..0000000
--- a/hr/doctype/holiday_block_list/locale/ar-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "\u0645\u0646\u0639 \u062a\u0627\u0631\u064a\u062e", 
- "Date is repeated": "\u0648\u064a\u062a\u0643\u0631\u0631 \u0627\u0644\u062a\u0627\u0631\u064a\u062e"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/es-doc.json b/hr/doctype/holiday_block_list/locale/es-doc.json
deleted file mode 100644
index 19527df..0000000
--- a/hr/doctype/holiday_block_list/locale/es-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "Permitir que los usuarios", 
- "Allow the following users to make Leave Applications for block days.": "Permitir a los usuarios realizar las siguientes aplicaciones dejan para los d\u00edas de bloque.", 
- "Applies to Company": "Corresponde a la Empresa", 
- "Block Days": "D\u00edas de bloque", 
- "Block Holidays on important days.": "Bloque Vacaciones en d\u00edas importantes.", 
- "Company": "Empresa", 
- "HR": "HR", 
- "Holiday Block List": "Holiday lista de bloqueo", 
- "Holiday Block List Allowed": "Holiday Lista de bloqueo animales", 
- "Holiday Block List Dates": "Las fechas de vacaciones de listas de bloqueo", 
- "Holiday Block List Name": "Bloque de vacaciones Lista de Nombres", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "Si no est\u00e1 activada, la lista tendr\u00e1 que ser a\u00f1adido a cada Departamento donde se ha de aplicar.", 
- "Stop users from making Leave Applications on following days.": "Deje que los usuarios realicen aplicaciones dejan en los d\u00edas siguientes.", 
- "Year": "A\u00f1o"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/es-py.json b/hr/doctype/holiday_block_list/locale/es-py.json
deleted file mode 100644
index 4c5772b..0000000
--- a/hr/doctype/holiday_block_list/locale/es-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "Bloque Fecha", 
- "Date is repeated": "La fecha se repite"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/fr-doc.json b/hr/doctype/holiday_block_list/locale/fr-doc.json
deleted file mode 100644
index e01bf44..0000000
--- a/hr/doctype/holiday_block_list/locale/fr-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "Autoriser les utilisateurs", 
- "Allow the following users to make Leave Applications for block days.": "Autoriser les utilisateurs suivants pour faire demandes d&#39;autorisation pour les jours de bloc.", 
- "Applies to Company": "S&#39;applique \u00e0 l&#39;entreprise", 
- "Block Days": "Bloquer les jours", 
- "Block Holidays on important days.": "Bloquer les jours f\u00e9ri\u00e9s importants.", 
- "Company": "Entreprise", 
- "HR": "RH", 
- "Holiday Block List": "Block List vacances", 
- "Holiday Block List Allowed": "Block List vacances accept\u00e9s", 
- "Holiday Block List Dates": "Dates de vacances de listes rouges d&#39;", 
- "Holiday Block List Name": "Nom de la liste de vacances Bloquer", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "Si ce n&#39;est pas coch\u00e9e, la liste devra \u00eatre ajout\u00e9 \u00e0 chaque d\u00e9partement o\u00f9 il doit \u00eatre appliqu\u00e9.", 
- "Stop users from making Leave Applications on following days.": "Emp\u00eacher les utilisateurs de faire des demandes d&#39;autorisation, les jours suivants.", 
- "Year": "Ann\u00e9e"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/fr-py.json b/hr/doctype/holiday_block_list/locale/fr-py.json
deleted file mode 100644
index a1f5dd3..0000000
--- a/hr/doctype/holiday_block_list/locale/fr-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "Date de bloquer", 
- "Date is repeated": "La date est r\u00e9p\u00e9t\u00e9e"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/hi-doc.json b/hr/doctype/holiday_block_list/locale/hi-doc.json
deleted file mode 100644
index fa7fc5a..0000000
--- a/hr/doctype/holiday_block_list/locale/hi-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "\u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902", 
- "Allow the following users to make Leave Applications for block days.": "\u0928\u093f\u092e\u094d\u0928 \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u092c\u094d\u0932\u0949\u0915 \u0926\u093f\u0928\u094b\u0902 \u0915\u0947 \u0932\u093f\u090f \u091b\u0941\u091f\u094d\u091f\u0940 \u0905\u0928\u0941\u092a\u094d\u0930\u092f\u094b\u0917 \u092c\u0928\u093e\u0928\u0947 \u0915\u0947 \u0932\u093f\u090f \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902.", 
- "Applies to Company": "\u0915\u0902\u092a\u0928\u0940 \u0915\u0947 \u0932\u093f\u090f \u0932\u093e\u0917\u0942 \u0939\u094b\u0924\u093e \u0939\u0948", 
- "Block Days": "\u092c\u094d\u0932\u0949\u0915 \u0926\u093f\u0928", 
- "Block Holidays on important days.": "\u092e\u0939\u0924\u094d\u0935\u092a\u0942\u0930\u094d\u0923 \u0926\u093f\u0928 \u092a\u0930 \u091b\u0941\u091f\u094d\u091f\u093f\u092f\u093e\u0901 \u092e\u0948.", 
- "Company": "\u0915\u0902\u092a\u0928\u0940", 
- "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", 
- "Holiday Block List": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940", 
- "Holiday Block List Allowed": "\u0905\u0935\u0915\u093e\u0936 \u0938\u0942\u091a\u0940 \u092c\u094d\u0932\u0949\u0915 \u0930\u0916 \u0938\u0915\u0924\u0947 \u0939\u0948", 
- "Holiday Block List Dates": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0924\u093f\u0925\u093f\u092f\u093e\u0902", 
- "Holiday Block List Name": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u092e\u0947\u0902 \u0928\u093e\u092e", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "\u0905\u0917\u0930 \u091c\u093e\u0901\u091a \u0928\u0939\u0940\u0902 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0939\u0948, \u0907\u0938 \u0938\u0942\u091a\u0940 \u0915\u0947 \u0932\u093f\u090f \u092a\u094d\u0930\u0924\u094d\u092f\u0947\u0915 \u0935\u093f\u092d\u093e\u0917 \u0939\u0948 \u091c\u0939\u093e\u0902 \u0907\u0938\u0947 \u0932\u093e\u0917\u0942 \u0915\u093f\u092f\u093e \u0917\u092f\u093e \u0939\u0948 \u0915\u0947 \u0932\u093f\u090f \u091c\u094b\u0921\u093c\u093e \u091c\u093e \u0939\u094b\u0917\u093e.", 
- "Stop users from making Leave Applications on following days.": "\u0928\u093f\u092e\u094d\u0928\u0932\u093f\u0916\u093f\u0924 \u0926\u093f\u0928 \u092a\u0930 \u091b\u0941\u091f\u094d\u091f\u0940 \u0905\u0928\u0941\u092a\u094d\u0930\u092f\u094b\u0917 \u092c\u0928\u093e\u0928\u0947 \u0938\u0947 \u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e\u0913\u0902 \u0915\u094b \u092c\u0902\u0926 \u0915\u0930\u094b.", 
- "Year": "\u0935\u0930\u094d\u0937"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/hi-py.json b/hr/doctype/holiday_block_list/locale/hi-py.json
deleted file mode 100644
index ca53d8f..0000000
--- a/hr/doctype/holiday_block_list/locale/hi-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "\u0924\u093f\u0925\u093f \u092c\u094d\u0932\u0949\u0915", 
- "Date is repeated": "\u0924\u093f\u0925\u093f \u0926\u094b\u0939\u0930\u093e\u092f\u093e \u0939\u0948"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/hr-doc.json b/hr/doctype/holiday_block_list/locale/hr-doc.json
deleted file mode 100644
index b872486..0000000
--- a/hr/doctype/holiday_block_list/locale/hr-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "Omogu\u0107iti korisnicima", 
- "Allow the following users to make Leave Applications for block days.": "Dopusti sljede\u0107i korisnicima da ostavite Prijave za blok dana.", 
- "Applies to Company": "Odnosi se na Dru\u0161tvo", 
- "Block Days": "Blok Dani", 
- "Block Holidays on important days.": "Blok Odmor o va\u017enim dana.", 
- "Company": "Dru\u0161tvo", 
- "HR": "HR", 
- "Holiday Block List": "Turisti\u010dka Blok Popis", 
- "Holiday Block List Allowed": "Turisti\u010dka Blok Popis dopu\u0161tenih", 
- "Holiday Block List Dates": "Holiday Block List datumi", 
- "Holiday Block List Name": "Turisti\u010dka Blok Popis Ime", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "Ako nije ozna\u010deno, popis \u0107e biti dodan u svakom odjela gdje se mora primjenjivati.", 
- "Stop users from making Leave Applications on following days.": "Prestani korisnike od izrade ostaviti aplikacija na sljede\u0107im danima.", 
- "Year": "Godina"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/hr-py.json b/hr/doctype/holiday_block_list/locale/hr-py.json
deleted file mode 100644
index ba06d74..0000000
--- a/hr/doctype/holiday_block_list/locale/hr-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "Blok Datum", 
- "Date is repeated": "Datum se ponavlja"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/nl-doc.json b/hr/doctype/holiday_block_list/locale/nl-doc.json
deleted file mode 100644
index e74a9ce..0000000
--- a/hr/doctype/holiday_block_list/locale/nl-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "Gebruikers toestaan", 
- "Allow the following users to make Leave Applications for block days.": "Laat de volgende gebruikers te vertrekken Toepassingen maken voor blok dagen.", 
- "Applies to Company": "Geldt voor Bedrijf", 
- "Block Days": "Blokkeren Dagen", 
- "Block Holidays on important days.": "Blok Vakantie op belangrijke dagen.", 
- "Company": "Vennootschap", 
- "HR": "HR", 
- "Holiday Block List": "Holiday Block List", 
- "Holiday Block List Allowed": "Holiday toegestaan \u200b\u200bBlock List", 
- "Holiday Block List Dates": "Holiday Block List Data", 
- "Holiday Block List Name": "Holiday Block List Name", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "Indien niet gecontroleerd, wordt de lijst worden toegevoegd aan elk Department waar het moet worden toegepast.", 
- "Stop users from making Leave Applications on following days.": "Stop gebruikers van het maken van verlofaanvragen op de volgende dagen.", 
- "Year": "Jaar"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/nl-py.json b/hr/doctype/holiday_block_list/locale/nl-py.json
deleted file mode 100644
index e89506e..0000000
--- a/hr/doctype/holiday_block_list/locale/nl-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "Blokkeren Datum", 
- "Date is repeated": "Datum wordt herhaald"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/pt-doc.json b/hr/doctype/holiday_block_list/locale/pt-doc.json
deleted file mode 100644
index ed5ecfa..0000000
--- a/hr/doctype/holiday_block_list/locale/pt-doc.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "Allow Users": "Permitir que os usu\u00e1rios", 
- "Allow the following users to make Leave Applications for block days.": "Permitir que os usu\u00e1rios a seguir para fazer aplica\u00e7\u00f5es deixam para os dias de bloco.", 
- "Applies to Company": "Aplica-se a Empresa", 
- "Block Days": "Dias bloco", 
- "Block Holidays on important days.": "Bloquear feriados em dias importantes.", 
- "Company": "Companhia", 
- "HR": "HR", 
- "Holiday Block List": "Lista de Bloqueios de f\u00e9rias", 
- "Holiday Block List Allowed": "Lista de feriado Bloco admitidos", 
- "Holiday Block List Dates": "Datas de f\u00e9rias Lista de Bloqueios", 
- "Holiday Block List Name": "Nome de f\u00e9rias Lista de Bloqueios", 
- "If not checked, the list will have to be added to each Department where it has to be applied.": "Se n\u00e3o for controlada, a lista dever\u00e1 ser adicionado a cada departamento onde tem de ser aplicado.", 
- "Stop users from making Leave Applications on following days.": "Pare de usu\u00e1rios de fazer aplica\u00e7\u00f5es deixam nos dias seguintes.", 
- "Year": "Ano"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/locale/pt-py.json b/hr/doctype/holiday_block_list/locale/pt-py.json
deleted file mode 100644
index d2b6e69..0000000
--- a/hr/doctype/holiday_block_list/locale/pt-py.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Block Date": "Bloquear Data", 
- "Date is repeated": "Data \u00e9 repetido"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list/test_holiday_block_list.py b/hr/doctype/holiday_block_list/test_holiday_block_list.py
deleted file mode 100644
index e9f3b78..0000000
--- a/hr/doctype/holiday_block_list/test_holiday_block_list.py
+++ /dev/null
@@ -1,20 +0,0 @@
-test_records = [[{
-		"doctype":"Holiday Block List",
-		"holiday_block_list_name": "_Test Holiday Block List",
-		"year": "_Test Fiscal Year 2013",
-		"company": "_Test Company"
-	}, {
-		"doctype": "Holiday Block List Date",
-		"parent": "_Test Holiday Block List",
-		"parenttype": "Holiday Block List",
-		"parentfield": "holiday_block_list_dates",
-		"block_date": "2013-01-02",
-		"reason": "First work day"
-	}, {
-		"doctype": "Holiday Block List Allow",
-		"parent": "_Test Holiday Block List",
-		"parenttype": "Holiday Block List",
-		"parentfield": "holiday_block_list_allowed",
-		"allow_user": "test1@example.com",
-		}
-	]]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json b/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json
deleted file mode 100644
index ac1046f..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/_messages_doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-[
- "HR", 
- "Allow User", 
- "Holiday Block List Allow"
-]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/ar-doc.json b/hr/doctype/holiday_block_list_allow/locale/ar-doc.json
deleted file mode 100644
index 2505f56..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/ar-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "\u062a\u0633\u0645\u062d \u0644\u0644\u0645\u0633\u062a\u062e\u062f\u0645", 
- "HR": "HR", 
- "Holiday Block List Allow": "\u0639\u0637\u0644\u0629 \u0642\u0627\u0626\u0645\u0629 \u0627\u0644\u062d\u0638\u0631 \u0627\u0644\u0633\u0645\u0627\u062d"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/es-doc.json b/hr/doctype/holiday_block_list_allow/locale/es-doc.json
deleted file mode 100644
index 1880afb..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/es-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "Permitir al usuario", 
- "HR": "HR", 
- "Holiday Block List Allow": "Lista Casas Bloquear Permitir"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/fr-doc.json b/hr/doctype/holiday_block_list_allow/locale/fr-doc.json
deleted file mode 100644
index 9eb4b70..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/fr-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "Permettre \u00e0 l&#39;utilisateur", 
- "HR": "RH", 
- "Holiday Block List Allow": "Block List vacances Permettez-"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/hi-doc.json b/hr/doctype/holiday_block_list_allow/locale/hi-doc.json
deleted file mode 100644
index 98457e9..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/hi-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "\u0909\u092a\u092f\u094b\u0917\u0915\u0930\u094d\u0924\u093e \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f", 
- "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", 
- "Holiday Block List Allow": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0915\u0940 \u0905\u0928\u0941\u092e\u0924\u093f \u0926\u0947\u0902"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/hr-doc.json b/hr/doctype/holiday_block_list_allow/locale/hr-doc.json
deleted file mode 100644
index f238dfa..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/hr-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "Dopusti korisnika", 
- "HR": "HR", 
- "Holiday Block List Allow": "Turisti\u010dka Popis Blok Dopustite"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/nl-doc.json b/hr/doctype/holiday_block_list_allow/locale/nl-doc.json
deleted file mode 100644
index 74f6452..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/nl-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "Door gebruiker toestaan", 
- "HR": "HR", 
- "Holiday Block List Allow": "Holiday Block List Laat"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/locale/pt-doc.json b/hr/doctype/holiday_block_list_allow/locale/pt-doc.json
deleted file mode 100644
index 9c1c1fc..0000000
--- a/hr/doctype/holiday_block_list_allow/locale/pt-doc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "Allow User": "Permitir que o usu\u00e1rio", 
- "HR": "HR", 
- "Holiday Block List Allow": "Lista de Bloqueios de f\u00e9rias Permitir"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/_messages_doc.json b/hr/doctype/holiday_block_list_date/locale/_messages_doc.json
deleted file mode 100644
index 4a98b98..0000000
--- a/hr/doctype/holiday_block_list_date/locale/_messages_doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-[
- "HR", 
- "Reason", 
- "Holiday Block List Date", 
- "Block Date"
-]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/ar-doc.json b/hr/doctype/holiday_block_list_date/locale/ar-doc.json
deleted file mode 100644
index 4e642ba..0000000
--- a/hr/doctype/holiday_block_list_date/locale/ar-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "\u0645\u0646\u0639 \u062a\u0627\u0631\u064a\u062e", 
- "HR": "HR", 
- "Holiday Block List Date": "\u062a\u0627\u0631\u064a\u062e \u0625\u0642\u0627\u0645\u0627\u062a \u0642\u0627\u0626\u0645\u0629", 
- "Reason": "\u0633\u0628\u0628"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/es-doc.json b/hr/doctype/holiday_block_list_date/locale/es-doc.json
deleted file mode 100644
index d773187..0000000
--- a/hr/doctype/holiday_block_list_date/locale/es-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "Bloque Fecha", 
- "HR": "HR", 
- "Holiday Block List Date": "Bloque de vacaciones Lista Fecha", 
- "Reason": "Raz\u00f3n"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/fr-doc.json b/hr/doctype/holiday_block_list_date/locale/fr-doc.json
deleted file mode 100644
index 2d4bba7..0000000
--- a/hr/doctype/holiday_block_list_date/locale/fr-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "Date de bloquer", 
- "HR": "RH", 
- "Holiday Block List Date": "Liste Date vacances Bloquer", 
- "Reason": "Raison"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/hi-doc.json b/hr/doctype/holiday_block_list_date/locale/hi-doc.json
deleted file mode 100644
index 44a9f9e..0000000
--- a/hr/doctype/holiday_block_list_date/locale/hi-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "\u0924\u093f\u0925\u093f \u092c\u094d\u0932\u0949\u0915", 
- "HR": "\u092e\u093e\u0928\u0935 \u0938\u0902\u0938\u093e\u0927\u0928", 
- "Holiday Block List Date": "\u0905\u0935\u0915\u093e\u0936 \u092c\u094d\u0932\u0949\u0915 \u0938\u0942\u091a\u0940 \u0924\u093f\u0925\u093f", 
- "Reason": "\u0915\u093e\u0930\u0923"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/hr-doc.json b/hr/doctype/holiday_block_list_date/locale/hr-doc.json
deleted file mode 100644
index fa91d53..0000000
--- a/hr/doctype/holiday_block_list_date/locale/hr-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "Blok Datum", 
- "HR": "HR", 
- "Holiday Block List Date": "Turisti\u010dka Blok Popis Datum", 
- "Reason": "Razlog"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/nl-doc.json b/hr/doctype/holiday_block_list_date/locale/nl-doc.json
deleted file mode 100644
index deaea5e..0000000
--- a/hr/doctype/holiday_block_list_date/locale/nl-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "Blokkeren Datum", 
- "HR": "HR", 
- "Holiday Block List Date": "Holiday Block List Datum", 
- "Reason": "Reden"
-}
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_date/locale/pt-doc.json b/hr/doctype/holiday_block_list_date/locale/pt-doc.json
deleted file mode 100644
index 1b95487..0000000
--- a/hr/doctype/holiday_block_list_date/locale/pt-doc.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Block Date": "Bloquear Data", 
- "HR": "HR", 
- "Holiday Block List Date": "Data feriado Lista de Bloqueios", 
- "Reason": "Raz\u00e3o"
-}
\ No newline at end of file
diff --git a/hr/doctype/leave_application/leave_application.py b/hr/doctype/leave_application/leave_application.py
index bc685df..2e26eb3 100755
--- a/hr/doctype/leave_application/leave_application.py
+++ b/hr/doctype/leave_application/leave_application.py
@@ -59,11 +59,11 @@
 		# per department
 		department = webnotes.conn.get_value("Employee", self.doc.employee, "department")
 		if department:
-			block_list = webnotes.conn.get_value("Department", department, "holiday_block_list")
+			block_list = webnotes.conn.get_value("Department", department, "leave_block_list")
 			add_block_list(block_list)
 
 		# global
-		for block_list in webnotes.conn.sql_list("""select name from `tabHoliday Block List`
+		for block_list in webnotes.conn.sql_list("""select name from `tabLeave Block List`
 			where ifnull(applies_to_all_departments,0)=1 and company=%s""", self.doc.company):
 			add_block_list(block_list)
 				
@@ -73,7 +73,7 @@
 		from_date = getdate(self.doc.from_date)
 		to_date = getdate(self.doc.to_date)
 		for d in webnotes.conn.sql("""select block_date, reason from
-			`tabHoliday Block List Date` where parent=%s""", block_list, as_dict=1):
+			`tabLeave Block List Date` where parent=%s""", block_list, as_dict=1):
 			block_date = getdate(d.block_date)
 			if block_date > from_date and block_date < to_date:
 				webnotes.msgprint(_("You cannot apply for a leave on the following date because it is blocked")
@@ -84,7 +84,7 @@
 
 	def is_user_in_allow_list(self, block_list):
 		return webnotes.session.user in webnotes.conn.sql_list("""select allow_user
-			from `tabHoliday Block List Allow` where parent=%s""", block_list)
+			from `tabLeave Block List Allow` where parent=%s""", block_list)
 
 	def get_holidays(self):
 		tot_hol = webnotes.conn.sql("""select count(*) from `tabHoliday` h1, `tabHoliday List` h2, `tabEmployee` e1 
diff --git a/hr/doctype/leave_application/test_leave_application.py b/hr/doctype/leave_application/test_leave_application.py
index cd74d01..19e2935 100644
--- a/hr/doctype/leave_application/test_leave_application.py
+++ b/hr/doctype/leave_application/test_leave_application.py
@@ -30,7 +30,7 @@
 	def test_global_block_list(self):
 		application = self.get_application(test_records[3])
 		application.doc.leave_approver = "test@example.com"
-		webnotes.conn.set_value("Holiday Block List", "_Test Holiday Block List", 
+		webnotes.conn.set_value("Leave Block List", "_Test Leave Block List", 
 			"applies_to_all_departments", 1)
 		webnotes.conn.set_value("Employee", "_T-Employee-0002", "department", 
 			"_Test Department")
diff --git a/hr/doctype/holiday_block_list/__init__.py b/hr/doctype/leave_block_list/__init__.py
similarity index 100%
rename from hr/doctype/holiday_block_list/__init__.py
rename to hr/doctype/leave_block_list/__init__.py
diff --git a/hr/doctype/holiday_block_list/holiday_block_list.py b/hr/doctype/leave_block_list/leave_block_list.py
similarity index 88%
rename from hr/doctype/holiday_block_list/holiday_block_list.py
rename to hr/doctype/leave_block_list/leave_block_list.py
index 776e4a9..16d7320 100644
--- a/hr/doctype/holiday_block_list/holiday_block_list.py
+++ b/hr/doctype/leave_block_list/leave_block_list.py
@@ -11,7 +11,7 @@
 		
 	def validate(self):
 		dates = []
-		for d in self.doclist.get({"doctype":"Holiday Block List Date"}):
+		for d in self.doclist.get({"doctype":"Leave Block List Date"}):
 			# validate fiscal year
 			validate_fiscal_year(d.block_date, self.doc.year, _("Block Date"))
 			
@@ -19,4 +19,3 @@
 			if d.block_date in dates:
 				webnotes.msgprint(_("Date is repeated") + ":" + d.block_date, raise_exception=1)
 			dates.append(d.block_date)
-
diff --git a/hr/doctype/holiday_block_list/holiday_block_list.txt b/hr/doctype/leave_block_list/leave_block_list.txt
similarity index 76%
rename from hr/doctype/holiday_block_list/holiday_block_list.txt
rename to hr/doctype/leave_block_list/leave_block_list.txt
index d034d8f..b48416c 100644
--- a/hr/doctype/holiday_block_list/holiday_block_list.txt
+++ b/hr/doctype/leave_block_list/leave_block_list.txt
@@ -1,13 +1,13 @@
 [
  {
-  "creation": "2013-02-04 15:31:29", 
+  "creation": "2013-02-08 15:13:29", 
   "docstatus": 0, 
-  "modified": "2013-02-08 11:36:20", 
+  "modified": "2013-02-14 17:15:32", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
  {
-  "autoname": "field:holiday_block_list_name", 
+  "autoname": "field:leave_block_list_name", 
   "description": "Block Holidays on important days.", 
   "doctype": "DocType", 
   "document_type": "Master", 
@@ -17,7 +17,7 @@
  {
   "doctype": "DocField", 
   "name": "__common__", 
-  "parent": "Holiday Block List", 
+  "parent": "Leave Block List", 
   "parentfield": "fields", 
   "parenttype": "DocType", 
   "permlevel": 0
@@ -26,7 +26,7 @@
   "create": 1, 
   "doctype": "DocPerm", 
   "name": "__common__", 
-  "parent": "Holiday Block List", 
+  "parent": "Leave Block List", 
   "parentfield": "permissions", 
   "parenttype": "DocType", 
   "permlevel": 0, 
@@ -36,13 +36,13 @@
  }, 
  {
   "doctype": "DocType", 
-  "name": "Holiday Block List"
+  "name": "Leave Block List"
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "holiday_block_list_name", 
+  "fieldname": "leave_block_list_name", 
   "fieldtype": "Data", 
-  "label": "Holiday Block List Name", 
+  "label": "Leave Block List Name", 
   "reqd": 1
  }, 
  {
@@ -77,10 +77,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "holiday_block_list_dates", 
+  "fieldname": "leave_block_list_dates", 
   "fieldtype": "Table", 
-  "label": "Holiday Block List Dates", 
-  "options": "Holiday Block List Date"
+  "label": "Leave Block List Dates", 
+  "options": "Leave Block List Date"
  }, 
  {
   "description": "Allow the following users to make Leave Applications for block days.", 
@@ -91,10 +91,10 @@
  }, 
  {
   "doctype": "DocField", 
-  "fieldname": "holiday_block_list_allowed", 
+  "fieldname": "leave_block_list_allowed", 
   "fieldtype": "Table", 
-  "label": "Holiday Block List Allowed", 
-  "options": "Holiday Block List Allow"
+  "label": "Leave Block List Allowed", 
+  "options": "Leave Block List Allow"
  }, 
  {
   "doctype": "DocPerm"
diff --git a/hr/doctype/leave_block_list/test_leave_block_list.py b/hr/doctype/leave_block_list/test_leave_block_list.py
new file mode 100644
index 0000000..7017872
--- /dev/null
+++ b/hr/doctype/leave_block_list/test_leave_block_list.py
@@ -0,0 +1,20 @@
+test_records = [[{
+		"doctype":"Leave Block List",
+		"leave_block_list_name": "_Test Leave Block List",
+		"year": "_Test Fiscal Year 2013",
+		"company": "_Test Company"
+	}, {
+		"doctype": "Leave Block List Date",
+		"parent": "_Test Leave Block List",
+		"parenttype": "Leave Block List",
+		"parentfield": "leave_block_list_dates",
+		"block_date": "2013-01-02",
+		"reason": "First work day"
+	}, {
+		"doctype": "Leave Block List Allow",
+		"parent": "_Test Leave Block List",
+		"parenttype": "Leave Block List",
+		"parentfield": "leave_block_list_allowed",
+		"allow_user": "test1@example.com",
+		}
+	]]
\ No newline at end of file
diff --git a/hr/doctype/holiday_block_list_allow/__init__.py b/hr/doctype/leave_block_list_allow/__init__.py
similarity index 100%
rename from hr/doctype/holiday_block_list_allow/__init__.py
rename to hr/doctype/leave_block_list_allow/__init__.py
diff --git a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.py b/hr/doctype/leave_block_list_allow/leave_block_list_allow.py
similarity index 100%
rename from hr/doctype/holiday_block_list_allow/holiday_block_list_allow.py
rename to hr/doctype/leave_block_list_allow/leave_block_list_allow.py
diff --git a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
similarity index 76%
rename from hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt
rename to hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
index bdbd2a0..8709ff7 100644
--- a/hr/doctype/holiday_block_list_allow/holiday_block_list_allow.txt
+++ b/hr/doctype/leave_block_list_allow/leave_block_list_allow.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-02-06 14:31:03", 
+  "creation": "2013-02-06 17:43:44", 
   "docstatus": 0, 
-  "modified": "2013-02-06 14:31:03", 
+  "modified": "2013-02-14 17:15:45", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -19,7 +19,7 @@
   "label": "Allow User", 
   "name": "__common__", 
   "options": "Profile", 
-  "parent": "Holiday Block List Allow", 
+  "parent": "Leave Block List Allow", 
   "parentfield": "fields", 
   "parenttype": "DocType", 
   "permlevel": 0, 
@@ -27,7 +27,7 @@
  }, 
  {
   "doctype": "DocType", 
-  "name": "Holiday Block List Allow"
+  "name": "Leave Block List Allow"
  }, 
  {
   "doctype": "DocField"
diff --git a/hr/doctype/holiday_block_list_date/__init__.py b/hr/doctype/leave_block_list_date/__init__.py
similarity index 100%
rename from hr/doctype/holiday_block_list_date/__init__.py
rename to hr/doctype/leave_block_list_date/__init__.py
diff --git a/hr/doctype/holiday_block_list_date/holiday_block_list_date.py b/hr/doctype/leave_block_list_date/leave_block_list_date.py
similarity index 100%
rename from hr/doctype/holiday_block_list_date/holiday_block_list_date.py
rename to hr/doctype/leave_block_list_date/leave_block_list_date.py
diff --git a/hr/doctype/holiday_block_list_date/holiday_block_list_date.txt b/hr/doctype/leave_block_list_date/leave_block_list_date.txt
similarity index 79%
rename from hr/doctype/holiday_block_list_date/holiday_block_list_date.txt
rename to hr/doctype/leave_block_list_date/leave_block_list_date.txt
index 69375fe..bf543ae 100644
--- a/hr/doctype/holiday_block_list_date/holiday_block_list_date.txt
+++ b/hr/doctype/leave_block_list_date/leave_block_list_date.txt
@@ -1,8 +1,8 @@
 [
  {
-  "creation": "2013-02-04 15:33:14", 
+  "creation": "2013-02-05 11:48:25", 
   "docstatus": 0, 
-  "modified": "2013-02-04 15:36:10", 
+  "modified": "2013-02-14 17:15:52", 
   "modified_by": "Administrator", 
   "owner": "Administrator"
  }, 
@@ -15,7 +15,7 @@
  {
   "doctype": "DocField", 
   "name": "__common__", 
-  "parent": "Holiday Block List Date", 
+  "parent": "Leave Block List Date", 
   "parentfield": "fields", 
   "parenttype": "DocType", 
   "permlevel": 0, 
@@ -23,7 +23,7 @@
  }, 
  {
   "doctype": "DocType", 
-  "name": "Holiday Block List Date"
+  "name": "Leave Block List Date"
  }, 
  {
   "doctype": "DocField", 
diff --git a/hr/page/hr_home/hr_home.js b/hr/page/hr_home/hr_home.js
index 8c52e0e..465835f 100644
--- a/hr/page/hr_home/hr_home.js
+++ b/hr/page/hr_home/hr_home.js
@@ -81,9 +81,9 @@
 				doctype: "Holiday List"
 			},
 			{
-				"label":wn._("Holiday Block List"),
+				"label":wn._("Leave Block List"),
 				"description":wn._("Block leave applications by department."),
-				doctype: "Holiday Block List"
+				doctype: "Leave Block List"
 			},
 		]
 	},
diff --git a/patches/february_2013/p01_event.py b/patches/february_2013/p01_event.py
new file mode 100644
index 0000000..e6b04d3
--- /dev/null
+++ b/patches/february_2013/p01_event.py
@@ -0,0 +1,14 @@
+import webnotes
+
+def execute():
+	webnotes.reload_doc("core", "doctype", "event")
+
+	webnotes.conn.sql("""update tabEvent set subject=description""")
+		
+	webnotes.conn.sql("""update tabEvent set description = concat(description, "\n", notes)
+		where ifnull(notes,"") != "" """)
+		
+	webnotes.conn.sql("""update tabEvent set starts_on = timestamp(event_date, event_hour)""")
+	
+	webnotes.conn.sql("""update tabEvent set ends_on = timestampadd(hour, 1, starts_on)""")	
+	
diff --git a/public/js/toolbar.js b/public/js/toolbar.js
index 8fd3d98..ed7aff1 100644
--- a/public/js/toolbar.js
+++ b/public/js/toolbar.js
@@ -57,7 +57,7 @@
 		</ul>\
 		</li>').prependTo('.navbar .nav:first');
 	
-	var modules_list = wn.user.get_desktop_items();
+	var modules_list = wn.user.get_desktop_items().sort();
 
 	// add to dropdown
 	for(var i in modules_list) {
diff --git a/startup/event_handlers.py b/startup/event_handlers.py
index 2a74eeb..76c842d 100644
--- a/startup/event_handlers.py
+++ b/startup/event_handlers.py
@@ -55,8 +55,6 @@
 		bootinfo['letter_heads'] = get_letter_heads()
 
 		import webnotes.model.doctype
-		bootinfo['docs'] += webnotes.model.doctype.get('Event')
-		bootinfo['docs'] += webnotes.model.doctype.get('Search Criteria')
 		bootinfo['notification_settings'] = webnotes.doc("Notification Control", 
 			"Notification Control").get_values()
 		
diff --git a/utilities/page/calendar/calendar.css b/utilities/page/calendar/calendar.css
deleted file mode 100644
index dd1b6de..0000000
--- a/utilities/page/calendar/calendar.css
+++ /dev/null
@@ -1,165 +0,0 @@
-/**** CALENDAR ****/
-
-.cal_event {
-	text-overflow: ellipsis; 
-	white-space: nowrap; 
-	overflow: hidden;
-	margin-bottom: 3px;
-}
-
-div.cal_body {
-	margin: 16px;
-	background-color: #DDD;
-	position: relative;
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;	
-	padding: 16px;
-	-moz-box-shadow: 1px 1px 8px #555;
-	-webkit-box-shadow: 1px 1px 8px #555;
-	box-shadow: 1px 1px 8px #555;
-}
-
-div.cal_body h4 {
-	text-align: center;
-}
-
-div.cal_head {
-	margin: 16px;
-	margin-bottom: 0px;
-}
-div.cal_head div {
-	font-size: 18px;
-	color: #666;
-	padding-top: 8px;
-}
-
-div.cal_toolbar {
-	width: 80%;
-}
-
-div.cal_toolbar .btn {
-	text-align: center;
-	margin: 0px;
-	margin-left: -1px;
-}
-
-div.cal_view_body {
-}
-
-div.cal_view_body_plain {
-	margin: 16px;
-}
-
-div.cal_month_head {
-	margin: 8px 0px 8px 0px;
-	height: 30px;
-}
-
-div.cal_month_head .btn {
-	float: right;
-}
-
-span.cal_view_title {
-	display: inline-block;
-	font-size: 20px;
-}
-
-div.cal_month_body {
-}
-
-.cal_month_headtable {
-	table-layout:fixed;
-	width: 100%;
-}
-
-.cal_month_name {
-	width: 100%;
-	color: #888;
-	font-size: 14px;
-	font-weight: bold;
-	text-align: center;
-}
-
-.cal_month_headtable tr td{
-	font-size: 12px;
-	font-weight: bold;
-	text-align: center;
-	padding: 4px;
-}
-
-table.cal_month_table {
-	border-collapse: collapse;
-	table-layout:fixed;
-	width: 100%;
-}
-
-table.cal_month_table td {
-	width: 14.29%;
-	height: 20%;
-	/*overflow:hidden;*/
-	padding:0px;
-}
-
-div.cal_month_date {
-	width:100%;
-	font-size: 10px;
-	/*background-color: #EEF;*/
-}
-
-div.cal_month_date_holiday {
-	/*background-color: #FFF;*/
-}
-
-div.cal_month_unit {
-	width:100%;
-	min-height: 100px;
-	overflow:hidden;
-	cursor:pointer;
-	/*background-color:#FFF;*/
-}
-	
-div.cal_vu_disabled {
-	background-color:#FFF;
-	cursor:default;
-}
-
-table.cal_day_table {
-	border-collapse: collapse;
-	width: 100%;
-}
-
-table.cal_day_table td {
-}
-
-div.cal_day_body {
-	width: 100%;
-	overflow-x: hidden;
-	border-top: 1px solid #AAA;
-}
-
-div.cal_day_unit{
-	width:100%;
-	cursor:pointer;
-}
-
-table.cal_week_table {
-	border-collapse: collapse;
-	table-layout: fixed;
-	width: 100%;
-}
-
-table.cal_week_table td {
-	width: 12.5%;
-}
-
-div.cal_week_body {
-	width: 100%;
-	overflow-x: hidden;
-	border-top: 1px solid #888;
-}
-
-div.cal_week_unit{
-	width: 100%;
-	cursor:pointer;
-}
diff --git a/utilities/page/calendar/calendar.html b/utilities/page/calendar/calendar.html
deleted file mode 100644
index 0f8cc0e..0000000
--- a/utilities/page/calendar/calendar.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<div class="cal_body">
-	<a class="close" onclick="window.history.back();">&times;</a>
-	<div class="cal_toolbar btn-group">
-		<button class="btn btn-small" onclick="erpnext.calendar.add_event()">
-			<i class="icon-plus"></i> Add Event
-		</button>
-		<button class="btn btn-small" onclick="erpnext.calendar.refresh('Day')">
-			Day View
-		</button>
-		<button class="btn btn-small" onclick="erpnext.calendar.refresh('Week')">
-			Week View
-		</button>
-		<button class="btn btn-small" onclick="erpnext.calendar.refresh('Month')">
-			Month View
-		</button>
-		<button class="btn btn-small" onclick="erpnext.calendar.refresh(null, true)">
-			<i class="icon-refresh"></i> Refresh
-		</button>
-	</div>
-	<div class="cal_month_head">
-		<span class="cal_view_title"></span>
-		<button class="btn btn-small" onclick="erpnext.calendar.cur_view.next()">
-			<i class="icon-arrow-right"></i>
-		</button>
-		<button class="btn btn-small" onclick="erpnext.calendar.cur_view.prev()">
-			<i class="icon-arrow-left"></i>
-		</button>
-	</div>
-</div>
\ No newline at end of file
diff --git a/utilities/page/calendar/calendar.js b/utilities/page/calendar/calendar.js
index 5e59f1f..cac5ec8 100644
--- a/utilities/page/calendar/calendar.js
+++ b/utilities/page/calendar/calendar.js
@@ -21,690 +21,86 @@
 // 
 
 pscript.onload_calendar = function(wrapper) {
-	if(!erpnext.calendar) {
-		erpnext.calendar = new Calendar();
-		erpnext.calendar.init(wrapper);
-
-		var me = this;
-		$(document).bind('rename', function(event, dt, old_name, new_name) {
-			erpnext.calendar.rename_notify(dt, old_name, new_name)
-		});
-	}
-}
-
-///// CALENDAR
-
-Calendar=function() {
-	this.views=[];
-	this.events = {};
-	this.events_by_name = {};
-	this.weekdays = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
-}
-
-Calendar.prototype.init=function (parent) {
-
-	this.wrapper = parent;
- 	this.body = $('.cal_body').get(0);
-
- 	//this.make_head_buttons();
- 	//this.make_header();
-	this.view_title = $('.cal_view_title').get(0);
- 	
-	this.todays_date = new Date();
-	this.selected_date = this.todays_date;
-	this.selected_hour = 8;
-
-	// Create views
-	this.views['Month'] = new Calendar.MonthView(this);
-	this.views['Week'] = new Calendar.WeekView(this);
-	this.views['Day'] = new Calendar.DayView(this);
-
-	// Month view as initial
-	this.cur_view = this.views['Month'];
-	this.views['Month'].show();
+	wn.ui.make_app_page({
+		parent: wrapper,
+		single_column: true,
+		title: 'Calendar'
+	});
 	
+	wn.require('lib/js/lib/fullcalendar/fullcalendar.css');
+	wn.require('lib/js/lib/fullcalendar/fullcalendar.js');
 }
 
-Calendar.prototype.rename_notify = function(dt, old_name, new_name) {
-	// calendar
-	if(dt = 'Event'){
-		if(this.events_by_name[old_name]) {
-			delete this.events_by_name[old_name];
-		}
-	}
-}
-
-//------------------------------------------------------
-
-Calendar.prototype.show_event = function(ev, cal_ev) {
-	var me = this;
-	if(!this.event_dialog) {
-		var d = new Dialog(400, 400, 'Calendar Event');
-		d.make_body([
-			['HTML','Heading']
-			,['Text','Description']
-			,['HTML', 'Ref Link']
-			,['Check', 'Public Event']
-			,['Check', 'Cancelled Event']
-			,['HTML', 'Event Link']
-			,['Button', 'Save']
-		])
-		
-		// show the event when the dialog opens
-		d.onshow = function() {
-			// heading
-			var c = me.selected_date;
-			
-			this.widgets['Heading'].innerHTML = 
-				'<div style="text-align: center; padding:4px; font-size: 14px">'
-				+ erpnext.calendar.weekdays[c.getDay()] + ', ' + c.getDate() + ' ' + month_list_full[c.getMonth()] + ' ' + c.getFullYear() 
-				+ ' - <b>'+this.ev.event_hour+'</b></div>';
-			
-			// set
-			this.widgets['Description'].value = cstr(this.ev.description);
-			
-			this.widgets['Public Event'].checked = false;
-			this.widgets['Cancelled Event'].checked = false;
-
-			if(this.ev.event_type=='Public')
-				this.widgets['Public Event'].checked = true;
-			
-			this.widgets['Event Link'].innerHTML = '';
-			this.widgets['Ref Link'].innerHTML = '';
-
-			if(this.ev.ref_type) {
-				$(repl('<table style="width: 100%;"><tr>\
-					<td style="width: 30%"><b>Reference:</b></td>\
-					<td><a href="#Form/%(ref_type)s/%(ref_name)s" \
-					onclick="cur_dialog.hide()">%(ref_type)s: %(ref_name)s</a></td>\
-				</tr></table>', this.ev))
-						.appendTo(this.widgets['Ref Link'])
-			}
-
-			$(repl('<a href="#Form/Event/%(name)s" \
-				onclick="cur_dialog.hide()">More Options</a>', this.ev))
-					.appendTo(this.widgets['Event Link'])
-		}
-		
-		// event save
-		d.widgets['Save'].onclick = function() {
-			var d = me.event_dialog;
-			
-			// save values
-			d.ev.description = d.widgets['Description'].value;
-			if(d.widgets['Cancelled Event'].checked) 
-				d.ev.event_type='Cancel';
-			else if(d.widgets['Public Event'].checked) 
-				d.ev.event_type='Public';
-			
-			me.event_dialog.hide();
-			
-			// if new event
-			me.save_event(d.ev);
-		}
-		this.event_dialog = d;
-	}
-	this.event_dialog.ev = ev;
-	this.event_dialog.cal_ev = cal_ev ? cal_ev : null;
-	this.event_dialog.show();
-	
-}
-
-Calendar.prototype.save_event = function(doc) {
-	var me = this;
-	var doclist = new wn.model.DocList("Event", doc.name);
-	doclist.save("Save", function(r) {
-		var doc = locals['Event'][r.docname];
-		var cal = erpnext.calendar;
-		cal.cur_view.refresh();
-
-		// if cancelled, hide
-		if(doc.event_type=='Cancel') {
-			$(cal.events_by_name[doc.name].body).toggle(false);
-		}		
-	})
-}
-
-//------------------------------------------------------
-
-Calendar.prototype.add_event = function() {
-		
-	var ev = wn.model.make_new_doc_and_get_name('Event');
-	ev = locals['Event'][ev];
-	
-	ev.event_date = dateutil.obj_to_str(this.selected_date);
-	ev.event_hour = this.selected_hour+':00:00';
-	ev.event_type = 'Private';
-
-	this.show_event(ev);
-}
-//------------------------------------------------------
-
-Calendar.prototype.get_month_events = function(call_back) {
-	// ret fn
-	var me = this;
-	var f = function(r, rt) {
-		if(me.cur_view) me.cur_view.refresh();
-		if(call_back)call_back();
-	}
-
-	//load
-	var y=this.selected_date.getFullYear(); var m = this.selected_date.getMonth();
-	if(!this.events[y] || !this.events[y][m]) {
-		$c('webnotes.widgets.event.load_month_events', args = {
-			'month': m + 1, 
-			'year' : y},
-			f);	
-	}
-}
-//------------------------------------------------------
-
-Calendar.prototype.get_daily_event_list=function(day) {
-	var el = [];
-	var d = day.getDate(); var m = day.getMonth(); var y = day.getFullYear()
-	if(this.events[y] && this.events[y][m] &&
-		this.events[y][m][d]) {
-		var l = this.events[y][m][d]
-		for(var i in l) {
-			for(var j in l[i]) el[el.length] = l[i][j];
-		}
-		return el;
-	}
-	else return [];
-}
-//------------------------------------------------------
-
-Calendar.prototype.set_event = function(ev) {
-	// don't duplicate
-	if(this.events_by_name[ev.name]) {
-		return this.events_by_name[ev.name];
-	}
-		
-	var dt = dateutil.str_to_obj(ev.event_date);
-	var m = dt.getMonth();
-	var d = dt.getDate();
-	var y = dt.getFullYear();
-
-	if(!this.events[y]) this.events[y] = [];
-	if(!this.events[y][m]) this.events[y][m] = [];
-	if(!this.events[y][m][d]) this.events[y][m][d] = [];
-	if(!this.events[y][m][d][cint(ev.event_hour)]) 
-		this.events[y][m][d][cint(ev.event_hour)] = [];
-
-	var cal_ev = new Calendar.CalEvent(ev, this);
-	this.events[y][m][d][cint(ev.event_hour)].push(cal_ev);	
-	this.events_by_name[ev.name] = cal_ev;
-	
-	return cal_ev;
-}
-
-//------------------------------------------------------
-
-Calendar.prototype.clear = function() {
-	this.events = {};
-	this.events_by_name = {};
-	locals.Event = {};
-}
-
-Calendar.prototype.refresh = function(viewtype, clear_events){//Sets the viewtype of the Calendar and Calls the View class based on the viewtype
- 	if(viewtype)
- 		this.viewtype = viewtype;
-
-	if(clear_events)
-		this.clear();
-		
- 	// switch view if reqd
- 	if(this.cur_view.viewtype!=this.viewtype) {
- 		this.cur_view.hide();
- 		this.cur_view = this.views[this.viewtype];
- 		this.cur_view.in_home = false; // for home page
- 		this.cur_view.show();
- 	}
- 	else{
- 		this.cur_view.get_events();
- 		this.cur_view.refresh(this);
- 	}
-}
-
-//------------------------------------------------------
-
-Calendar.CalEvent= function(doc, cal) {
-	var me = this;
-	me.doc = doc;
-	
-	this.body = $("<div class='label cal_event'></div>")
-		.html(doc.description)
-		.attr("title", doc.description)
-		.css({"cursor":"pointer"})
-		.attr("data-event", doc.name)
-		.click(function() {
-			var doc = locals["Event"][$(this).attr("data-event")];
-			cal.show_event(doc, me);
-		})
-
-	this.show = function(vu) {
-		me.body
-			.html(me.doc.description)
-			.css({"width": ($(vu.body).width()-10)})
-			.appendTo(vu.body)
-			.removeClass("label-success").removeClass("label-info")
-			.addClass(me.doc.event_type=="Public" ? "label-success" : "label-info")
-	}
-}
-
-
-// ----------
-
-Calendar.View =function() { this.daystep = 0; this.monthstep = 0; }
-Calendar.View.prototype.init=function(cal) {
- 	this.cal = cal;
- 	this.body = $a(cal.body, 'div', 'cal_view_body');
- 	this.body.style.display = 'none';
- 	this.create_table();
-}
-
-
-Calendar.View.prototype.show=function() { 
-	this.body.style.display = 'block';
-	this.get_events(); this.refresh();  
-}
-
-Calendar.View.prototype.hide=function() { 
-	this.body.style.display = 'none';
-}
-
-Calendar.View.prototype.next = function() {
-	var s = this.cal.selected_date;
-	this.cal.selected_date = new Date(s.getFullYear(), s.getMonth() + this.monthstep, s.getDate() + this.daystep);
-	this.get_events(); this.refresh();
-}
-
-Calendar.View.prototype.prev = function() {
-	var s = this.cal.selected_date;
-	this.cal.selected_date = new Date(s.getFullYear(), s.getMonth() - this.monthstep, s.getDate() - this.daystep);
-	this.get_events(); this.refresh();
-}
-
-Calendar.View.prototype.get_events = function() { 
-	this.cal.get_month_events(); 
-}
-Calendar.View.prototype.add_unit = function(vu) { 
-	this.viewunits[this.viewunits.length] = vu; 
-}
-Calendar.View.prototype.refresh_units = function() { 
-	// load the events
-	if(locals['Event']) {
-		for(var name in locals['Event']) {
-			this.cal.set_event(locals['Event'][name]);
-		}
-	}
-	
-	
-	for(var r in this.table.rows) {
-		for(var c in this.table.rows[r].cells) {
-			if(this.table.rows[r].cells[c].viewunit) {
-				this.table.rows[r].cells[c].viewunit.refresh();
+pscript.update_event = function(event) {
+	wn.model.remove_from_locals("Event", event.id);
+	wn.call({
+		module: "utilities",
+		page: "calendar",
+		method: "update_event",
+		args: {
+			"start": wn.datetime.get_datetime_as_string(event.start),
+			"end": wn.datetime.get_datetime_as_string(event.end),
+			"name": event.id
+		},
+		callback: function(r) {
+			if(r.exc) {
+				show_alert("Unable to update event.")
 			}
 		}
-	}
+	});
 }
 
-// ................. Month View..........................
-Calendar.MonthView = function(cal) { this.init(cal); this.monthstep = 1; this.rows = 5; this.cells = 7; }
-Calendar.MonthView.prototype=new Calendar.View();
-Calendar.MonthView.prototype.create_table = function() {
 
-	// create head
-	this.head_wrapper = $a(this.body, 'div', 'cal_month_head');
-
-	// create headers
-	this.headtable = $a(this.head_wrapper, 'table', 'cal_month_headtable');
-	var r = this.headtable.insertRow(0);
-	for(var j=0;j<7;j++) {
- 		var cell = r.insertCell(j);
-		cell.innerHTML = erpnext.calendar.weekdays[j]; 
-		$w(cell, (100 / 7) + '%');
- 	}
-
-	this.main = $a(this.body, 'div', 'cal_month_body');
-	this.table = $a(this.main, 'table', 'cal_month_table');
-	var me = this;
-
-	// create body
- 	for(var i=0;i<5;i++) {
- 		var r = this.table.insertRow(i);
- 		for(var j=0;j<7;j++) {
- 			var cell = r.insertCell(j);
-			cell.viewunit = new Calendar.MonthViewUnit(cell);
- 		}
-  	}  	
-}
-
-Calendar.MonthView.prototype.refresh = function() {
- 	var c =this.cal.selected_date;
-	var	me=this;
-	// fill other days
-
-	var cur_row = 0; 
-
- 	var cur_month = c.getMonth();
- 	var cur_year = c.getFullYear();
-
- 	var d = new Date(cur_year, cur_month, 1);
-	var day = 1 - d.getDay();
-	
-
-	// set day headers
- 	var d = new Date(cur_year, cur_month, day);
-
-	this.cal.view_title.innerHTML = month_list_full[cur_month] + ' ' + cur_year;
-
- 	for(var i=0;i<6;i++) {
- 		if((i<5) || cur_month==d.getMonth()) { // if this month
-	 		for(var j=0;j<7;j++) {
-				var cell = this.table.rows[cur_row].cells[j];
-
-		 		if((i<5) || cur_month==d.getMonth()) {	// if this month
-					cell.viewunit.day = d;
-					cell.viewunit.hour = 8;
-			 		if(cur_month == d.getMonth()) {
-						cell.viewunit.is_disabled = false;
-	
-						if(same_day(this.cal.todays_date, d))
-							cell.viewunit.is_today = true;
-						else
-							cell.viewunit.is_today = false;					
-						
-					} else {
-						cell.viewunit.is_disabled = true;
+pscript.onshow_calendar = function(wrapper) {
+	if(!wrapper.setup_complete) {
+		$('<div id="fullcalendar">').appendTo($(wrapper).find('.layout-main')).fullCalendar({
+			header: {
+				left: 'prev,next today',
+				center: 'title',
+				right: 'month,agendaWeek,agendaDay'
+			},
+			editable: true,
+			events: function(start, end, callback) {
+				wn.call({
+					method: 'utilities.page.calendar.calendar.get_events',
+					type: "GET",
+					args: {
+						start: dateutil.obj_to_str(start),
+						end: dateutil.obj_to_str(end)
+					},
+					callback: function(r) {
+						var events = r.message;
+						$.each(events, function(i, d) { 
+							d.editable = d.owner==user;
+							d.allDay = false; 
+						});
+						callback(events);
 					}
-				}
-				// new date
-	 			day++;
-		 		d = new Date(cur_year, cur_month, day);
-	 		}
-	 	}
-		cur_row++;
- 		if(cur_row == 5) {cur_row = 0;} // back to top
-	}
-	this.refresh_units();
-	
-}
- // ................. Daily View..........................
-Calendar.DayView=function(cal){ this.init(cal); this.daystep = 1; }
-Calendar.DayView.prototype=new Calendar.View();
-Calendar.DayView.prototype.create_table = function() {
+				})
+			},
+			dayClick: function(date, allDay, jsEvent, view) {
+				// if current date, show popup to create a new event
+				var ev = wn.model.create('Event')
+				ev.doc.set('start', date);
+				ev.doc.set('end', new Date(date));
+				ev.doc.set('all_day', 1);
 
-	// create body
-	this.main = $a(this.body, 'div', 'cal_day_body');
-	this.table = $a(this.main, 'table', 'cal_day_table');
-	var me = this;
-	
- 	for(var i=0;i<24;i++) {
- 		var r = this.table.insertRow(i);
- 		for(var j=0;j<2;j++) {
- 			var cell = r.insertCell(j);
-			if(j==0) {
-				cell.innerHTML = i+':00:00';
-				$w(cell, '10%');
-			} else {
-				cell.viewunit = new Calendar.DayViewUnit(cell);
-				cell.viewunit.hour = i;
-				$w(cell, '90%');
-				if((i>=7)&&(i<=20)) {
-					cell.viewunit.is_daytime = true;
-				}
+			},
+			eventClick: function(calEvent, jsEvent, view) {
+				// edit event description or delete
+				wn.set_route("Form", "Event", calEvent.id);
+			},
+			eventDrop: function(event, dayDelta, minuteDelta, allDay, revertFunc) {
+				pscript.update_event(event);
+			},
+			eventResize: function(event, dayDelta, minuteDelta, allDay, revertFunc) {
+				pscript.update_event(event);
 			}
- 		}
-  	}
- }
+		});
 
-Calendar.DayView.prototype.refresh = function() {
-	var c =this.cal.selected_date;
-			
-	// fill other days
-	var me=this;
-
-	this.cal.view_title.innerHTML = erpnext.calendar.weekdays[c.getDay()] + ', ' 
-		+ c.getDate() + ' ' + month_list_full[c.getMonth()] + ' ' + c.getFullYear();
-
-	// headers
-	var d = c;
-
-	for(var i=0;i<24;i++) {
-		var cell = this.table.rows[i].cells[1];
-		if(same_day(this.cal.todays_date, d)) cell.viewunit.is_today = true;
-		else cell.viewunit.is_today = false;
-		cell.viewunit.day = d;
-	}
-	 this.refresh_units();
-}
-
-// ................. Weekly View..........................
-Calendar.WeekView=function(cal) { this.init(cal); this.daystep = 7; }
-Calendar.WeekView.prototype=new Calendar.View();
-Calendar.WeekView.prototype.create_table = function() {
-
-	// create head
-	this.head_wrapper = $a(this.body, 'div', 'cal_month_head');
-
-	// day headers
-	this.headtable = $a(this.head_wrapper, 'table', 'cal_month_headtable');
-	var r = this.headtable.insertRow(0);
-	for(var j=0;j<8;j++) {
- 		var cell = r.insertCell(j);
- 	}
- 	
- 	// hour header
-
-	// create body
-	this.main = $a(this.body, 'div', 'cal_week_body');
-	this.table = $a(this.main, 'table', 'cal_week_table');
-	var me = this;
-	
- 	for(var i=0;i<24;i++) {
- 		var r = this.table.insertRow(i);
- 		for(var j=0;j<8;j++) {
- 			var cell = r.insertCell(j);
-			if(j==0) {
-				cell.innerHTML = i+':00:00';
-				$w(cell, '10%');
-			} else {
-				cell.viewunit = new Calendar.WeekViewUnit(cell);
-				cell.viewunit.hour = i;
-				if((i>=7)&&(i<=20)) {
-					cell.viewunit.is_daytime = true;
-				}
-			}
- 		}
-  	}
-}
-
-Calendar.WeekView.prototype.refresh = function() {
-	var c =this.cal.selected_date;
-	// fill other days
-	var me=this;
-
-	this.cal.view_title.innerHTML = month_list_full[c.getMonth()] + ' ' + c.getFullYear();
-
-	// headers
-	var d = new Date(c.getFullYear(), c.getMonth(), c.getDate() - c.getDay());
-
-	for (var k=1;k<8;k++) 	{
-		this.headtable.rows[0].cells[k].innerHTML = erpnext.calendar.weekdays[d.getDay()] + ' ' + d.getDate();
-
-		for(var i=0;i<24;i++) {
-			var cell = this.table.rows[i].cells[k];
-			if(same_day(this.cal.todays_date, d)) 
-				cell.viewunit.is_today = true;
-			else cell.viewunit.is_today = false;
-
-			cell.viewunit.day = d;
-			//cell.viewunit.refresh();
-		}
-		d=new Date(d.getFullYear(),d.getMonth(),d.getDate() + 1);
-
-	 }
-	 
-	 this.refresh_units();
-}
-
-//------------------------------------------------------.
-
-Calendar.ViewUnit = function() {}
-Calendar.ViewUnit.prototype.init = function(parent) {
-	parent.style.border = "1px solid #CCC"	;
-	this.body = $a(parent, 'div', this.default_class);
-	this.parent = parent;
-
-	var me = this;
-	this.body.onclick = function() {
-		erpnext.calendar.selected_date = me.day;
-		erpnext.calendar.selected_hour = me.hour;
-	
-		if(erpnext.calendar.cur_vu && erpnext.calendar.cur_vu!=me){
-			erpnext.calendar.cur_vu.deselect();
-			me.select();
-			erpnext.calendar.cur_vu = me;
-		}
-	}
-	this.body.ondblclick = function() {
-		erpnext.calendar.add_event();
+		wrapper.setup_complete = true;
+	} else {
+		$("#fullcalendar").fullCalendar("refetchEvents");
 	}
 }
 
-Calendar.ViewUnit.prototype.set_header=function(v) {
- 	this.header.innerHTML = v;
-}
-
-Calendar.ViewUnit.prototype.set_today = function() {
-	this.is_today = true;
-	this.set_display();
-}
-
-Calendar.ViewUnit.prototype.clear = function() {
-	if(this.header)this.header.innerHTML = '';
-
-	// clear body
-	while(this.body.childNodes.length)
-		this.body.removeChild(this.body.childNodes[0]);
-}
-
-Calendar.ViewUnit.prototype.set_display = function() {
-	var cn = '#FFF';
-
-	// colors
-	var col_tod_sel = '#EEE';
-	var col_tod = '#FFF';
-	var col_sel = '#EEF';
-
-	if(this.is_today) {
-		if(this.selected) cn = col_tod_sel;
-		else cn = col_tod;
-	} else 
-		if(this.selected) cn = col_sel;
-	
-	if(this.header) {
-		if(this.is_disabled) {
-			this.body.className = this.default_class + ' cal_vu_disabled';
-			this.header.style.color = '#BBB';
-		} else {
-			this.body.className = this.default_class;
-			this.header.style.color = '#000';		
-		}
-		
-		if(this.day&&this.day.getDay()==0)
-			this.header.style.backgroundColor = '#FEE';
-		else 
-			this.header.style.backgroundColor = '';
-	}
-	this.parent.style.backgroundColor = cn;
-}
-
-Calendar.ViewUnit.prototype.is_selected = function() {
-	return (same_day(this.day, erpnext.calendar.selected_date)
-		&& this.hour==erpnext.calendar.selected_hour)
-}
-
-Calendar.ViewUnit.prototype.get_event_list = function() {
-	var y = this.day.getFullYear();
-	var m = this.day.getMonth();
-	var d = this.day.getDate();
-	if(erpnext.calendar.events[y] && erpnext.calendar.events[y][m] &&
-		erpnext.calendar.events[y][m][d] &&
-			erpnext.calendar.events[y][m][d][this.hour]) {
-		return erpnext.calendar.events[y][m][d][this.hour];
-	} else
-		return [];
-}
-
-Calendar.ViewUnit.prototype.refresh = function() {
-	this.clear();
-
-	if(this.is_selected()) { 
-		if(erpnext.calendar.cur_vu)erpnext.calendar.cur_vu.deselect();
-		this.selected = true;
-		erpnext.calendar.cur_vu = this;	
-	}
-	this.set_display();
-	this.el = this.get_event_list();
-	if(this.onrefresh)this.onrefresh();	
-
-	for(var i in this.el) {
-		this.el[i].show(this);
-	}
-		
-	var me = this;
-}
-
-Calendar.ViewUnit.prototype.select=function() { this.selected = true; this.set_display(); }
-Calendar.ViewUnit.prototype.deselect=function() { this.selected = false; this.set_display(); }
-Calendar.ViewUnit.prototype.setevent=function() { }
-
-Calendar.MonthViewUnit=function(parent) {
-	var me = this;
-	this.header = $("<div class='cal_month_date'></div>")
-		.appendTo(parent)
-		.css({"cursor":"pointer"})
-		.click(function() {
-			me.body.onclick();
-		})
-		.bind("dblclick", function() {
-			me.body.ondblclick();
-		})
-		.get(0);
-
-	this.default_class = "cal_month_unit";	
-	this.init(parent);
-
-	this.onrefresh = function() {
-		this.header.innerHTML = this.day.getDate();
-	}
-}
-Calendar.MonthViewUnit.prototype = new Calendar.ViewUnit();
-Calendar.MonthViewUnit.prototype.is_selected = function() {
-	return same_day(this.day, erpnext.calendar.selected_date)
-}
-
-Calendar.MonthViewUnit.prototype.get_event_list = function() {
-	return erpnext.calendar.get_daily_event_list(this.day);
-}
-
-Calendar.DayViewUnit= function(parent) { 
-	this.default_class = "cal_day_unit"; this.init(parent); 
-}
-Calendar.DayViewUnit.prototype = new Calendar.ViewUnit();
-Calendar.DayViewUnit.prototype.onrefresh = function() {
-	if(this.el.length<3) 
-		this.body.style.height = '30px';
-	else this.body.style.height = '';
-}
-
-Calendar.WeekViewUnit=function(parent) { 
-	this.default_class = "cal_week_unit"; this.init(parent); 
-}
-Calendar.WeekViewUnit.prototype = new Calendar.ViewUnit();
-Calendar.WeekViewUnit.prototype.onrefresh = function() {
-	if(this.el.length<3) this.body.style.height = '30px';
-	else this.body.style.height = '';
-}
diff --git a/utilities/page/calendar/calendar.py b/utilities/page/calendar/calendar.py
index baffc48..09b3297 100644
--- a/utilities/page/calendar/calendar.py
+++ b/utilities/page/calendar/calendar.py
@@ -1 +1,31 @@
 from __future__ import unicode_literals
+
+import webnotes
+
+@webnotes.whitelist()
+def get_events(start, end):
+	roles = webnotes.get_roles()
+	events = webnotes.conn.sql("""select name as `id`, subject as title, 
+		starts_on as `start`, ends_on as `end`, "Event" as doctype, owner 
+		from tabEvent where event_date between %s and %s 
+		and (event_type='Public' or owner=%s
+		or exists(select * from `tabEvent User` where 
+			`tabEvent User`.parent=tabEvent.name and person=%s)
+		or exists(select * from `tabEvent Role` where 
+			`tabEvent Role`.parent=tabEvent.name 
+			and `tabEvent Role`.role in ('%s')))""" % ('%s', '%s', '%s', '%s',
+			"', '".join(roles)), (start, end, 
+			webnotes.session.user, webnotes.session.user), as_dict=1, debug=1)
+	
+	return events
+			
+	block_days = webnotes.conn.sql("""select block_date as `start`,
+		name as `id`, reason as `title`, "Holiday List Block Date" as doctype,
+		where block_date between %s and %s
+		and """)
+			
+@webnotes.whitelist()
+def update_event(name, start, end):
+	webnotes.conn.sql("""update tabEvent set starts_on=%s, ends_on=%s where 
+		name=%s""", (start, end, name))
+	
\ No newline at end of file
