diff --git a/lib/amiv/amivcore.js b/lib/amiv/amivcore.js
index 5956dc5cc55e5c95aad27eeca8ac1caf9740a773..cb2e1c6cbb1e3c6d5248ecf1fa63c25c2fa58eaf 100644
--- a/lib/amiv/amivcore.js
+++ b/lib/amiv/amivcore.js
@@ -11,7 +11,7 @@
         var core = {
             // Important vars n' stuff
             lib: {
-                //api_url: 'https://amiv-apidev.vsos.ethz.ch',
+                // api_url: 'https://amiv-apidev.vsos.ethz.ch',
                 api_url: 'http://192.168.1.100',
                 spec_url: 'lib/amiv/spec.json',
                 //spec_url: 'https://nicco.io/amiv/docs/spec.json',
@@ -62,7 +62,7 @@
                 },
                 'datetime': function(dt) {
                     var tmp = new Date(dt);
-                    return new Date(dt).toJSON();
+                    return new Date(dt).toISOString().split('.')[0]+"Z";
                 }
             }
         }
diff --git a/lib/amiv/spec.json b/lib/amiv/spec.json
index 6dd3ffaf8f993ea8026d011db6153132f79eade1..1191dc5d833a0f85be463a5fe6344d8cba281d9c 100644
--- a/lib/amiv/spec.json
+++ b/lib/amiv/spec.json
@@ -1 +1,1797 @@
-{"domains":{"files":{"paths":{"/files/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a File"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a File"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a File"}},"/files":{"POST":{"params":[{"required":false,"type":"objectid","name":"study_doc","data_relation":{"field":"id","resource":"studydocuments","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"required":true,"type":"media","name":"data"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"study_doc_id","data_relation":{"field":"id","resource":"studydocuments","embeddable":false},"required":true,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a File"},"GET":{"params":[],"label":"Retrieve all files"}}},"description":{}},"studydocuments":{"paths":{"/studydocuments/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Studydocument"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"required":false,"type":"objectid","name":"files","data_relation":{"field":"id","resource":"files","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"professor","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"exam_session","nullable":true,"required":false,"maxlength":10,"unique":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"author_name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":false,"name":"semester","nullable":true,"required":false,"type":"integer"},{"name":"department","nullable":true,"required":false,"maxlength":4,"unique":false,"type":"string"},{"name":"lecture","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"type","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Studydocument"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Studydocument"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Studydocument"}},"/studydocuments":{"POST":{"params":[{"required":false,"type":"objectid","name":"files","data_relation":{"field":"id","resource":"files","embeddable":true}},{"name":"name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"professor","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"exam_session","nullable":true,"required":false,"maxlength":10,"unique":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"author_name","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":false,"name":"semester","nullable":true,"required":false,"type":"integer"},{"name":"department","nullable":true,"required":false,"maxlength":4,"unique":false,"type":"string"},{"name":"lecture","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"name":"type","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Studydocument"},"GET":{"params":[],"label":"Retrieve all studydocuments"}}},"description":{"fields":{"semester":"Study-Semester as an Integer starting with first semester Bachelor."},"general":"Study-documents are basically all documents that are connected to a course. This resource provides meta-data for the assigned files."}},"users":{"paths":{"/users/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a User"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"name":"legi","nullable":true,"required":false,"maxlength":8,"unique":true,"type":"string"},{"unique":false,"name":"firstname","maxlength":50,"required":true,"type":"string"},{"required":false,"type":"objectid","name":"sessions","data_relation":{"field":"id","resource":"sessions","embeddable":true}},{"required":false,"type":"objectid","name":"groupmemberships","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"unique":false,"name":"lastname","maxlength":50,"required":true,"type":"string"},{"name":"rfid","nullable":true,"required":false,"maxlength":6,"unique":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","required":true,"maxlength":100,"unique":true,"type":"string"},{"name":"phone","nullable":true,"required":false,"maxlength":20,"unique":false,"type":"string"},{"name":"membership","default":"none","required":true,"maxlength":13,"unique":false,"type":"string"},{"required":false,"type":"objectid","name":"eventsignups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false},{"name":"gender","required":true,"allowed":["male","female"],"unique":false,"type":"string","maxlength":6},{"name":"department","nullable":true,"required":false,"allowed":["itet","mavt"],"unique":false,"type":"string","maxlength":5},{"name":"password","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"send_newsletter","nullable":true,"default":true,"required":false,"unique":false,"type":"boolean"}],"label":"Update a User"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a User"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a User"}},"/users/{nethz}":{"GET":{"params":[{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false}],"label":"Retrieve a User"}},"/users":{"POST":{"params":[{"name":"legi","nullable":true,"required":false,"maxlength":8,"unique":true,"type":"string"},{"unique":false,"name":"firstname","maxlength":50,"required":true,"type":"string"},{"required":false,"type":"objectid","name":"sessions","data_relation":{"field":"id","resource":"sessions","embeddable":true}},{"required":false,"type":"objectid","name":"groupmemberships","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"unique":false,"name":"lastname","maxlength":50,"required":true,"type":"string"},{"name":"rfid","nullable":true,"required":false,"maxlength":6,"unique":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","required":true,"maxlength":100,"unique":true,"type":"string"},{"name":"phone","nullable":true,"required":false,"maxlength":20,"unique":false,"type":"string"},{"name":"membership","default":"none","required":true,"maxlength":13,"unique":false,"type":"string"},{"required":false,"type":"objectid","name":"eventsignups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"name":"nethz","nullable":true,"required":false,"maxlength":30,"unique":true,"type":"string","empty":false},{"name":"gender","required":true,"allowed":["male","female"],"unique":false,"type":"string","maxlength":6},{"name":"department","nullable":true,"required":false,"allowed":["itet","mavt"],"unique":false,"type":"string","maxlength":5},{"name":"password","nullable":true,"required":false,"maxlength":100,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"send_newsletter","nullable":true,"default":true,"required":false,"unique":false,"type":"boolean"}],"label":"Create a User"},"GET":{"params":[],"label":"Retrieve all users"}}},"description":{"methods":{"GET":"Authorization is required for most of the fields"},"general":"In general, the user data will be generated from LDAP-Data. However, one might change the RFID-Number or the membership-status. Extraordinary members may not have a LDAP-Account and can therefore access all given fields."}},"":{"paths":{"/":{"GET":{}}},"description":{}},"purchases":{"paths":{"/purchases":{"POST":{"params":[{"unique":false,"name":"slot","nullable":true,"required":false,"type":"integer"},{"name":"user_id","nullable":true,"required":false,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"timestamp","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"type","nullable":true,"required":false,"maxlength":5,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Purchase"},"GET":{"params":[],"label":"Retrieve all purchases"}},"/purchases/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Purchase"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"slot","nullable":true,"required":false,"type":"integer"},{"name":"user_id","nullable":true,"required":false,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"timestamp","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"type","nullable":true,"required":false,"maxlength":5,"unique":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Purchase"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Purchase"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Purchase"}}},"description":{"fields":{"slot":"Slot in the machine which was purchased(different items, which may have different prices)."},"general":"A beer machine or kaffi machine transaction. Users should be able to get beer or kaffi, if their last timestamp is older than one day and they are AMIV members. This resource is used to log their purchases."}},"docs":{"paths":{"/docs/":{"GET":{}},"/docs/spec.json":{"GET":{}}},"description":{}},"groupusermembers":{"paths":{"/groupusermembers/{_id}":{"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Groupusermember"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Groupusermember"}},"/groupusermembers":{"POST":{"params":[{"name":"group_id","self_enrollment_must_be_allowed":true,"required":true,"unique_combination":["groupusermembers","user_id"],"data_relation":{"field":"id","resource":"groups","embeddable":false},"unique":false,"type":"objectid"},{"name":"user_id","unique_combination":["groupusermembers","group_id"],"required":true,"only_self_enrollment_for_group":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Groupusermember"},"GET":{"params":[],"label":"Retrieve all groupusermembers"}}},"description":{"general":"Assignment of registered users to groups."}},"eventsignups":{"paths":{"/eventsignups/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Eventsignup"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_event_field"},{"name":"user_id","unique_combination":["eventsignups","event_id"],"required":true,"not_patchable":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"only_self_enrollment_for_event":true,"unique":false,"type":"objectid"},{"signup_requirements":true,"name":"event_id","unique_combination":["eventsignups","user_id","email"],"required":true,"not_patchable":true,"data_relation":{"field":"id","resource":"events","embeddable":false},"unique":false,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"regex":"^.+@.+$","name":"email","email_signup_must_be_allowed":true,"nullable":true,"required":false,"unique_combination":["eventsignups","event_id"],"not_patchable":true,"maxlength":100,"unique":false,"type":"objectid","only_anonymous":true},{"name":"_confirmed","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Eventsignup"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Eventsignup"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Eventsignup"}},"/eventsignups":{"GET":{"params":[],"label":"Retrieve all eventsignups"}}},"description":{"fields":{"additional_fields":"Data-schema depends on 'additional_fields' from the mapped event. Please provide in json-format.","user_id":"To sign up as external user, set 'user_id' to '-1'","email":"For registered users, this is just a projection of your general email-address. External users need to provide their email here."},"general":"You can signup here for an existing event inside of the registration-window. External Users can only sign up to public events."}},"static":{"paths":{"/static/bootstrap/{filename}":{"GET":{}},"/static/{filename}":{"GET":{}}},"description":{}},"groups":{"paths":{"/groups":{"POST":{"params":[{"required":false,"type":"objectid","name":"user_subscribers","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"required":false,"type":"objectid","name":"addresses","data_relation":{"field":"id","resource":"forwardaddresses","embeddable":true}},{"unique":true,"name":"name","maxlength":100,"required":true,"type":"string"},{"unique":false,"name":"has_zoidberg_share","default":false,"required":true,"type":"boolean"},{"unique":false,"name":"allow_self_enrollment","default":false,"required":true,"type":"boolean"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"moderator_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"required":false,"type":"objectid","name":"owner","data_relation":{"field":"id","resource":"users","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":false,"name":"permissions","nullable":true,"required":false,"type":"permissions_jsonschema"}],"label":"Create a Group"},"GET":{"params":[],"label":"Retrieve all groups"}},"/groups/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Group"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"required":false,"type":"objectid","name":"user_subscribers","data_relation":{"field":"id","resource":"groupusermembers","embeddable":true}},{"required":false,"type":"objectid","name":"addresses","data_relation":{"field":"id","resource":"forwardaddresses","embeddable":true}},{"unique":true,"name":"name","maxlength":100,"required":true,"type":"string"},{"unique":false,"name":"has_zoidberg_share","default":false,"required":true,"type":"boolean"},{"unique":false,"name":"allow_self_enrollment","default":false,"required":true,"type":"boolean"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"moderator_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"required":false,"type":"objectid","name":"owner","data_relation":{"field":"id","resource":"users","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":false,"name":"permissions","nullable":true,"required":false,"type":"permissions_jsonschema"}],"label":"Update a Group"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Group"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Group"}}},"description":{"fields":{"has_zoidberg_share":"Wether the group has a share in the amiv storage","allow_self_enrollment":"If true, the group can be seen by all users and they can subscribe themselves","permissions":"permissions the group grants. has to be according to the jsonschema available at /notyetavailable"},"general":"This resource describes the different teams in AMIV.A group can grant API permissions and can be reached with several addresses. To see the subscriptions, have a look at '/groupusermembers'. To see the mail addresses, see '/forwardaddresses'."}},"forwardaddresses":{"paths":{"/forwardaddresses/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Forwardaddresse"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"name":"group_id","required":true,"data_relation":{"field":"id","resource":"groups","embeddable":false},"only_groups_you_moderate":true,"unique":false,"type":"objectid"},{"required":false,"type":"objectid","name":"group","data_relation":{"field":"id","resource":"groups","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":true,"name":"address","maxlength":100,"required":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"}],"label":"Update a Forwardaddresse"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Forwardaddresse"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Forwardaddresse"}},"/forwardaddresses":{"POST":{"params":[{"name":"group_id","required":true,"data_relation":{"field":"id","resource":"groups","embeddable":false},"only_groups_you_moderate":true,"unique":false,"type":"objectid"},{"required":false,"type":"objectid","name":"group","data_relation":{"field":"id","resource":"groups","embeddable":true}},{"unique":true,"name":"id","required":false,"type":"integer"},{"unique":true,"name":"address","maxlength":100,"required":true,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"}],"label":"Create a Forwardaddresse"},"GET":{"params":[],"label":"Retrieve all forwardaddresses"}}},"description":{"fields":{"address":"E-Mail address to forward"},"general":"An email address associated with a group. By adding an address here, all mails sent to that address will be forwarded to all members of the associated group."}},"media":{"paths":{"/media/{_id}":{"GET":{}}},"description":{}},"sessions":{"paths":{"/sessions/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Session"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"token","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"user_id","data_relation":{"field":"id","resource":"users","embeddable":false},"required":true,"type":"objectid"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Session"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Session"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Session"}},"/sessions":{"GET":{"params":[],"label":"Retrieve all sessions"}}},"description":{"methods":{"POST":"Login and aquire a login token. Post the fields 'user' and 'password', the response will contain the token."},"general":"A session is used to authenticate a user after he  provided login data. To acquire a session use POST, which will  give you a token to use as the user field of HTTP basic auth  header with an empty password. POST requires user and password  fields."}},"storage":{"paths":{"/storage/{filename}":{"GET":{}}},"description":{}},"joboffers":{"paths":{"/joboffers":{"POST":{"params":[{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"name":"company","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"time_end","nullable":true,"required":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"logo"},{"filetype":["pdf"],"required":false,"type":"media","name":"pdf"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Create a Joboffer"},"GET":{"params":[],"label":"Retrieve all joboffers"}},"/joboffers/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Joboffer"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"name":"company","nullable":true,"required":false,"maxlength":30,"unique":false,"type":"string"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"time_end","nullable":true,"required":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"logo"},{"filetype":["pdf"],"required":false,"type":"media","name":"pdf"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"unique":true,"name":"id","required":false,"type":"integer"}],"label":"Update a Joboffer"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Joboffer"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Joboffer"}}},"description":{}},"confirmations":{"paths":{"/confirmations":{"POST":{}}},"description":{}},"events":{"paths":{"/events":{"POST":{"params":[{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"allow_email_signup","default":false,"required":true,"type":"boolean"},{"readonly":true,"unique":false,"name":"signup_count","required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_thumbnail"},{"name":"time_end","nullable":true,"later_than":"time_start","required":false,"dependencies":["time_start"],"unique":false,"type":"datetime"},{"required":false,"type":"objectid","name":"signups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"unique":false,"name":"time_register_start","nullable":true,"required":false,"type":"datetime"},{"unique":false,"name":"catchphrase_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"name":"time_register_end","nullable":true,"later_than":"time_register_start","required":false,"dependencies":["time_register_start"],"unique":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_banner"},{"unique":false,"name":"time_start","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"spots","min":-1,"if_this_then":["time_register_start","time_register_end"],"required":true,"unique":false,"type":"integer"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"location","nullable":true,"required":false,"maxlength":50,"unique":false,"type":"string"},{"name":"show_infoscreen","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_schema"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_infoscreen"},{"name":"price","nullable":true,"required":false,"min":0,"unique":false,"type":"integer"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_poster"},{"name":"show_announce","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"name":"show_website","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"catchphrase_de","nullable":true,"required":false,"type":"string"}],"label":"Create a Event"},"GET":{"params":[],"label":"Retrieve all events"}},"/events/{_id}":{"PUT":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Replace a Event"},"PATCH":{"params":[{"required":true,"type":"string","name":"_id"},{"unique":false,"name":"title_de","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"allow_email_signup","default":false,"required":true,"type":"boolean"},{"readonly":true,"unique":false,"name":"signup_count","required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_thumbnail"},{"name":"time_end","nullable":true,"later_than":"time_start","required":false,"dependencies":["time_start"],"unique":false,"type":"datetime"},{"required":false,"type":"objectid","name":"signups","data_relation":{"field":"id","resource":"eventsignups","embeddable":true}},{"unique":false,"name":"time_register_start","nullable":true,"required":false,"type":"datetime"},{"unique":false,"name":"catchphrase_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_de","nullable":true,"required":false,"type":"string"},{"name":"time_register_end","nullable":true,"later_than":"time_register_start","required":false,"dependencies":["time_register_start"],"unique":false,"type":"datetime"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_banner"},{"unique":false,"name":"time_start","nullable":true,"required":false,"type":"datetime"},{"name":"_author","nullable":true,"required":false,"readonly":true,"data_relation":{"field":"id","resource":"users","embeddable":false},"unique":false,"type":"objectid"},{"name":"spots","min":-1,"if_this_then":["time_register_start","time_register_end"],"required":true,"unique":false,"type":"integer"},{"unique":true,"name":"id","required":false,"type":"integer"},{"name":"location","nullable":true,"required":false,"maxlength":50,"unique":false,"type":"string"},{"name":"show_infoscreen","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"additional_fields","nullable":true,"required":false,"type":"json_schema"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_infoscreen"},{"name":"price","nullable":true,"required":false,"min":0,"unique":false,"type":"integer"},{"unique":false,"name":"title_en","nullable":true,"required":false,"type":"string"},{"unique":false,"name":"description_en","nullable":true,"required":false,"type":"string"},{"filetype":["png","jpeg"],"required":false,"type":"media","name":"img_poster"},{"name":"show_announce","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"name":"show_website","nullable":true,"default":false,"required":false,"unique":false,"type":"boolean"},{"unique":false,"name":"catchphrase_de","nullable":true,"required":false,"type":"string"}],"label":"Update a Event"},"DELETE":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Delete a Event"},"GET":{"params":[{"required":true,"type":"string","name":"_id"}],"label":"Retrieve a Event"}}},"description":{"fields":{"additional_fields":"must be provided in form of a JSON-Schema. You can add here fields you want to know from people signing up going further than their email-address","price":"Price of the event as Integer in Rappen.","allow_email_signup":"If False, only AMIV-Members can sign up for this event","spots":"For no limit, set to '0'. If no signup required, set to '-1'. Otherwise just provide an integer."},"methods":{"GET":"You are always allowed, even without session, to view AMIV-Events"},"general":"An Event is basically everything happening in the AMIV. All time fields have the format YYYY-MM-DDThh:mmZ, e.g. 2014-12-20T11:50:06Z"}}},"api_name":"API","base":"http:///","server_name":null}
+  {
+  "api_name": "API",
+  "domains": {
+    "events": {
+      "paths": {
+        "/events/{_id}": {
+          "DELETE": {
+            "label": "Delete a Event",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Event",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a Event",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "maxlength": 500,
+                "type": "string",
+                "required": false,
+                "name": "catchphrase_de"
+              },
+              {
+                "nullable": true,
+                "maxlength": 500,
+                "type": "string",
+                "required": false,
+                "name": "catchphrase_en"
+              },
+              {
+                "nullable": true,
+                "maxlength": 50,
+                "type": "string",
+                "required": false,
+                "name": "location"
+              },
+              {
+                "nullable": true,
+                "required": false,
+                "later_than": "time_start",
+                "dependencies": [
+                  "time_start"
+                ],
+                "name": "time_end",
+                "type": "datetime"
+              },
+              {
+                "readonly": true,
+                "type": "integer",
+                "required": false,
+                "name": "signup_count"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": true,
+                "name": "show_announce"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": true,
+                "name": "show_infoscreen"
+              },
+              {
+                "nullable": true,
+                "type": "integer",
+                "required": true,
+                "min": 0,
+                "requires_if_not_null": [
+                  "time_register_start",
+                  "time_register_end",
+                  "allow_email_signup"
+                ],
+                "name": "spots"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "required": false,
+                "dependencies": [
+                  "catchphrase_de",
+                  "description_de"
+                ],
+                "name": "title_de",
+                "type": "string"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "required": false,
+                "dependencies": [
+                  "catchphrase_en",
+                  "description_en"
+                ],
+                "name": "title_en",
+                "type": "string"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_poster"
+              },
+              {
+                "nullable": true,
+                "min": 0,
+                "type": "integer",
+                "required": false,
+                "name": "price"
+              },
+              {
+                "nullable": true,
+                "maxlength": 10000,
+                "type": "string",
+                "required": false,
+                "name": "description_de"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_banner"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_thumbnail"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": false,
+                "depends_any": [
+                  "title_de",
+                  "title_en"
+                ],
+                "required": true,
+                "name": "show_website",
+                "type": "boolean"
+              },
+              {
+                "nullable": true,
+                "only_if_not_null": "spots",
+                "type": "json_schema",
+                "required": false,
+                "name": "additional_fields"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_start"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_register_start"
+              },
+
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_advertising_start"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_advertising_end"
+              },
+
+
+              {
+                "nullable": true,
+                "maxlength": 10000,
+                "type": "string",
+                "required": false,
+                "name": "description_en"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": false,
+                "name": "allow_email_signup"
+              },
+              {
+                "nullable": true,
+                "required": false,
+                "later_than": "time_register_start",
+                "dependencies": [
+                  "time_register_start"
+                ],
+                "name": "time_register_end",
+                "type": "datetime"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_infoscreen"
+              }
+            ]
+          }
+        },
+        "/events": {
+          "GET": {
+            "label": "Retrieve all events",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Event",
+            "params": [
+              {
+                "nullable": true,
+                "maxlength": 500,
+                "type": "string",
+                "required": false,
+                "name": "catchphrase_de"
+              },
+              {
+                "nullable": true,
+                "maxlength": 500,
+                "type": "string",
+                "required": false,
+                "name": "catchphrase_en"
+              },
+              {
+                "nullable": true,
+                "maxlength": 50,
+                "type": "string",
+                "required": false,
+                "name": "location"
+              },
+              {
+                "nullable": true,
+                "required": false,
+                "later_than": "time_start",
+                "dependencies": [
+                  "time_start"
+                ],
+                "name": "time_end",
+                "type": "datetime"
+              },
+              {
+                "readonly": true,
+                "type": "integer",
+                "required": false,
+                "name": "signup_count"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": true,
+                "name": "show_announce"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": true,
+                "name": "show_infoscreen"
+              },
+              {
+                "nullable": true,
+                "type": "integer",
+                "required": true,
+                "min": 0,
+                "requires_if_not_null": [
+                  "time_register_start",
+                  "time_register_end",
+                  "allow_email_signup"
+                ],
+                "name": "spots"
+              },
+
+              {
+                "nullable": true,
+                "type": "integer",
+                "required": false,
+                "min": 0,
+                "max": 10,
+                "name": "priority"
+              },
+
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "required": false,
+                "dependencies": [
+                  "catchphrase_de",
+                  "description_de"
+                ],
+                "name": "title_de",
+                "type": "string"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "required": false,
+                "dependencies": [
+                  "catchphrase_en",
+                  "description_en"
+                ],
+                "name": "title_en",
+                "type": "string"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_poster"
+              },
+              {
+                "nullable": true,
+                "min": 0,
+                "type": "integer",
+                "required": false,
+                "name": "price"
+              },
+              {
+                "nullable": true,
+                "maxlength": 10000,
+                "type": "string",
+                "required": false,
+                "name": "description_de"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_banner"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_thumbnail"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": false,
+                "depends_any": [
+                  "title_de",
+                  "title_en"
+                ],
+                "required": true,
+                "name": "show_website",
+                "type": "boolean"
+              },
+              {
+                "nullable": true,
+                "only_if_not_null": "spots",
+                "type": "json_schema",
+                "required": false,
+                "name": "additional_fields"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_start"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_register_start"
+              },
+
+
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_advertising_start"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_advertising_end"
+              },
+
+
+              {
+                "nullable": true,
+                "maxlength": 10000,
+                "type": "string",
+                "required": false,
+                "name": "description_en"
+              },
+              {
+                "nullable": false,
+                "type": "boolean",
+                "required": false,
+                "name": "allow_email_signup"
+              },
+              {
+                "nullable": true,
+                "required": false,
+                "later_than": "time_register_start",
+                "dependencies": [
+                  "time_register_start"
+                ],
+                "name": "time_register_end",
+                "type": "datetime"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "img_infoscreen"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {
+          "additional_fields": "must be provided in form of a JSON-Schema. You can add here fields you want to know from people signing up going further than their email-address",
+          "spots": "For no limit, set to '0'. If no signup required, set to '-1'. Otherwise just provide an integer.",
+          "allow_email_signup": "If False, only AMIV-Members can sign up for this event",
+          "price": "Price of the event as Integer in Rappen."
+        },
+        "methods": {
+          "GET": "You are always allowed, even without session, to view AMIV-Events"
+        },
+        "general": "An Event is basically everything happening in the AMIV. All time fields have the format YYYY-MM-DDThh:mmZ, e.g. 2014-12-20T11:50:06Z"
+      }
+    },
+    "groups": {
+      "paths": {
+        "/groups": {
+          "GET": {
+            "label": "Retrieve all groups",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Group",
+            "params": [
+              {
+                "type": "list",
+                "required": false,
+                "unique_elements": true,
+                "schema": {
+                  "regex": "^.+@.+$",
+                  "maxlength": 100,
+                  "type": "string"
+                },
+                "name": "forward_to"
+              },
+              {
+                "nullable": true,
+                "propertyschema": {
+                  "api_resources": true,
+                  "type": "string"
+                },
+                "valueschema": {
+                  "allowed": [
+                    "read",
+                    "readwrite"
+                  ],
+                  "type": "string"
+                },
+                "required": false,
+                "name": "permissions",
+                "type": "dict"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "type": "objectid",
+                "required": false,
+                "data_relation": {
+                  "field": "_id",
+                  "resource": "users"
+                },
+                "name": "moderator"
+              },
+              {
+                "unique_elements_for_resource": true,
+                "required": false,
+                "name": "receive_from",
+                "unique_elements": true,
+                "schema": {
+                  "regex": "[a-z0-9_\\.-]+",
+                  "maxlength": 100,
+                  "type": "string"
+                },
+                "type": "list"
+              },
+              {
+                "type": "boolean",
+                "required": false,
+                "default": false,
+                "name": "allow_self_enrollment"
+              },
+              {
+                "type": "boolean",
+                "required": false,
+                "default": false,
+                "name": "has_zoidberg_share"
+              },
+              {
+                "maxlength": 100,
+                "unique": true,
+                "type": "string",
+                "required": true,
+                "empty": false,
+                "name": "name"
+              }
+            ]
+          }
+        },
+        "/groups/{_id}": {
+          "DELETE": {
+            "label": "Delete a Group",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Group",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a Group",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "type": "list",
+                "required": false,
+                "unique_elements": true,
+                "schema": {
+                  "regex": "^.+@.+$",
+                  "maxlength": 100,
+                  "type": "string"
+                },
+                "name": "forward_to"
+              },
+              {
+                "nullable": true,
+                "propertyschema": {
+                  "api_resources": true,
+                  "type": "string"
+                },
+                "valueschema": {
+                  "allowed": [
+                    "read",
+                    "readwrite"
+                  ],
+                  "type": "string"
+                },
+                "required": false,
+                "name": "permissions",
+                "type": "dict"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "type": "objectid",
+                "required": false,
+                "data_relation": {
+                  "field": "_id",
+                  "resource": "users"
+                },
+                "name": "moderator"
+              },
+              {
+                "unique_elements_for_resource": true,
+                "required": false,
+                "name": "receive_from",
+                "unique_elements": true,
+                "schema": {
+                  "regex": "[a-z0-9_\\.-]+",
+                  "maxlength": 100,
+                  "type": "string"
+                },
+                "type": "list"
+              },
+              {
+                "type": "boolean",
+                "required": false,
+                "default": false,
+                "name": "allow_self_enrollment"
+              },
+              {
+                "type": "boolean",
+                "required": false,
+                "default": false,
+                "name": "has_zoidberg_share"
+              },
+              {
+                "maxlength": 100,
+                "unique": true,
+                "type": "string",
+                "required": true,
+                "empty": false,
+                "name": "name"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {
+          "permissions": "permissions the group grants. has to be according to the jsonschema available at /notyetavailable",
+          "allow_self_enrollment": "If true, the group can be seen by all users and they can subscribe themselves",
+          "has_zoidberg_share": "If the group has a share in the amiv storage"
+        },
+        "general": "This resource describes the different teams in AMIV.A group can grant API permissions and can be reached with several addresses. To see the addresses of this group, see /groupaddressesTo see the members, have a look at '/groupmembers'. To see the addresses messages are forwarded to, see /groupforwards"
+      }
+    },
+    "sessions": {
+      "paths": {
+        "/sessions": {
+          "DELETE": {
+            "label": "Delete all sessions",
+            "params": []
+          },
+          "GET": {
+            "label": "Retrieve all sessions",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Session",
+            "params": [
+              {
+                "nullable": false,
+                "empty": false,
+                "required": true,
+                "name": "username",
+                "type": "string"
+              },
+              {
+                "readonly": true,
+                "type": "objectid",
+                "required": false,
+                "data_relation": {
+                  "cascade_delete": true,
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "users"
+                },
+                "name": "user"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "readonly": true,
+                "type": "string",
+                "required": false,
+                "name": "token"
+              },
+              {
+                "nullable": false,
+                "empty": false,
+                "required": true,
+                "name": "password",
+                "type": "string"
+              }
+            ]
+          }
+        },
+        "/sessions/{_id}": {
+          "DELETE": {
+            "label": "Delete a Session",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Session",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "methods": {
+          "GET": "Check token(s).",
+          "POST": "Login and aquire a login token. Post the fields 'username' and 'password', the response will contain the token. username can be either nethz, mail, or user_id"
+        },
+        "general": "A session is used to authenticate a user after he  provided login data. A POST to /session will return a token you can use in an Authorization header: token <yourtoken>"
+      }
+    },
+    "joboffers": {
+      "paths": {
+        "/joboffers/{_id}": {
+          "DELETE": {
+            "label": "Delete a Joboffer",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Joboffer",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a Joboffer",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "description_en"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "pdf"
+                ],
+                "name": "pdf"
+              },
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "type": "string",
+                "depends_any": [
+                  "title_de",
+                  "title_en"
+                ],
+                "required": true,
+                "name": "company"
+              },
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "title_de"
+              },
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "title_en"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_end"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "logo"
+              },
+              {
+                "nullable": true,
+                "unique": false,
+                "type": "string",
+                "required": false,
+                "name": "description_de"
+              }
+            ]
+          }
+        },
+        "/joboffers": {
+          "GET": {
+            "label": "Retrieve all joboffers",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Joboffer",
+            "params": [
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "description_en"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "pdf"
+                ],
+                "name": "pdf"
+              },
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "type": "string",
+                "depends_any": [
+                  "title_de",
+                  "title_en"
+                ],
+                "required": true,
+                "name": "company"
+              },
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "title_de"
+              },
+              {
+                "nullable": true,
+                "type": "string",
+                "required": false,
+                "name": "title_en"
+              },
+              {
+                "nullable": true,
+                "type": "datetime",
+                "required": false,
+                "name": "time_end"
+              },
+              {
+                "type": "media",
+                "required": false,
+                "filetype": [
+                  "png",
+                  "jpeg"
+                ],
+                "name": "logo"
+              },
+              {
+                "nullable": true,
+                "unique": false,
+                "type": "string",
+                "required": false,
+                "name": "description_de"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {},
+        "general": "A Job Offer posts repositoryUsers can post a job offer with the necessarycontent to fill out a job offer advertisement"
+      }
+    },
+    "studydocuments": {
+      "paths": {
+        "/studydocuments": {
+          "DELETE": {
+            "label": "Delete all studydocuments",
+            "params": []
+          },
+          "GET": {
+            "label": "Retrieve all studydocuments",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Studydocument",
+            "params": [
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "lecture"
+              },
+              {
+                "nullable": true,
+                "type": "integer",
+                "required": false,
+                "name": "semester"
+              },
+              {
+                "type": "list",
+                "required": true,
+                "schema": {
+                  "type": "media"
+                },
+                "name": "files"
+              },
+              {
+                "nullable": true,
+                "maxlength": 4,
+                "type": "string",
+                "required": false,
+                "name": "department"
+              },
+              {
+                "nullable": true,
+                "maxlength": 5,
+                "type": "string",
+                "required": false,
+                "name": "coursesemester"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "professor"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "author"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "name"
+              },
+              {
+                "nullable": true,
+                "readonly": true,
+                "data_relation": {
+                  "field": "_id",
+                  "resource": "users"
+                },
+                "required": false,
+                "name": "uploader",
+                "type": "objectid"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "type": "string",
+                "required": false,
+                "name": "type"
+              }
+            ]
+          }
+        },
+        "/studydocuments/{_id}": {
+          "DELETE": {
+            "label": "Delete a Studydocument",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Studydocument",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a Studydocument",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "lecture"
+              },
+              {
+                "nullable": true,
+                "type": "integer",
+                "required": false,
+                "name": "semester"
+              },
+              {
+                "type": "list",
+                "required": true,
+                "schema": {
+                  "type": "media"
+                },
+                "name": "files"
+              },
+              {
+                "nullable": true,
+                "maxlength": 4,
+                "type": "string",
+                "required": false,
+                "name": "department"
+              },
+              {
+                "nullable": true,
+                "maxlength": 5,
+                "type": "string",
+                "required": false,
+                "name": "coursesemester"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "professor"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "author"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "name": "name"
+              },
+              {
+                "nullable": true,
+                "readonly": true,
+                "data_relation": {
+                  "field": "_id",
+                  "resource": "users"
+                },
+                "required": false,
+                "name": "uploader",
+                "type": "objectid"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "type": "string",
+                "required": false,
+                "name": "type"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {
+          "author": "Original author of the uploaded files(Prof, Assistant, copyright owner)",
+          "semester": "Study-Semester as an Integer starting with first semester Bachelor.",
+          "uploader": "Read-only field describing which AMIV member uploaded the files",
+          "coursesemester": "Course Semester as Enum(HS/FS)+Integer"
+        },
+        "general": "Study-documents are basically all documents that are connected to a course. All metadata is optional and intended to help finding the file. There are no strict categories, as those do not work well for courses available to many departements and aiming at all levels of experience."
+      }
+    },
+    "users": {
+      "paths": {
+        "/users/{nethz}": {
+          "GET": {
+            "label": "Retrieve a User",
+            "params": [
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "default": null,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "nethz"
+              }
+            ]
+          }
+        },
+        "/users/{_id}": {
+          "DELETE": {
+            "label": "Delete a User",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a User",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a User",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "default": null,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "nethz"
+              },
+              {
+                "maxlength": 100,
+                "unique": true,
+                "type": "string",
+                "required": true,
+                "regex": "^.+@.+$",
+                "name": "email"
+              },
+              {
+                "nullable": true,
+                "empty": false,
+                "maxlength": 20,
+                "required": false,
+                "name": "phone",
+                "type": "string"
+              },
+              {
+                "not_patchable_unless_admin": true,
+                "allowed": [
+                  "male",
+                  "female"
+                ],
+                "unique": false,
+                "type": "string",
+                "required": true,
+                "maxlength": 6,
+                "name": "gender"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": false,
+                "maxlength": 50,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "firstname"
+              },
+              {
+                "nullable": true,
+                "maxlength": 8,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "not_patchable_unless_admin": true,
+                "name": "legi"
+              },
+              {
+                "nullable": true,
+                "not_patchable_unless_admin": true,
+                "required": false,
+                "allowed": [
+                  "itet",
+                  "mavt"
+                ],
+                "name": "department",
+                "type": "string"
+              },
+              {
+                "nullable": true,
+                "type": "boolean",
+                "required": false,
+                "name": "send_newsletter"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "default": null,
+                "type": "string",
+                "required": false,
+                "empty": false,
+                "name": "password"
+              },
+              {
+                "nullable": false,
+                "maxlength": 50,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "lastname"
+              },
+              {
+                "maxlength": 13,
+                "allowed": [
+                  "none",
+                  "regular",
+                  "extraordinary",
+                  "honorary"
+                ],
+                "unique": false,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "name": "membership"
+              },
+              {
+                "nullable": true,
+                "maxlength": 6,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "empty": false,
+                "name": "rfid"
+              }
+            ]
+          }
+        },
+        "/users": {
+          "GET": {
+            "label": "Retrieve all users",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a User",
+            "params": [
+              {
+                "nullable": true,
+                "maxlength": 30,
+                "default": null,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "nethz"
+              },
+              {
+                "maxlength": 100,
+                "unique": true,
+                "type": "string",
+                "required": true,
+                "regex": "^.+@.+$",
+                "name": "email"
+              },
+              {
+                "nullable": true,
+                "empty": false,
+                "maxlength": 20,
+                "required": false,
+                "name": "phone",
+                "type": "string"
+              },
+              {
+                "not_patchable_unless_admin": true,
+                "allowed": [
+                  "male",
+                  "female"
+                ],
+                "unique": false,
+                "type": "string",
+                "required": true,
+                "maxlength": 6,
+                "name": "gender"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": false,
+                "maxlength": 50,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "firstname"
+              },
+              {
+                "nullable": true,
+                "maxlength": 8,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "not_patchable_unless_admin": true,
+                "name": "legi"
+              },
+              {
+                "nullable": true,
+                "not_patchable_unless_admin": true,
+                "required": false,
+                "allowed": [
+                  "itet",
+                  "mavt"
+                ],
+                "name": "department",
+                "type": "string"
+              },
+              {
+                "nullable": true,
+                "type": "boolean",
+                "required": false,
+                "name": "send_newsletter"
+              },
+              {
+                "nullable": true,
+                "maxlength": 100,
+                "default": null,
+                "type": "string",
+                "required": false,
+                "empty": false,
+                "name": "password"
+              },
+              {
+                "nullable": false,
+                "maxlength": 50,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "empty": false,
+                "name": "lastname"
+              },
+              {
+                "maxlength": 13,
+                "allowed": [
+                  "none",
+                  "regular",
+                  "extraordinary",
+                  "honorary"
+                ],
+                "unique": false,
+                "type": "string",
+                "required": true,
+                "not_patchable_unless_admin": true,
+                "name": "membership"
+              },
+              {
+                "nullable": true,
+                "maxlength": 6,
+                "unique": true,
+                "type": "string",
+                "required": false,
+                "empty": false,
+                "name": "rfid"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "methods": {
+          "GET": "Authorization is required for most of the fields"
+        },
+        "general": "In general, the user data will be generated from LDAP-Data. However, one might change the RFID-Number or the membership-status. Extraordinary members may not have a LDAP-Account and can therefore access all given fields."
+      }
+    },
+    "purchases": {
+      "paths": {
+        "/purchases": {
+          "GET": {
+            "label": "Retrieve all purchases",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Purchase",
+            "params": [
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "nullable": false,
+                "unique": false,
+                "required": true,
+                "name": "timestamp",
+                "type": "datetime"
+              },
+              {
+                "nullable": false,
+                "not_patchable_unless_admin": true,
+                "allowed": [
+                  "beer",
+                  "coffee"
+                ],
+                "unique": false,
+                "type": "string",
+                "required": true,
+                "maxlength": 6,
+                "name": "product"
+              },
+              {
+                "nullable": false,
+                "data_relation": {
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "users"
+                },
+                "unique": false,
+                "type": "objectid",
+                "required": true,
+                "name": "user"
+              }
+            ]
+          }
+        },
+        "/purchases/{_id}": {
+          "GET": {
+            "label": "Retrieve a Purchase",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {},
+        "general": "A beer machine or kaffi machine transaction. Users should be able to get beer or kaffi, if their last timestamp is older than one day and they are AMIV members. This resource is used to log their purchases."
+      }
+    },
+    "groupmemberships": {
+      "paths": {
+        "/groupmemberships": {
+          "GET": {
+            "label": "Retrieve all groupmemberships",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Groupmembership",
+            "params": [
+              {
+                "self_enrollment_required": true,
+                "data_relation": {
+                  "cascade_delete": true,
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "groups"
+                },
+                "required": true,
+                "name": "group",
+                "type": "objectid"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "data_relation": {
+                  "cascade_delete": true,
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "users"
+                },
+                "type": "objectid",
+                "required": true,
+                "only_self_or_moderator": true,
+                "unique_combination": [
+                  "group"
+                ],
+                "name": "user"
+              }
+            ]
+          }
+        },
+        "/groupmemberships/{_id}": {
+          "DELETE": {
+            "label": "Delete a Groupmembership",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Groupmembership",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "general": "Assignment of registered users to groups."
+      }
+    },
+    "eventsignups": {
+      "paths": {
+        "/eventsignups": {
+          "GET": {
+            "label": "Retrieve all eventsignups",
+            "params": []
+          },
+          "POST": {
+            "label": "Create a Eventsignup",
+            "params": [
+              {
+                "nullable": true,
+                "type": "json_event_field",
+                "required": false,
+                "name": "additional_fields"
+              },
+              {
+                "nullable": false,
+                "email_signup_must_be_allowed": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "regex": "^.+@.+$",
+                "not_patchable": true,
+                "name": "email"
+              },
+              {
+                "nullable": true,
+                "readonly": true,
+                "type": "boolean",
+                "required": false,
+                "name": "confirmed"
+              },
+              {
+                "nullable": false,
+                "data_relation": {
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "users"
+                },
+                "type": "objectid",
+                "only_self_enrollment_for_event": true,
+                "required": false,
+                "not_patchable": true,
+                "name": "user"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "data_relation": {
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "events"
+                },
+                "signup_requirements": true,
+                "type": "objectid",
+                "required": true,
+                "not_patchable": true,
+                "unique_combination": [
+                  "user",
+                  "email"
+                ],
+                "name": "event"
+              }
+            ]
+          }
+        },
+        "/eventsignups/{_id}": {
+          "DELETE": {
+            "label": "Delete a Eventsignup",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "GET": {
+            "label": "Retrieve a Eventsignup",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              }
+            ]
+          },
+          "PATCH": {
+            "label": "Update a Eventsignup",
+            "params": [
+              {
+                "type": "string",
+                "required": true,
+                "name": "_id"
+              },
+              {
+                "nullable": true,
+                "type": "json_event_field",
+                "required": false,
+                "name": "additional_fields"
+              },
+              {
+                "nullable": false,
+                "email_signup_must_be_allowed": true,
+                "maxlength": 100,
+                "type": "string",
+                "required": false,
+                "regex": "^.+@.+$",
+                "not_patchable": true,
+                "name": "email"
+              },
+              {
+                "nullable": true,
+                "readonly": true,
+                "type": "boolean",
+                "required": false,
+                "name": "confirmed"
+              },
+              {
+                "nullable": false,
+                "data_relation": {
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "users"
+                },
+                "type": "objectid",
+                "only_self_enrollment_for_event": true,
+                "required": false,
+                "not_patchable": true,
+                "name": "user"
+              },
+              {
+                "type": "objectid",
+                "required": false,
+                "name": "_id"
+              },
+              {
+                "data_relation": {
+                  "field": "_id",
+                  "embeddable": true,
+                  "resource": "events"
+                },
+                "signup_requirements": true,
+                "type": "objectid",
+                "required": true,
+                "not_patchable": true,
+                "unique_combination": [
+                  "user",
+                  "email"
+                ],
+                "name": "event"
+              }
+            ]
+          }
+        }
+      },
+      "description": {
+        "fields": {
+          "additional_fields": "Data-schema depends on 'additional_fields' from the mapped event. Please provide in json-format.",
+          "email": "For registered users, this is just a projection of your general email-address. External users need to provide their email here.",
+          "user": "Provide either user or email."
+        },
+        "methods": {
+          "PATCH": "Only additional_fields can be changed"
+        },
+        "general": "You can signup here for an existing event inside of the registration-window. External Users can only sign up to public events."
+      }
+    }
+  },
+  "base": "http:///",
+  "server_name": null
+}
\ No newline at end of file
diff --git a/tools/events.tool b/tools/events.tool
index 440e5b1ed6436019ee5358bd40dcc5899b62a022..f1996320753e007502c2e05368c49826f3baafba 100644
--- a/tools/events.tool
+++ b/tools/events.tool
@@ -18,11 +18,11 @@
 
 <!-- modal for creating new events, easier to do it this way than js-->
 
-<div class="modal fade" id="event-modal" role="dialog">
+<div class="modal fade" id="event-modal" role="dialog" data-etag="">
     <div class="modal-dialog">
         <div class="modal-content">
             <div class="modal-header">
-                <button type="button" class="close" data-dismiss="modal">&times;</button>
+                <button type="button" class="close" >&times;</button>
                 <h4 class="modal-title" id="event-modal-title"></h4>
             </div>
             <div class="modal-body">
@@ -62,6 +62,28 @@
                             </span>
                         </div>
                     </div>
+
+
+                    <div class="form-group">
+                        <label for="time_start">Start Advertising</label>
+                        <div class="input-group date" id="time_advertising_start">
+                            <input type="text" class="form-control" />
+                            <span class="input-group-addon">
+                    <span class="glyphicon-calendar glyphicon"></span>
+                            </span>
+                        </div>
+                    </div>
+                    <!-- </div> -->
+                    <!-- <div class="col-md-3"> -->
+                    <div class="form-group">
+                        <label for="time_end">End Advertising</label>
+                        <div class="input-group date" id="time_advertising_end">
+                            <input type="text" class="form-control" />
+                            <span class="input-group-addon">
+                    <span class="glyphicon-calendar glyphicon"></span>
+                            </span>
+                        </div>
+                    </div>
                     <!-- </div> -->
                     <!-- </div> -->
 
@@ -133,6 +155,11 @@
                         </label>
                     </div>
 
+                    <div class="form-group">
+                        <label for="price">Priority [1-10]</label>
+                        <input type="number" class="form-control" min="0" id="priority" value=5></input>
+                    </div>
+
                     <div class="form-group">
                         <label for="description_de">Additional Fields (JSON schema)</label>
                         <textarea type="text" class="form-control" rows="3" id="additional_fields"></textarea>
@@ -193,6 +220,7 @@
 
 <script type="text/javascript">
     var events = {
+        somethingChanged: false,
         showInTable: ['title_de', 'time_start', 'show_website', 'spots', 'signup_count'],
         curEventData: null,
 
@@ -280,7 +308,7 @@
                     events.showInTable.forEach(function(i) {
                         tmp += '<td>' + ret['_items'][n][i] + '</td>';
                     });
-                    $('.events-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>');
+                    $('.events-table tbody').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
                 }
                 $('.events-table tbody tr').click(events.showDetails);
                 $('#wheel-logo').css('transform', 'rotate(0deg)');
@@ -297,12 +325,41 @@
         //show details of an event in a modal
         //TODO: fill the more beautiful event-modal
         showDetails: function() {
+            somethingChanged = false;
+            console.log($(this).attr('data-id'));
             amivcore.events.GET({
                 id: $(this).attr('data-id')
             }, function(ret) {
                 curEventData = ret;
                 console.log(curEventData);
-                $("#event-modal-title").val("edit event");
+                $("#event-modal-title").text("Edit Event");
+                $('#event-modal-footer').html('<button type="button" class="btn btn-default" data-dismiss="modal">Close</button><button type="button" class="btn btn-primary" onclick="events.inspectEvent()">update</button><button type="button" class="btn btn-danger" onclick="events.deleteEvent(' + etag +')">Delete</button>');
+                var etag = ret['_etag'];
+
+                $('#event-modal').attr('data-etag', etag);
+
+                //fill fields of the form with content that has the same ID
+                $('#event-modal-form').find('input, textarea').val(function (index, value) {
+                    return ret[this.id];
+                });
+
+                //array of elements that are represented by checkboxes
+                var booleanEventData = ['signup-required', 'no-signup-limit', 'allow_email_signup', 'show_website', 'show_infoscreen', 'show_announce'];
+
+                for (i = 0; i < booleanEventData.length; i++){
+                    $("#" + booleanEventData[i]).prop('checked', ret[booleanEventData[i]]);
+                }
+
+                //set the datepickers
+                $('#event-modal').modal('show');
+
+                var dateEventData = ['time_start', 'time_end', 'time_register_start', 'time_register_end', 'time_advertising_start', 'time_advertising_end'];
+                for (i = 0; i < dateEventData.length; i++){
+                    if (ret[dateEventData[i]] != null){
+                        $('#' + dateEventData[i]).data("DateTimePicker").date(new Date(ret[dateEventData[i]]));
+                    }
+                }
+                
             //     var tmp = '<table class="table table-hover events-edit-table" data-etag="' + ret['_etag'] + '"><tbody>';
             //     for (var cur in ret) {
             //         if (cur.charAt(0) != '_' && cur != 'signups')
@@ -352,6 +409,26 @@
             });
         },
 
+
+        deleteEvent: function(etag) { 
+            console.log('delete triggered');
+            if (confirm("Delete " + curEventData.title_de + "?") == true) {
+                amivcore.events.DELETE({
+                    id: curEventData.id,
+                    header: {
+                        // 'If-Match': $('#event-modal').attr('data-etag')
+                        'If-Match': etag
+                    }
+                }, function(response) {
+                    console.log(response);
+                });
+                    events.get();
+                        tools.log('Event deleted', 'w');
+                        tools.modalClose();
+            } else {
+                tools.log('Event not Deleted', 'i');
+                                }
+        },
         /*showDetails: function() {
             amivcore.events.GET({
                 id: $(this).attr('data-id')
@@ -437,12 +514,18 @@
             newEvent["data"]["catchphrase_de"] = setNullIfEmpty($("#catchphrase_de").val());
 
             if (!($("#time_start").data("DateTimePicker").date() == null)) {
-                //for now, because the api rejects .toISOString format
-                newEvent["data"]["time_start"] = $("#time_start").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
+                newEvent["data"]["time_start"] = $("#time_start").data("DateTimePicker").date();
             }
             if (!($("#time_end").data("DateTimePicker").date() == null)) {
-                //for now, because the api rejects .toISOString format
-                newEvent["data"]["time_end"] = $("#time_end").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
+                newEvent["data"]["time_end"] = $("#time_end").data("DateTimePicker").date();
+            }
+
+
+            if (!($("#time_advertising_start").data("DateTimePicker").date() == null)) {
+                newEvent["data"]["time_advertising_start"] = $("#time_advertising_start").data("DateTimePicker").date();
+            }
+            if (!($("#time_end").data("DateTimePicker").date() == null)) {
+                newEvent["data"]["time_advertising_end"] = $("#time_advertising_end").data("DateTimePicker").date();
             }
 
             if (!$("#signup-required").is(":checked")) {
@@ -457,15 +540,13 @@
 
                 }
                 if (!($("#time_register_start").data("DateTimePicker").date() == null)) {
-                    //for now, because the api rejects .toISOString format
-                    newEvent["data"]["time_register_start"] = $("#time_register_start").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
+                    newEvent["data"]["time_register_start"] = $("#time_register_start").data("DateTimePicker").date();
                 } else {
                     tools.log('field "Start of Registration" required', 'e');
                     return;
                 }
                 if (!($("#time_register_end").data("DateTimePicker").date() == null)) {
-                    //for now, because the api rejects .toISOString format
-                    newEvent["data"]["time_register_end"] = $("#time_register_end").data("DateTimePicker").date().format("%Y-%m-%dT%H:%M:%SZ");
+                    newEvent["data"]["time_register_end"] = $("#time_register_end").data("DateTimePicker").date();
                 } else {
                     tools.log('field "End of Registration" required', 'e');
                     return;
@@ -485,6 +566,7 @@
             newEvent["data"]["show_website"] = $("#show_website").is(':checked');
             newEvent["data"]["show_infoscreen"] = $("#show_infoscreen").is(':checked');
             newEvent["data"]["show_announce"] = $("#show_announce").is(':checked');
+            newEvent["data"]["priority"] = (parseInt($("#priority").val()));
             newEvent["data"]["additional_fields"] = setNullIfEmpty($("#additional_fields").val());
 
             newEvent["data"]["title_en"] = setNullIfEmpty($("#title_en").val());
@@ -511,18 +593,35 @@
     //setting up the date time picker
     $(function() {
         $('#time_start').datetimepicker({
-            locale: "de"
+            locale: "de",
+            sideBySide: true
         });
+
         $('#time_end').datetimepicker({
             locale: "de",
-            useCurrent: false //Important! See issue #1075aa
+            useCurrent: false, //Important! See issue #1075aa
+            sideBySide: true
+        });
+
+        $('#time_advertising_start').datetimepicker({
+            locale: "de",
+            sideBySide: true
+        });
+
+        $('#time_advertising_end').datetimepicker({
+            locale: "de",
+            useCurrent: false, //Important! See issue #1075aa
+            sideBySide: true
         });
+
         $('#time_register_start').datetimepicker({
-            locale: "de"
+            locale: "de",
+            sideBySide: true
         });
         $('#time_register_end').datetimepicker({
             locale: "de",
-            useCurrent: false //Important! See issue #107534
+            useCurrent: false, //Important! See issue #107534
+            sideBySide: true
         });
         $("#time_register_start").on("dp.change", function(e) {
             $('#time_register_end').data("DateTimePicker").minDate(e.date);
@@ -530,6 +629,12 @@
         $("#time_register_end").on("dp.change", function(e) {
             $('#time_register_start').data("DateTimePicker").maxDate(e.date);
         });
+        $("#time_advertising_start").on("dp.change", function(e) {
+            $('#time_advertising_end').data("DateTimePicker").minDate(e.date);
+        });
+        $("#time_advertising_end").on("dp.change", function(e) {
+            $('#time_advertising_start').data("DateTimePicker").maxDate(e.date);
+        });
         $("#time_start").on("dp.change", function(e) {
             $('#time_end').data("DateTimePicker").minDate(e.date);
         });
@@ -584,7 +689,7 @@
             callback: function() {
                 var tmp = '<div class="form-group"><select class="form-control events-sort-select">';
                 var cur = events.sort.cur();
-                ['id', 'title_de', 'description_de', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location'].forEach(function(i) {
+                ['_id', 'title_de', 'description_de', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location'].forEach(function(i) {
                     tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>';
                     tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>';
                 });
@@ -613,7 +718,7 @@
                     cur = '';
                 else
                     cur = cur.split('==')[1];
-                ['id', 'title_de', 'description_de', 'title_en', 'description_en', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location']
+                ['_id', 'title_de', 'description_de', 'title_en', 'description_en', 'time_start', 'time_register_start', 'time_end', 'time_register_end', 'show_website', 'show_announce', 'show_infoscreen', 'price', '_updated', 'location']
                 .forEach(
                     function(i) {
                         tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>';
@@ -648,6 +753,10 @@
 
     $(document).ready(function() {
         $('[data-toggle="tooltip"]').tooltip();
+        $('#event-modal-form').on('keyup change', 'input, select, textarea, span ', function(){
+            console.log('changed shit');
+            events.somethingChanged = true;
+        });
     });
 
     function setNullIfEmpty(formData) {
diff --git a/tools/groups.tool b/tools/groups.tool
index 83e315a62d151b8dfe729bc840bb7e938623d1c1..e3e375794a9b7fdefd17f6dc644b744a229908c6 100644
--- a/tools/groups.tool
+++ b/tools/groups.tool
@@ -78,7 +78,7 @@
                     where: groups.search.cur(),
                 }
             }, function(ret) {
-
+                console.log(ret);
                 if (ret === undefined || ret['_items'].length == 0) {
                     tools.log('No Data', 'w');
                     return;
@@ -100,7 +100,7 @@
                     groups.showInTable.forEach(function(i) {
                         tmp += '<td>' + ret['_items'][n][i] + '</td>';
                     });
-                    $('.groups-table tbody').append('<tr data-id="' + ret['_items'][n]['id'] + '">' + tmp + '</tr>');
+                    $('.groups-table tbody').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
                 }
                 $('.groups-table tbody tr').click(groups.showDetails);
             });
@@ -114,7 +114,7 @@
                 console.log(ret);
                 curUserData = ret;
 
-                var tmp = '<div class="groups-edit-cont" data-etag="' + ret['_etag'] + '" data-id="' + ret['id'] + '">';
+                var tmp = '<div class="groups-edit-cont" data-etag="' + ret['_etag'] + '" data-id="' + ret['_id'] + '">';
                 for (var cur in ret)
                     if (cur.charAt(0) != '_')
                         if (cur == 'user_subscribers') {
@@ -236,7 +236,7 @@
                                 $('.groups-user-add-form input').each(function() {
                                     newUserData[$(this).attr('name')] = $(this).val();
                                 });
-                                newUserData['moderator_id'] = ret['_items'][0].id;
+                                newUserData['moderator_id'] = ret['_items'][0]['_id'];
                                 console.log(newUserData);
                                 amivcore.groups.POST({
                                     data: newUserData
diff --git a/tools/users.tool b/tools/users.tool
index 44a8a037343ac9870fdea346637cc18185e4cb4f..b4bf41bd032aac8989ef77d215d7a5e7656901ff 100644
--- a/tools/users.tool
+++ b/tools/users.tool
@@ -99,7 +99,7 @@
 					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').append('<tr data-id="' + ret['_items'][n]['_id'] + '">' + tmp + '</tr>');
 				}
 				$('.users-table tbody tr').click(users.showDetails);
 			});
@@ -249,7 +249,7 @@
 			callback: function() {
 				var tmp = '<div class="form-group"><select class="form-control users-sort-select">';
 				var cur = users.sort.cur();
-				['id', 'firstname', 'lastname', 'membership', 'nethz'].forEach(function(i) {
+				['_id', 'firstname', 'lastname', 'membership', 'nethz'].forEach(function(i) {
 					tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>&#8673; ' + i + '</option>';
 					tmp += '<option value="-' + i + '"' + (('-' + i == cur) ? ' selected' : '') + '>&#8675; ' + i + '</option>';
 				});
@@ -278,7 +278,7 @@
 					cur = '';
 				else
 					cur = cur.split('==')[1];
-				['id', 'firstname', 'lastname'].forEach(function(i) {
+				['_id', 'firstname', 'lastname'].forEach(function(i) {
 					tmp += '<option value="' + i + '"' + ((i == cur) ? ' selected' : '') + '>' + i + '</option>';
 				});
 				tmp += '</select><br><input type="text" value="' + cur + '" class="form-control users-search-val"></div>';