diff --git a/docker-compose.yml b/docker-compose.yml
index c9ea8468e4515b998d5be1a85bbfd942e665d09e..9fa20735a6d021f327e3fa34341a96bfbfaa0157 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,5 +1,9 @@
 services:
   meal:
     build: ./service/meal
+    ports:
+      - "9111:9111"
+  planner:
+    build: ./service/planner
     ports:
       - "8000:8000"
\ No newline at end of file
diff --git a/go.work b/go.work
index a693d95ba149789ef7667e39a4457dbe7c824261..ec3c73a9b83128e2e42a49726eb60f56bba27035 100644
--- a/go.work
+++ b/go.work
@@ -1,3 +1,6 @@
 go 1.20
 
-use ./service/meal
+use (
+	./service/meal
+	./service/planner
+)
diff --git a/service/meal/Dockerfile b/service/meal/Dockerfile
index d6435a9ff5bc2ea1a8d1a078000f911a26d019d8..82b0691576cb4342f7d9e4d5f04f26af72cfdc08 100644
--- a/service/meal/Dockerfile
+++ b/service/meal/Dockerfile
@@ -7,4 +7,4 @@ RUN go mod download
 RUN go install
 
 CMD ["meal"]
-EXPOSE 8000
\ No newline at end of file
+EXPOSE 9111
\ No newline at end of file
diff --git a/service/meal/main.go b/service/meal/main.go
index 04b06ccee28fe4b76d426b90b86666c4c67d9674..b8c4a44562fd0b41b6913b89a9045ac4a7eebda6 100644
--- a/service/meal/main.go
+++ b/service/meal/main.go
@@ -10,7 +10,7 @@ import (
 )
 
 func main() {
-	port := 8000
+	port := 9111
 	router := mux.NewRouter()
 	router.HandleFunc("/random", handler.GetRandomMeal).Methods(http.MethodGet)
 	router.HandleFunc("/search/{value}", handler.SearchMealByName).Methods(http.MethodGet)
diff --git a/service/planner/go.mod b/service/planner/go.mod
index 740c01c4018289ecf7901acda788c25134be2440..5f0565df7aeff6febf83c69d65875759cd3f8b45 100644
--- a/service/planner/go.mod
+++ b/service/planner/go.mod
@@ -1,3 +1,5 @@
 module gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/planner
 
 go 1.20
+
+require github.com/gorilla/mux v1.8.0
diff --git a/service/planner/go.sum b/service/planner/go.sum
new file mode 100644
index 0000000000000000000000000000000000000000..535028803d222b0e4e9174f56529c0ed9fece4e0
--- /dev/null
+++ b/service/planner/go.sum
@@ -0,0 +1,2 @@
+github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI=
+github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So=
diff --git a/service/planner/main.go b/service/planner/main.go
new file mode 100644
index 0000000000000000000000000000000000000000..476fe4f4e4bd3e96ad004d6898bfe26a6e2c1bac
--- /dev/null
+++ b/service/planner/main.go
@@ -0,0 +1,19 @@
+package main
+
+import (
+	"fmt"
+	"log"
+	"net/http"
+
+	"github.com/gorilla/mux"
+)
+
+func main() {
+	port := 8000
+	router := mux.NewRouter()
+
+	fmt.Printf("Server is listening on port :%v\n", port)
+	if err := http.ListenAndServe(fmt.Sprintf(":%v", port), router); err != nil {
+		log.Fatal(err)
+	}
+}
diff --git a/service/planner/model/group.go b/service/planner/model/group.go
new file mode 100644
index 0000000000000000000000000000000000000000..e0eeb9ecb867029fbb5262ba153c182d8cc050ec
--- /dev/null
+++ b/service/planner/model/group.go
@@ -0,0 +1,5 @@
+package model
+
+type Group struct {
+	Users []*User
+}
diff --git a/service/planner/model/meal.go b/service/planner/model/meal.go
new file mode 100644
index 0000000000000000000000000000000000000000..0c8166e470411513b1e710d7c8f3d6e078237675
--- /dev/null
+++ b/service/planner/model/meal.go
@@ -0,0 +1,18 @@
+package model
+
+import "time"
+
+type Meal struct {
+	MealId int
+	Date   time.Time
+}
+
+type MealUser struct {
+	Meal
+	User User
+}
+
+type MealGroup struct {
+	Meal
+	Group Group
+}
diff --git a/service/planner/model/shopping.go b/service/planner/model/shopping.go
new file mode 100644
index 0000000000000000000000000000000000000000..3b843c95f1408bb7b85ba73cc347d6ff339ccc42
--- /dev/null
+++ b/service/planner/model/shopping.go
@@ -0,0 +1,8 @@
+package model
+
+import "time"
+
+type ShoppingDate struct {
+	Date time.Time
+	User User
+}
diff --git a/service/planner/model/user.go b/service/planner/model/user.go
new file mode 100644
index 0000000000000000000000000000000000000000..77ec23ed91b1dd990f243f894998a2efafb4a6bd
--- /dev/null
+++ b/service/planner/model/user.go
@@ -0,0 +1,7 @@
+package model
+
+type User struct {
+	Mail      string
+	FirstName string
+	LastName  string
+}
diff --git a/service/user/go.mod b/service/user/go.mod
deleted file mode 100644
index f19029d34d930bc9d595c42b6baec1d25878f3b8..0000000000000000000000000000000000000000
--- a/service/user/go.mod
+++ /dev/null
@@ -1,3 +0,0 @@
-module gitlab.reutlingen-university.de/yesildas/mealplanner2go/service/user
-
-go 1.20