diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..a330a41198f1d7009a6b390e7d94243288785c6d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+
+.ftpconfig
diff --git a/admin/lib/amiv/amivcore.js b/admin/lib/amiv/amivcore.js
index 6509256212a1823056dec1f2dab5a19b731b08e3..43633f82f9b714e6e2340787f26fe3addefa1914 100644
--- a/admin/lib/amiv/amivcore.js
+++ b/admin/lib/amiv/amivcore.js
@@ -11,8 +11,8 @@
         var core = {
             // Important vars n' stuff
             lib: {
-                api_url: 'https://amiv-apidev.vsos.ethz.ch',
-                //api_url: 'https://nicco.io/amiv',
+                //api_url: 'https://amiv-apidev.vsos.ethz.ch',
+                api_url: 'https://nicco.io/amiv',
                 spec_url: 'lib/amiv/spec.json',
                 //spec_url: 'https://nicco.io/amiv/docs/spec.json',
                 authenticated: false,
diff --git a/admin/lib/cust/main.js b/admin/lib/cust/main.js
index 27febd792e77777f47b393aa43e894ab4b652ab7..248b0d70aa358b9dd89977eceb2d8bfeceb0532e 100644
--- a/admin/lib/cust/main.js
+++ b/admin/lib/cust/main.js
@@ -100,13 +100,13 @@ var tools = {
         menu: function(attr) {
             var custMenu = $('.cust-menu');
             custMenu.html('');
-            tools.ui.menuId++;
             for (var cur in attr) {
+                tools.ui.menuId++;
                 if (attr[cur].link == '' || attr[cur].link === undefined)
                     attr[cur].link = 'javascript:void(0);';
                 custMenu.append('<li><a href="' + attr[cur].link + '" id="cust-menu-link-' + tools.ui.menuId + '">' + cur + '</a></li>');
                 if (typeof(attr[cur].callback) == 'function')
-                    $('#cust-menu-link-' + tools.ui.menuId).click(attr[cur].callback);
+                    $('#cust-menu-link-' + tools.ui.menuId).on('click', attr[cur].callback);
             }
 
         }
diff --git a/admin/tools/users.tool b/admin/tools/users.tool
index 809a9939188615e8505df6a1e273875b88ab812c..126a8439e73bb8cd406170c30e1ea70e8e2ed649 100644
--- a/admin/tools/users.tool
+++ b/admin/tools/users.tool
@@ -20,99 +20,167 @@
 	var users = {
 		showInTable: ['firstname', 'lastname', 'email', 'membership'],
 		curUserData: null,
+		page: {
+			max: Number.MAX_VALUE,
+			cur: function() {
+				return parseInt(tools.mem.session.get('curPage'));
+			},
+			set: function(num) {
+				num = parseInt(num);
+				if (num > 0 && num < users.page.max + 1)
+					tools.mem.session.set('curPage', num);
+				$('.users-cur-page-cont').html(users.page.cur());
+				users.get();
+			},
+			inc: function() {
+				users.page.set(users.page.cur() + 1);
+			},
+			dec: function() {
+				users.page.set(users.page.cur() - 1);
+			}
+		},
+		get: function() {
+			amivcore.users.GET({
+				data: {
+					'max_results': '50',
+					page: users.page.cur(),
+				}
+			}, function(ret) {
+
+				if (ret === undefined || ret['_items'].length == 0) {
+					tools.log('No Data', 'w');
+					return;
+				}
+
+				users.meta = ret['_meta'];
+				users.page.max = Math.ceil(users.meta.total / users.meta.max_results);
+				$('.users-page-max-cont').html(users.page.max);
+
+				// Clear table from previous contentent
+				$('.users-table thead, .users-table tbody').html('');
+
+				users.showInTable.forEach(function(i) {
+					$('.users-table thead tr').append('<th>' + i + '</th>');
+				});
+
+				for (var n in ret['_items']) {
+					var tmp = '';
+					users.showInTable.forEach(function(i) {
+						tmp += '<td>' + ret['_items'][n][i] + '</td>';
+					});
+					$('.users-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>');
+				}
+				$('.users-table tbody tr').click(users.showDetails);
+			});
+		},
+
+		// Make Modal with editable table data
+		showDetails: function() {
+			amivcore.users.GET({
+				id: $(this).attr('data-id')
+			}, function(ret) {
+				curUserData = ret;
+				var tmp = '<table class="table table-hover users-user-edit-table" data-etag="' + ret['_etag'] + '"><tbody>';
+				for (var cur in ret)
+					if (cur.charAt(0) != '_')
+						tmp += '<tr><td>' + cur + '</td><td contenteditable>' + ret[cur] + '</td></tr>'
+				tmp += '</tbody></table>';
+
+				tools.modal({
+					head: ret.firstname + ' ' + ret.lastname,
+					body: tmp,
+					button: 'OK',
+					success: users.inspectUser
+				});
+
+			});;
+		},
+
+		// Check wether changes were maid and saves it in that case
+		inspectUser: function() {
+			var newUserData = {};
+			$('.users-user-edit-table tr').each(function() {
+				newUserData[$(this).children('td:nth-child(1)').html()] = $(this).children('td:nth-child(2)').html();
+			});
+			var changed = false,
+				curUserDataChanged = {};
+			for (var i in newUserData) {
+				if (newUserData[i] != String(curUserData[i])) {
+					changed = true;
+					curUserDataChanged[i] = newUserData[i];
+				}
+			}
+			if (changed) {
+				amivcore.users.PATCH({
+					id: curUserData.id,
+					header: {
+						'If-Match': $('.users-user-edit-table').attr('data-etag')
+					},
+					data: curUserDataChanged
+				}, function() {
+					tools.log('User Updated', 's');
+					users.get();
+				});
+			}
+		},
+
+		//Make new user
+		add: function() {
+			var tmp = '<table class="table table-hover users-user-add-table"><tbody>',
+				reqFields = amivcore.getRequiredFields('users', 'POST');
+			for (var reqField in reqFields)
+				tmp += '<tr><td>' + reqField + '</td><td contenteditable></td></tr>'
+			tmp += '</tbody></table>';
+			tools.modal({
+				head: 'New User',
+				body: tmp,
+				button: 'Add',
+				success: function() {
+					var newUserData = {};
+					$('.users-user-add-table tr').each(function() {
+						newUserData[$(this).children('td:nth-child(1)').html()] = $(this).children('td:nth-child(2)').html();
+					});
+					amivcore.users.POST({
+						data: newUserData
+					}, function(ret) {
+						console.log(ret);
+					});
+				}
+			})
+		}
 	};
 
+	// Setup Menu
 	tools.ui.menu({
 		'<span class="glyphicon glyphicon-user" aria-hidden="true"></span>': {
-			callback: function() {}
+			callback: users.add
 		},
 		'<span class="glyphicon glyphicon-arrow-left" aria-hidden="true"></span>': {
-			callback: function() {}
+			callback: users.page.dec
 		},
-		'<span class="users-cur-page" aria-hidden="true">0</span>': {
-			callback: function() {}
+		'<span class="users-cur-page-cont" aria-hidden="true"></span> / <span class="users-page-max-cont" aria-hidden="true"></span>': {
+			callback: function() {
+				tools.modal({
+					head: 'Go To Page:',
+					body: '<div class="form-group"><input type="number" value="' + users.page.cur() + '" class="form-control users-go-page"></div>',
+					button: 'GO',
+					success: function() {
+						users.page.set($('.users-go-page').val());
+					}
+				})
+			}
 		},
 		'<span class="glyphicon glyphicon-arrow-right" aria-hidden="true"></span>': {
-			callback: function() {}
+			callback: users.page.inc
 		},
 		'<span class="glyphicon glyphicon-search" aria-hidden="true"></span>': {
 			callback: function() {}
 		}
 	});
 
-	function inspectUser() {
-		var newUserData = {};
-		$('.users-user-edit-table tr').each(function() {
-			newUserData[$(this).children('td:nth-child(1)').html()] = $(this).children('td:nth-child(2)').html();
-		});
-		var changed = false,
-			curUserDataChanged = {};
-		for (var i in newUserData) {
-			if (newUserData[i] != String(curUserData[i])) {
-				changed = true;
-				curUserDataChanged[i] = newUserData[i];
-			}
-		}
-		if (changed) {
-			amivcore.users.PATCH({
-				id: curUserData.id,
-				header: {
-					'If-Match': $('.users-user-edit-table').attr('data-etag')
-				},
-				data: curUserDataChanged
-			}, function(){
-				tools.log('User Updated', 's');
-				tools.getTool('users');
-			});
-		}
-	}
-
-	function showDetails() {
-		amivcore.users.GET({
-			id: $(this).attr('data-id')
-		}, function(ret) {
-			curUserData = ret;
-			var tmp = '<table class="table table-hover users-user-edit-table" data-etag="' + ret['_etag'] + '"><tbody>';
-			for (var cur in ret)
-				if (cur.charAt(0) != '_')
-					tmp += '<tr><td>' + cur + '</td><td contenteditable>' + ret[cur] + '</td></tr>'
-			tmp += '</tbody></table>';
-
-			tools.modal({
-				head: ret.firstname + ' ' + ret.lastname,
-				body: tmp,
-				button: 'OK',
-				success: inspectUser,
-				cancel: function() {
-					console.log('Canceled');
-				}
-			});
-
-		});;
-	}
-
-	amivcore.users.GET({
-		data: {
-			//'max_results': '50'
-		}
-	}, function(ret) {
-
-		if (ret === undefined || ret['_items'].length == 0) {
-			tools.log('No Data', 'w');
-			return;
-		}
-
-		users.showInTable.forEach(function(i) {
-			$('.users-table thead tr').append('<th>' + i + '</th>');
-		});
-
-		for (var n in ret['_items']) {
-			var tmp = '';
-			users.showInTable.forEach(function(i) {
-				tmp += '<td>' + ret['_items'][n][i] + '</td>';
-			});
-			$('.users-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>');
-		}
-		$('.users-table tbody tr').click(showDetails);
-	});
+	// Set Initail Page and get first users
+	if (users.page.cur() === null || isNaN(users.page.cur()))
+		users.page.set(1);
+	else
+		users.page.set(users.page.cur());
 </script>
diff --git a/public/css/dynamic.css b/public/css/dynamic.css
index 59ae92eab1fb8ecdb5c6c7a8c8289c6f5cb19def..c402efa1693a9f539c71c59c7a34aa621f04b36b 100644
--- a/public/css/dynamic.css
+++ b/public/css/dynamic.css
@@ -18,4 +18,21 @@
 		  #columns[data-columns]::before {
 		    content: '4 .col-md-3';
 		  }
-		}
\ No newline at end of file
+		}
+		 /* Responsive iFrame */
+ .responsive-iframe-container {
+     position: relative;
+     padding-bottom: 56.25%;
+     padding-top: 30px;
+     height: 0;
+     overflow: hidden;
+ }
+ .responsive-iframe-container iframe,   
+ .vresponsive-iframe-container object,  
+ .vresponsive-iframe-container embed {
+     position: absolute;
+     top: 0;
+     left: 0;
+     width: 100%;
+     height: 100%;
+ }
\ No newline at end of file
diff --git a/public/css/logo-nav.css b/public/css/logo-nav.css
index fb83c60c3ff3d17f80837d56c726ff421d0247a2..2fbcc15bbf7f37c2bc3196ceaec3e6ce1c94f5ae 100644
--- a/public/css/logo-nav.css
+++ b/public/css/logo-nav.css
@@ -6,6 +6,7 @@
 
 body {
     padding-top: 70px; /* Required padding for .navbar-fixed-top. Change if height of navigation changes. */
+    padding-bottom: 16px;
 }
 
 .navbar-fixed-top .nav {
diff --git a/public/index.html b/public/index.html
index 56b98553e82b47a899d187c93aae55e3c63efd33..31a8e5c6ccb7225cab720ebf3b85e988db4cfde0 100644
--- a/public/index.html
+++ b/public/index.html
@@ -44,7 +44,7 @@
                     <span class="icon-bar"></span>
                 </button>
                 <a class="navbar-brand" href="#">
-                    <img src="res/AMIV_Logo_150_50.svg" alt="AMIV" height="80%">
+                    <img src="res/AMIV_Logo_150_50.svg" alt="AMIV">
                 </a>
             </div>
             <!-- Collect the nav links, forms, and other content for toggling -->
@@ -72,6 +72,15 @@
     <div class="container-fluid">
         <div class="grid">
             <div class="grid-sizer"></div>
+            
+<!--             Google Calendar -->
+            <div class="grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
+	             <div class="responsive-iframe-container big-container card">
+		             <iframe src="https://calendar.google.com/calendar/embed?showTitle=0&amp;showNav=0&amp;showPrint=0&amp;showTabs=0&amp;showCalendars=0&amp;mode=AGENDA&amp;height=600&amp;wkst=2&amp;bgcolor=%23ffffff&amp;src=amiv.an.der.eth%40gmail.com&amp;color=%231B887A&amp;src=o8mobocsom5ea8b0d00eidr6a4%40group.calendar.google.com&amp;color=%23691426&amp;src=n18j3pnpl65bp58fjfikvlkbn4%40group.calendar.google.com&amp;color=%238C500B&amp;src=5qbl733r12mejhaosqnqlohccg%40group.calendar.google.com&amp;color=%23ef4ef6&amp;src=5ef1jg56fiaoqbeqago5mbrpd4%40group.calendar.google.com&amp;color=%230F4B38&amp;src=rflnq53lsgj64evaiif691p280%40group.calendar.google.com&amp;color=%2329527A&amp;src=4a7g6cfm9shgpfvmce13aagovs%40group.calendar.google.com&amp;color=%2323164E&amp;src=mdk91hfvr18q8rrlh3sedlhgvo%40group.calendar.google.com&amp;color=%23711616&amp;src=1i7ubr4f35q6hrkond7o4dmtq0%40group.calendar.google.com&amp;color=%23125A12&amp;src=p38tc4mipcao4312oegcmvgkto%40group.calendar.google.com&amp;color=%23711616&amp;ctz=Europe%2FZurich" style="border-width:0" width="800" height="600" frameborder="0"></iframe>
+				 </div>
+			</div>
+			
+<!-- 			Twitter widget -->
             <div class="grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">
 	           	<div class="card">
 				 		<p>
@@ -84,69 +93,10 @@
 						</script> 
         		</div>
             </div>
+<!--             Facebook widget -->
         </div>
     </div>
-
-    <script>
-        function getEvents(callback) {
-            callback = callback || function(ret) {
-                console.log(ret);
-            }
-            $.getJSON('https://amiv-apidev.vsos.ethz.ch/events/', callback);
-        }
-
-        function addElement(item) {
-            $('.grid')
-                .append('<div class="grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">' + item + '</div>');
-        }
-        
-        $(document).ready(function() {
-            $('.grid-item, .grid-sizer').addClass('col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2');
-            $('.grid').masonry({
-                itemSelector: '.grid-item',
-                columnWidth: '.grid-sizer',
-                percentPosition: true
-            }).on('DOMSubtreeModified', function(){
-	            $(this).masonry('reloadItems').masonry();
-            })
-            getEvents(function(ret) {
-                ret['_items'].forEach(function(item) {
-	                /*Is it Websitecontent?*/
-	                if (item.show_website == false){
-		                return;
-	                }
-                    console.log(item.title_de);
-                    
-                    /*Picture Checker*/
-                    if (item.img_banner == null){
-						item.img_banner = "https://s-media-cache-ak0.pinimg.com/736x/9c/24/fd/9c24fdb71c67e31efef540efb141f96d.jpg";
-                    }
-                    /* Datum anpassen*/
-					var datenum = new Date(item.time_start);
-					var regstart = new Date(item.time_register_start);
-					var regend = new Date(item.time_register_end);
-					var heute = new Date(Date.now());
-					
-					/*Minuten immer Zweistellig*/
-					var minutes = datenum.getMinutes();
-					if (minutes < 10){
-						minutes = "0" + minutes;
-					}
-					var month = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
-					
-					/*Anmeldung*/
-					var register = "";
-					if (/* amivcore.authenticated() &&  */item.spot >= 0 && regstart > heute && regend < heute){
-						register = "Anmelden";
-
-					}
-                    addElement('<div class="card"><div class="card-image"><img class="img-responsive" src="'+item.img_banner+'"><date><div class="month">'+month[datenum.getMonth()]+'</div><div class="day">'+datenum.getDate()+'</div><div class="starttime">'+datenum.getHours()+':'+minutes+'</div><date-overlay></date-overlay></date><span class="card-title">'+item.title_de+' @ '+item.location+'</span></div><div class="card-content">'+item.description_de+'</div><div class="card-action"><a href="#" target="new_blank">Zum Event</a><a href="#" target="new_blank">'+register+'</a><a href="#" target="new_blank">Im Kalender speichern</a></div></div>');
-                });
-            });
-        });
-    </script>
-
-<script src="js/main.js"></script>
+   <script src="js/main.js"></script>
 </body>
 
 </html>
diff --git a/public/js/main.js b/public/js/main.js
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..c79a193f1e0853d32d79b40d5eb3e219eb8f2ec7 100644
--- a/public/js/main.js
+++ b/public/js/main.js
@@ -0,0 +1,58 @@
+function getEvents(callback) {
+            callback = callback || function(ret) {
+                console.log(ret);
+            }
+            $.getJSON('https://amiv-apidev.vsos.ethz.ch/events/', callback);
+        }
+
+        function addElement(item) {
+            $('.grid')
+                .append('<div class="grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">' + item + '</div>');
+        }
+        
+        $(document).ready(function() {
+            $('.grid-item, .grid-sizer').addClass('col-xs-12 col-sm-6 col-md-4 col-lg-3 col-xl-2');
+            $('.grid').masonry({
+                itemSelector: '.grid-item',
+                columnWidth: '.grid-sizer',
+                percentPosition: true,
+                originLeft: false
+            }).on('DOMSubtreeModified', function(){
+	            $(this).masonry('reloadItems').masonry();
+            })
+            getEvents(function(ret) {
+                ret['_items'].forEach(function(item) {
+	                /*Is it Websitecontent?*/
+	                if (item.show_website == false){
+		                return;
+	                }
+                    console.log(item.title_de);
+                    
+                    /*Picture Checker*/
+                    if (item.img_banner == null){
+						item.img_banner = "https://s-media-cache-ak0.pinimg.com/736x/9c/24/fd/9c24fdb71c67e31efef540efb141f96d.jpg";
+                    }
+                    /* Datum anpassen*/
+					var datenum = new Date(item.time_start);
+					
+					
+					/*Minuten immer Zweistellig*/
+					var minutes = datenum.getMinutes();
+					if (minutes < 10){
+						minutes = "0" + minutes;
+					}
+					var month = ["Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"];
+					
+					/*Anmeldung*/
+					var regstart = new Date(item.time_register_start);
+					var regend = new Date(item.time_register_end);
+					var heute = new Date(Date.now());
+					var register = "";
+					if (item.spots>=0 && regstart<=heute && regend>=heute){
+						register = "Anmelden";
+					}
+					
+                    addElement('<div class="card"><div class="card-image"><img class="img-responsive" src="'+item.img_banner+'"><date><div class="month">'+month[datenum.getMonth()]+'</div><div class="day">'+datenum.getDate()+'</div><div class="starttime">'+datenum.getHours()+':'+minutes+'</div><date-overlay></date-overlay></date><span class="card-title">'+item.title_de+' @ '+item.location+'</span></div><div class="card-content">'+item.description_de+'</div><div class="card-action"><a href="#" target="new_blank">Info</a><a href="#" target="new_blank">'+register+'</a><a href="#" target="new_blank">Im Kalender speichern</a></div></div>');
+                });
+            });
+        });