diff --git a/service/planner/db/client.go b/service/planner/db/client.go
index 5e9e5c44cb34e3aefc49993149b8236bd23d4626..613e86e136660e553824fb0a2ce2d4c8d2a062d8 100644
--- a/service/planner/db/client.go
+++ b/service/planner/db/client.go
@@ -2,8 +2,12 @@ package db
 
 import (
 	"database/sql"
+	"errors"
+	"os"
+	"time"
 
 	"github.com/go-sql-driver/mysql"
+	log "github.com/sirupsen/logrus"
 	"github.com/spf13/viper"
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/model"
 )
@@ -26,28 +30,56 @@ func Init() error {
 	cfg = &mysql.Config{
 		User:                 vp.GetString("user"),
 		Passwd:               vp.GetString("passwd"),
-		Addr:                 vp.GetString("addr"),
+		Net:                  "tcp",
+		Addr:                 os.Getenv("DB_CONNECT"),
 		DBName:               vp.GetString("dbName"),
+		Loc:                  time.Now().Local().Location(),
+		MaxAllowedPacket:     64 * 1024 * 1024,
 		AllowNativePasswords: true,
+		CheckConnLiveness:    true,
+		ParseTime:            true,
 	}
 
+	log.Info("Using DSN for DB: ", cfg.FormatDSN())
 	return nil
 }
 
