diff --git a/wahlfang_api/serializers.py b/wahlfang_api/serializers.py
index 956a29d5dbd3b9601f2e775e42548425af84a4a6..ba6d0a72d0311cf6e4b10e7e592da2a844eb0238 100644
--- a/wahlfang_api/serializers.py
+++ b/wahlfang_api/serializers.py
@@ -1,6 +1,6 @@
 from django.conf import settings
 from django.contrib.auth import authenticate
-from rest_framework import serializers
+from rest_framework import serializers, fields
 from rest_framework_simplejwt.serializers import TokenObtainPairSerializer
 from rest_framework_simplejwt.tokens import RefreshToken
 
@@ -103,9 +103,10 @@ class SpectatorElectionSerializer(serializers.ModelSerializer):
 
 
 class SessionSerializer(serializers.ModelSerializer):
+
     class Meta:
         model = Session
-        fields = '__all__'
+        fields = ['title', 'start_date']
 
 
 class VoterDetailSerializer(serializers.ModelSerializer):
diff --git a/wahlfang_api/views.py b/wahlfang_api/views.py
index 85e8fbeb932df16fc8cffd6a70245a7545dcb0e8..aab9a59e53c5d9a8aa2af694e31f64574c8002c0 100644
--- a/wahlfang_api/views.py
+++ b/wahlfang_api/views.py
@@ -60,12 +60,12 @@ class SpectatorView(generics.RetrieveAPIView):
 
 class ManagerSessionView(generics.ListCreateAPIView):
     authentication_classes = [ElectionManagerJWTAuthentication]
-    queryset = Session.objects.all()
     permission_classes = [IsElectionManager]
     serializer_class = SessionSerializer
 
     def perform_create(self, serializer_class):
         serializer_class.save()
+        queryset = Session.objects.all()
 
 
 class ElectionViewset(viewsets.ReadOnlyModelViewSet):
diff --git a/wahlfang_web/src/api/management.js b/wahlfang_web/src/api/management.js
index 7493da146af5c0d193343c5bd1751ec8e871c3be..6a4b9621df254aa9aa218871bef3590b8219f675 100644
--- a/wahlfang_web/src/api/management.js
+++ b/wahlfang_web/src/api/management.js
@@ -4,13 +4,31 @@ export const managementAPIRoutes = {
     login: "/auth/token/",
     refreshToken: "/auth/token/refresh/",
     verifyToken: "/auth/token/verify/",
-    createSession: "management/add-session",
+    createSession: "/management/add-session",
 }
 
+// Help functions
+
 export const loadManagerToken = () => {
     return JSON.parse(localStorage.getItem("managerToken"));
 }
 
+export async function makeAuthenticatedManagerRequest(url = '', type = '', data = null) {
+    let token = loadManagerToken();
+    if (!isTokenValid(token.access)) {
+        token = await refreshManagerToken();
+    }
+    const headers = {
+        'Content-Type': 'application/json',
+        'Authorization': `Bearer ${token.access}`,
+    }
+
+    return await makeRequest(url, type, data, headers);
+}
+
+
+// Auth api calls
+
 export const refreshManagerToken = async () => {
     const response = await makeRequest(managementAPIRoutes.refreshToken, 'POST', {
         refresh: loadManagerToken().refresh
@@ -45,8 +63,10 @@ export const logoutManager = async () => {
     return true;
 }
 
+// API calls
+
 export const createSession = async (form_values) => {
-    const response = await makeRequest(managementAPIRoutes.createSession, 'POST', form_values);
+    const response = await makeAuthenticatedManagerRequest(managementAPIRoutes.createSession, 'POST', form_values);
     if (response.status === 204) {
         return true;
     } else {
diff --git a/wahlfang_web/src/pages/management/AddSession.js b/wahlfang_web/src/pages/management/AddSession.js
index ee2625550d09698a9e488c882f58b139dd66f1c9..8a6dc25734a544e2d8804659ceb15769a959c07b 100644
--- a/wahlfang_web/src/pages/management/AddSession.js
+++ b/wahlfang_web/src/pages/management/AddSession.js
@@ -4,15 +4,42 @@ import { Formik, Form, Field } from 'formik';
 import Collapse from 'react-bootstrap/Collapse';
 import Button from 'react-bootstrap/Button';
 import FormikDateTime from "../../components/FormikDateTime"
+import {createSession} from "../../api/management";
+import {useHistory} from "react-router-dom";
+import moment from "moment";
 
+const DATE_FORMAT = 'DD-MM-YYYY HH:mm'
 
 export default function AddSession() {
     const [toggle, setToggle] = useState(false);
     const [date, onDateChange] = useState(new Date());
-
+    const history = useHistory();
 
     const handleSubmit = (values, {setSubmitting}) => {
-        console.log("Adding session submit")
+        let moment_date = new moment(values.start_date, DATE_FORMAT);
+        // keepOffset must be true, bug info here https://github.com/moment/moment/issues/947
+        values.start_date = moment_date.toISOString(true)
+        console.log(values)
+        createSession(values)
+            .then(res => {
+                setSubmitting(false)
+                console.log("Session correctly added")
+                history.push("/management/add-session")
+            })
+            .catch(err => {
+                console.log(err)
+                setSubmitting(false);
+            })
+        // loginManager(values.username, values.password)
+        //     .then(res => {
+        //         setAuthenticated(true);
+        //         setSubmitting(false);
+        //         console.log("Successful manager logging attempt")
+        //         history.push("/management/add-session");
+        //     })
+        //     .catch(err => {
+        //         setSubmitting(false);
+        //     })
     }
 
 
@@ -41,17 +68,17 @@ export default function AddSession() {
                         <label>Session's Title*</label>
                         <input type="text"
                                className="form-control form-control-user"
-                               name="sessionTitle"
+                               name="title"
                                autoFocus={true}
                                onChange={handleChange}
                                onBlur={handleBlur}
                                value={values.accessCode}
                                required={true}/>
-                        {errors.sessionTitle && touched.sessionTitle && errors.sessionTitle}
+                        {errors.title && touched.title && errors.title}
                     </div>
                     <div className="mt-3 form-group">
                         <label>Meeting start (optional)</label>
-                        <Field name="date" timeFormat={false} component={FormikDateTime} />
+                        <Field name="start_date" timeFormat={false} component={FormikDateTime} />
                     </div>
                     <div className="mt-3 form-group">
                         <label>Link to meeting call platform (optional)</label>
@@ -159,8 +186,7 @@ export default function AddSession() {
                                            autoFocus={true}
                                            onChange={handleChange}
                                            onBlur={handleBlur}
-                                           value={values.accessCode}
-                                           required={true}/>
+                                           value={values.accessCode}/>
                                     </div>
                                     <div className="col-4 text-center">
                                             <button type="submit" id="id_btn_send_test"