added new calendar and renamed holiday block list
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/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