-func CreateUser(mail string, firstName string, lastName string) error {
+func CreateUser(mail string, firstName string, lastName string) (*model.User, error) {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
-		return err
+		return nil, err
 	}
 	defer udb.Close()
 
+	queryCheck, err := udb.Query("SELECT * FROM userAccount WHERE mail = ?;", mail)
+	if err != nil {
+		return nil, err
+	}
+	defer queryCheck.Close()
+	if queryCheck.Next() {
+		return nil, errors.New("account exists")
+	}
+
 	query, err := udb.Query("INSERT INTO userAccount (mail, firstName, lastName) VALUES (?, ?, ?);", mail, firstName, lastName)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	query.Close()
 
-	return nil
+	queryGetId, err := udb.Query("SELECT id FROM userAccount WHERE mail = ?;", mail)
+	if err != nil {
+		return nil, err
+	}
+	defer queryGetId.Close()
+	var id int
+	for queryGetId.Next() {
+		err = queryGetId.Scan(&id)
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	return GetUser(id)
 }
 
 func GetUser(id int) (*model.User, error) {
@@ -101,70 +133,122 @@ func GetUser(id int) (*model.User, error) {
 	return user, nil
 }
 
-func UpdateUser(id int, mail string, firstName string, lastName string) error {
+func GetUsers() ([]*model.UserItem, error) {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
-		return err
+		return nil, err
 	}
 	defer udb.Close()
 
-	query, err := udb.Query("UPDATE userAccount SET mail = ?, firstName = ?, lastName = ? WHERE userId = ?;", mail, firstName, lastName, id)
+	query, err := udb.Query("SELECT * FROM userAccount;")
 	if err != nil {
-		return err
+		return nil, err
+	}
+	defer query.Close()
+	var users []*model.UserItem
+	for query.Next() {
+		user := &model.UserItem{}
+		err = query.Scan(&user.ID, &user.Mail, &user.FirstName, &user.LastName)
+		if err != nil {
+			continue
+		}
+		users = append(users, user)
+	}
+
+	return users, nil
+}
+
+func UpdateUser(id int, mail string, firstName string, lastName string) (*model.User, error) {
+	udb, err := sql.Open(driverName, cfg.FormatDSN())
+	if err != nil {
+		return nil, err
+	}
+	defer udb.Close()
+
+	query, err := udb.Query("UPDATE userAccount SET mail = ?, firstName = ?, lastName = ? WHERE id = ?;", mail, firstName, lastName, id)
+	if err != nil {
+		return nil, err
 	}
 	query.Close()
 
-	return nil
+	return GetUser(id)
 }
 
-func DeleteUser(id int) error {
+func DeleteUser(id int) (*model.User, error) {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
-		return err
+		return nil, err
 	}
 	defer udb.Close()
 
+	user, err := GetUser(id)
+	if err != nil {
+		return nil, err
+	}
+
 	queryMeals, err := udb.Query("DELETE FROM userMeal WHERE userId = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	queryMeals.Close()
 
 	queryShoppingDates, err := udb.Query("DELETE FROM shoppingDate WHERE userId = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	queryShoppingDates.Close()
 
 	queryRelation, err := udb.Query("DELETE FROM userGroupRelation WHERE userId = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	queryRelation.Close()
 
 	query, err := udb.Query("DELETE FROM userAccount WHERE id = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	query.Close()
 
-	return nil
+	return user, nil
 }
 
-func CreateGroup() error {
+func CreateGroup(name string) (*model.Group, error) {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
-		return err
+		return nil, err
 	}
 	defer udb.Close()
 
-	query, err := udb.Query("INSERT INTO userGroup;")
+	queryCheck, err := udb.Query("SELECT * FROM userGroup WHERE name = ?;", name)
 	if err != nil {
-		return err
+		return nil, err
+	}
+	defer queryCheck.Close()
+	if queryCheck.Next() {
+		return nil, errors.New("group name exists")
+	}
+
+	query, err := udb.Query("INSERT INTO userGroup (name) VALUES (?);", name)
+	if err != nil {
+		return nil, err
 	}
 	query.Close()
 
-	return nil
+	queryGetId, err := udb.Query("SELECT id FROM userGroup WHERE name = ?;", name)
+	if err != nil {
+		return nil, err
+	}
+	defer queryGetId.Close()
+	var id int
+	for queryGetId.Next() {
+		err = queryGetId.Scan(&id)
+		if err != nil {
+			return nil, err
+		}
+	}
+
+	return GetGroup(id)
 }
 
 func GetGroup(id int) (*model.Group, error) {
@@ -218,32 +302,37 @@ func GetGroup(id int) (*model.Group, error) {
 	return group, nil
 }
 
-func DeleteGroup(id int) error {
+func DeleteGroup(id int) (*model.Group, error) {
 	udb, err := sql.Open(driverName, cfg.FormatDSN())
 	if err != nil {
-		return err
+		return nil, err
 	}
 	defer udb.Close()
 
+	group, err := GetGroup(id)
+	if err != nil {
+		return nil, err
+	}
+
 	queryMeals, err := udb.Query("DELETE FROM groupMeal WHERE groupId = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	queryMeals.Close()
 
 	queryRelation, err := udb.Query("DELETE FROM userGroupRelation WHERE groupId = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	queryRelation.Close()
 
 	query, err := udb.Query("DELETE FROM userGroup WHERE id = ?;", id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 	query.Close()
 
-	return nil
+	return group, nil
 }
 
 func CreateUserMeal(userId int, mealId int, date string) error {
diff --git a/service/planner/db/config.json b/service/planner/db/config.json
index 92e4b800ee5ece68bdafe1a0879d6cfc956dea79..8cc6ada11d97d1a70a5a4eba12e93303096b8560 100644
--- a/service/planner/db/config.json
+++ b/service/planner/db/config.json
@@ -1,5 +1,4 @@
 {
-    "addr": "mariadb:3306",
     "dbName": "planner",
     "user": "root",
     "passwd": "secret"
diff --git a/service/planner/db/init.sql b/service/planner/db/init.sql
index 7259ad373a8f60ce8a2d7711911f2278f00943bc..710a1ce000039464de44662e00d72468bff80102 100644
--- a/service/planner/db/init.sql
+++ b/service/planner/db/init.sql
@@ -1,50 +1,58 @@
 CREATE DATABASE IF NOT EXISTS planner;
+
 USE planner;
 
-CREATE TABLE IF NOT EXISTS `userAccount` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    `mail` varchar(255) NOT NULL,
-    `firstName` varchar(255) NOT NULL,
-    `lastName` varchar(255) NOT NULL,
-    PRIMARY KEY (`id`)
-);
+CREATE TABLE
+    IF NOT EXISTS `userAccount` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `mail` varchar(255) NOT NULL,
+        `firstName` varchar(255) NOT NULL,
+        `lastName` varchar(255) NOT NULL,
+        PRIMARY KEY (`id`)
+    );
 
-CREATE TABLE IF NOT EXISTS `userGroup` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    PRIMARY KEY (`id`)
-);
+CREATE TABLE
+    IF NOT EXISTS `userGroup` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `name` varchar(255) NOT NULL,
+        PRIMARY KEY (`id`)
+    );
 
-CREATE TABLE IF NOT EXISTS `userMeal` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    `userId` int NOT NULL,
-    `mealId` int NOT NULL,
-    `date` DATE NOT NULL,
-    PRIMARY KEY (`id`),
-    FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
-);
+CREATE TABLE
+    IF NOT EXISTS `userMeal` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `userId` int NOT NULL,
+        `mealId` int NOT NULL,
+        `date` DATE NOT NULL,
+        PRIMARY KEY (`id`),
+        FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
+    );
 
-CREATE TABLE IF NOT EXISTS `groupMeal` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    `groupId` int NOT NULL,
-    `mealId` int NOT NULL,
-    `date` DATE NOT NULL,
-    PRIMARY KEY (`id`),
-    FOREIGN KEY (`groupId`) REFERENCES userGroup(`id`)
-);
+CREATE TABLE
+    IF NOT EXISTS `groupMeal` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `groupId` int NOT NULL,
+        `mealId` int NOT NULL,
+        `date` DATE NOT NULL,
+        PRIMARY KEY (`id`),
+        FOREIGN KEY (`groupId`) REFERENCES userGroup(`id`)
+    );
 
-CREATE TABLE IF NOT EXISTS `shoppingDate` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    `userId` int NOT NULL,
-    `date` DATE NOT NULL,
-    PRIMARY KEY (`id`),
-    FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
-);
+CREATE TABLE
+    IF NOT EXISTS `shoppingDate` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `userId` int NOT NULL,
+        `date` DATE NOT NULL,
+        PRIMARY KEY (`id`),
+        FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
+    );
 
-CREATE TABLE IF NOT EXISTS `userGroupRelation` (
-    `id` int NOT NULL AUTO_INCREMENT,
-    `groupId` int NOT NULL,
-    `userId` int NOT NULL,
-    PRIMARY KEY (`id`),
-    FOREIGN KEY (`groupId`) REFERENCES userGroup(`id`),
-    FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
-);
\ No newline at end of file
+CREATE TABLE
+    IF NOT EXISTS `userGroupRelation` (
+        `id` int NOT NULL AUTO_INCREMENT,
+        `groupId` int NOT NULL,
+        `userId` int NOT NULL,
+        PRIMARY KEY (`id`),
+        FOREIGN KEY (`groupId`) REFERENCES userGroup(`id`),
+        FOREIGN KEY (`userId`) REFERENCES userAccount(`id`)
+    );
\ No newline at end of file
diff --git a/service/planner/go.mod b/service/planner/go.mod
index 08066b9518dd1361fbf116300005505c40c3168e..20eaab5fdf8eb9ceede13768a8971b5a922a863a 100644
--- a/service/planner/go.mod
+++ b/service/planner/go.mod
@@ -5,6 +5,7 @@ go 1.20
 require (
 	github.com/go-sql-driver/mysql v1.7.1
 	github.com/gorilla/mux v1.8.0
+	github.com/sirupsen/logrus v1.9.3
 	github.com/spf13/viper v1.16.0
 )
 
diff --git a/service/planner/go.sum b/service/planner/go.sum
index 82a14fbd04630a3035e86bde4ad34e90d32b292a..ce66f6a326178ab86dc4c52d836a2e65b93e028a 100644
--- a/service/planner/go.sum
+++ b/service/planner/go.sum
@@ -148,6 +148,8 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
 github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
+github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
+github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
 github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM=
 github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ=
 github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA=
@@ -307,6 +309,7 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w
 golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
 golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
diff --git a/service/planner/handler/group.go b/service/planner/handler/group.go
index 4cd476ba1ad918f2f7a64fcf0d4693a8d30d43b4..2e2119b5c406cf6c0ec88eddccb6a7048a3b22d6 100644
--- a/service/planner/handler/group.go
+++ b/service/planner/handler/group.go
@@ -1,17 +1,35 @@
 package handler
 
 import (
+	"encoding/json"
 	"net/http"
 
+	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/model"
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/service"
 )
 
+func getGroup(r *http.Request) (*model.Group, error) {
+	var group model.Group
+	err := json.NewDecoder(r.Body).Decode(&group)
+	if err != nil {
+		return nil, err
+	}
+
+	return &group, nil
+}
+
 func CreateGroup(w http.ResponseWriter, r *http.Request) {
-	if err := service.CreateGroup(); err != nil {
+	group, err := getGroup(r)
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	group, err = service.CreateGroup(group)
+	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
 	}
-	sendJson(w, nil)
+	sendJson(w, group)
 }
 
 func GetGroup(w http.ResponseWriter, r *http.Request) {
@@ -34,12 +52,12 @@ func DeleteGroup(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	err = service.DeleteGroup(id)
+	group, err := service.DeleteGroup(id)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
 	}
-	sendJson(w, nil)
+	sendJson(w, group)
 }
 
 func CreateUserGroupRelation(w http.ResponseWriter, r *http.Request) {
diff --git a/service/planner/handler/user.go b/service/planner/handler/user.go
index 3517dbbddc234c0d91ce85c72a4665d00102b380..ba6daee783b4b16ea9c30e012d5d7ed5bbd4891a 100644
--- a/service/planner/handler/user.go
+++ b/service/planner/handler/user.go
@@ -24,7 +24,8 @@ func CreateUser(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	if err := service.CreateUser(user); err != nil {
+	user, err = service.CreateUser(user)
+	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
 	}
@@ -45,6 +46,15 @@ func GetUser(w http.ResponseWriter, r *http.Request) {
 	sendJson(w, user)
 }
 
+func GetUsers(w http.ResponseWriter, r *http.Request) {
+	users, err := service.GetUsers()
+	if err != nil {
+		http.Error(w, err.Error(), http.StatusBadRequest)
+		return
+	}
+	sendJson(w, users)
+}
+
 func UpdateUser(w http.ResponseWriter, r *http.Request) {
 	id, err := getId(r)
 	if err != nil {
@@ -56,7 +66,7 @@ func UpdateUser(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	err = service.UpdateUser(id, user)
+	user, err = service.UpdateUser(id, user)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
@@ -70,10 +80,10 @@ func DeleteUser(w http.ResponseWriter, r *http.Request) {
 		http.Error(w, err.Error(), http.StatusBadRequest)
 		return
 	}
-	err = service.DeleteUser(id)
+	user, err := service.DeleteUser(id)
 	if err != nil {
 		http.Error(w, err.Error(), http.StatusInternalServerError)
 		return
 	}
-	sendJson(w, nil)
+	sendJson(w, user)
 }
diff --git a/service/planner/main.go b/service/planner/main.go
index 7e3687ebcd8d9370beeade5f1521800845a9a10d..3facd584242064fbbced9426f974821353e73bd5 100644
--- a/service/planner/main.go
+++ b/service/planner/main.go
@@ -2,19 +2,32 @@ package main
 
 import (
 	"fmt"
-	"log"
 	"net/http"
+	"os"
 
 	"github.com/gorilla/mux"
+	log "github.com/sirupsen/logrus"
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/db"
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/handler"
 )
 
 func init() {
+	// init db
 	err := db.Init()
 	if err != nil {
 		log.Fatal(err)
 	}
+
+	// init logger
+	log.SetFormatter(&log.TextFormatter{})
+	log.SetReportCaller(true)
+	level, err := log.ParseLevel(os.Getenv("LOG_LEVEL"))
+	if err != nil {
+		log.Info("Log level not specified, set default to: INFO")
+		log.SetLevel(log.InfoLevel)
+		return
+	}
+	log.SetLevel(level)
 }
 
 func main() {
@@ -27,6 +40,7 @@ func main() {
 	router.HandleFunc("/user/{id}", handler.GetUser).Methods(http.MethodGet)
 	router.HandleFunc("/user/{id}", handler.UpdateUser).Methods(http.MethodPut)
 	router.HandleFunc("/user/{id}", handler.DeleteUser).Methods(http.MethodDelete)
+	router.HandleFunc("/user", handler.GetUsers).Methods(http.MethodGet)
 	router.HandleFunc("/user", handler.CreateUser).Methods(http.MethodPost)
 	router.HandleFunc("/group/{groupId}/{userId}", handler.CreateUserGroupRelation).Methods(http.MethodPost)
 	router.HandleFunc("/group/{groupId}/{userId}", handler.DeleteUserGroupRelation).Methods(http.MethodDelete)
diff --git a/service/planner/model/group.go b/service/planner/model/group.go
index 4a4d419b6d8f4908b2c0fcf6388a76893aab1a8a..8069c0dcaae67e05634cdbe4b4aa773a5ed2da3c 100644
--- a/service/planner/model/group.go
+++ b/service/planner/model/group.go
@@ -2,6 +2,7 @@ package model
 
 type Group struct {
 	ID      int         `json:"id"`
+	Name    string      `json:"name"`
 	UserIDs []int       `json:"userIds"`
 	Meals   []GroupMeal `json:"meals"`
 }
diff --git a/service/planner/model/user.go b/service/planner/model/user.go
index 134adff7d93b241a55bac23c4e8b9c991c3c162b..4acc2cb2df9acbc38416a87dda1b7b8d6217e953 100644
--- a/service/planner/model/user.go
+++ b/service/planner/model/user.go
@@ -8,3 +8,10 @@ type User struct {
 	Meals         []UserMeal     `json:"meals"`
 	ShoppingDates []ShoppingDate `json:"shoppingDates"`
 }
+
+type UserItem struct {
+	ID        int    `json:"id"`
+	Mail      string `json:"mail"`
+	FirstName string `json:"firstName"`
+	LastName  string `json:"lastName"`
+}
diff --git a/service/planner/service/group.go b/service/planner/service/group.go
index e844a68cf9a33e8d9243d4e1a8b006f60d7ae94f..018a81914d7f22211ae4aaf082f956cde5f8fcf8 100644
--- a/service/planner/service/group.go
+++ b/service/planner/service/group.go
@@ -5,13 +5,13 @@ import (
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/model"
 )
 
-func CreateGroup() error {
-	err := db.CreateGroup()
+func CreateGroup(group *model.Group) (*model.Group, error) {
+	group, err := db.CreateGroup(group.Name)
 	if err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return group, nil
 }
 
 func GetGroup(id int) (*model.Group, error) {
@@ -23,13 +23,13 @@ func GetGroup(id int) (*model.Group, error) {
 	return group, nil
 }
 
-func DeleteGroup(id int) error {
-	err := db.DeleteGroup(id)
+func DeleteGroup(id int) (*model.Group, error) {
+	group, err := db.DeleteGroup(id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return group, nil
 }
 
 func CreateUserGroupRelation(userId int, groupId int) error {
diff --git a/service/planner/service/user.go b/service/planner/service/user.go
index 1426ca0286d39c0d208da46cb0647c54018d2b92..53e9d169db41f3fb3d0b671090201d15be063311 100644
--- a/service/planner/service/user.go
+++ b/service/planner/service/user.go
@@ -5,13 +5,13 @@ import (
 	"gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner/model"
 )
 
-func CreateUser(user *model.User) error {
-	err := db.CreateUser(user.Mail, user.FirstName, user.LastName)
+func CreateUser(user *model.User) (*model.User, error) {
+	user, err := db.CreateUser(user.Mail, user.FirstName, user.LastName)
 	if err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return user, nil
 }
 
 func GetUser(id int) (*model.User, error) {
@@ -23,20 +23,29 @@ func GetUser(id int) (*model.User, error) {
 	return user, nil
 }
 
-func UpdateUser(id int, user *model.User) error {
-	err := db.UpdateUser(id, user.Mail, user.FirstName, user.LastName)
+func GetUsers() ([]*model.UserItem, error) {
+	users, err := db.GetUsers()
+	if err != nil {
+		return nil, err
+	}
+
+	return users, nil
+}
+
+func UpdateUser(id int, user *model.User) (*model.User, error) {
+	user, err := db.UpdateUser(id, user.Mail, user.FirstName, user.LastName)
 	if err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return user, nil
 }
 
-func DeleteUser(id int) error {
-	err := db.DeleteUser(id)
+func DeleteUser(id int) (*model.User, error) {
+	user, err := db.DeleteUser(id)
 	if err != nil {
-		return err
+		return nil, err
 	}
 
-	return nil
+	return user, nil
 }