diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
index 4ca6c60664b9aebf50ddb26c7ba5074ec22ae660..e0a8f63cc2b8cb254013c96de575e89b06ccf636 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiaryActivity.kt
@@ -1,3 +1,46 @@
 package de.rki.coronawarnapp.contactdiary.ui
 
-class ContactDiaryActivity
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.FragmentManager
+import dagger.android.AndroidInjector
+import dagger.android.DispatchingAndroidInjector
+import dagger.android.HasAndroidInjector
+import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.util.di.AppInjector
+import javax.inject.Inject
+
+/**
+ * This activity holds all the contact diary fragments
+ */
+class ContactDiaryActivity : AppCompatActivity(), HasAndroidInjector {
+    companion object {
+        fun start(context: Context) {
+            context.startActivity(Intent(context, ContactDiaryActivity::class.java))
+        }
+    }
+
+    @Inject lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Any>
+    override fun androidInjector(): AndroidInjector<Any> = dispatchingAndroidInjector
+
+    private val FragmentManager.currentNavigationFragment: Fragment?
+        get() = primaryNavigationFragment?.childFragmentManager?.fragments?.first()
+
+    override fun onCreate(savedInstanceState: Bundle?) {
+        AppInjector.setup(this)
+        super.onCreate(savedInstanceState)
+        setContentView(R.layout.contact_diary_activity)
+    }
+
+    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
+        super.onActivityResult(requestCode, resultCode, data)
+        supportFragmentManager.currentNavigationFragment?.onActivityResult(
+            requestCode,
+            resultCode,
+            data
+        )
+    }
+}
diff --git a/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml b/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cff3bed3fa3ec1b0ded251ab818b382bc28b0f69
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    tools:context="de.rki.coronawarnapp.contactdiary.ui.ContactDiaryActivity">
+
+    <androidx.fragment.app.FragmentContainerView
+        android:id="@+id/contact_diary_fragment_container"
+        android:name="androidx.navigation.fragment.NavHostFragment"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        app:defaultNavHost="true"
+        app:navGraph="@navigation/contact_diary_nav_graph" />
+
+</androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml
new file mode 100644
index 0000000000000000000000000000000000000000..639ccd7ec8372ee044117e4787019366d54fab15
--- /dev/null
+++ b/Corona-Warn-App/src/main/res/navigation/contact_diary_nav_graph.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<navigation xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/contact_diary_nav_graph"></navigation>