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 e0a8f63cc2b8cb254013c96de575e89b06ccf636..189cdf62a134b0d08ee8e0d9275715d4c4557063 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
@@ -6,6 +6,7 @@ import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentManager
+import androidx.navigation.fragment.NavHostFragment
 import dagger.android.AndroidInjector
 import dagger.android.DispatchingAndroidInjector
 import dagger.android.HasAndroidInjector
@@ -23,6 +24,7 @@ class ContactDiaryActivity : AppCompatActivity(), HasAndroidInjector {
         }
     }
 
+    @Inject lateinit var settings: ContactDiarySettings
     @Inject lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Any>
     override fun androidInjector(): AndroidInjector<Any> = dispatchingAndroidInjector
 
@@ -33,6 +35,20 @@ class ContactDiaryActivity : AppCompatActivity(), HasAndroidInjector {
         AppInjector.setup(this)
         super.onCreate(savedInstanceState)
         setContentView(R.layout.contact_diary_activity)
+
+        val navHost = supportFragmentManager.findFragmentById(R.id.contact_diary_fragment_container) as NavHostFragment?
+        val navController = navHost!!.navController
+
+        val navInflater = navController.navInflater
+        val graph = navInflater.inflate(R.navigation.contact_diary_nav_graph)
+
+        if (settings.isOnboarded.value) {
+            graph.startDestination = R.id.contactDiaryOverviewFragment
+        } else {
+            graph.startDestination = R.id.contactDiaryOnboardingFragment
+        }
+
+        navController.graph = graph
     }
 
     override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiarySettings.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiarySettings.kt
new file mode 100644
index 0000000000000000000000000000000000000000..730b20bf1083e902e46313e0a7e3149e1a5fd5d3
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/ContactDiarySettings.kt
@@ -0,0 +1,29 @@
+package de.rki.coronawarnapp.contactdiary.ui
+
+import android.content.Context
+import de.rki.coronawarnapp.util.di.AppContext
+import de.rki.coronawarnapp.util.preferences.clearAndNotify
+import de.rki.coronawarnapp.util.preferences.createFlowPreference
+import javax.inject.Inject
+import javax.inject.Singleton
+
+@Singleton
+class ContactDiarySettings @Inject constructor(
+
+    @AppContext val context: Context
+
+) {
+
+    private val prefs by lazy {
+        context.getSharedPreferences("contact_diary_localdata", Context.MODE_PRIVATE)
+    }
+
+    val isOnboarded = prefs.createFlowPreference(
+        key = "contact_diary_onboarded",
+        defaultValue = false
+    )
+
+    fun clear() {
+        prefs.clearAndNotify()
+    }
+}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/onboarding/ContactDiaryOnboardingFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/onboarding/ContactDiaryOnboardingFragment.kt
index 47e022c4232134437c2bbe4579e8d92b21496d70..a144e4f56cd2a0378a51c8436f6baf8840d453a4 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/onboarding/ContactDiaryOnboardingFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/contactdiary/ui/onboarding/ContactDiaryOnboardingFragment.kt
@@ -5,6 +5,7 @@ import android.view.View
 import androidx.fragment.app.Fragment
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.contactdiary.ui.ContactDiaryActivity
+import de.rki.coronawarnapp.contactdiary.ui.ContactDiarySettings
 import de.rki.coronawarnapp.databinding.ContactDiaryOnboardingFragmentBinding
 import de.rki.coronawarnapp.util.di.AutoInject
 import de.rki.coronawarnapp.util.ui.doNavigate
@@ -17,6 +18,9 @@ import javax.inject.Inject
 class ContactDiaryOnboardingFragment : Fragment(R.layout.contact_diary_onboarding_fragment), AutoInject {
 
     @Inject lateinit var viewModelFactory: CWAViewModelFactoryProvider.Factory
+
+    @Inject lateinit var settings: ContactDiarySettings
+
     private val vm: ContactDiaryOnboardingFragmentViewModel by cwaViewModels { viewModelFactory }
     private val binding: ContactDiaryOnboardingFragmentBinding by viewBindingLazy()
 
@@ -52,6 +56,9 @@ class ContactDiaryOnboardingFragment : Fragment(R.layout.contact_diary_onboardin
                 }
 
                 ContactDiaryOnboardingNavigationEvents.NavigateToOverviewFragment -> {
+
+                    onboardingComplete()
+
                     doNavigate(
                         ContactDiaryOnboardingFragmentDirections
                             .actionContactDiaryOnboardingFragmentToContactDiaryOverviewFragment()
@@ -60,4 +67,8 @@ class ContactDiaryOnboardingFragment : Fragment(R.layout.contact_diary_onboardin
             }
         }
     }
+
+    fun onboardingComplete() {
+        settings.isOnboarded.update { true }
+    }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/DataReset.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/DataReset.kt
index 8d3a150c73d6a7a6c7ef46d183822a1d30a8be13..318368ebf5f76390110d8a3212f17a99ba3efb0e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/DataReset.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/DataReset.kt
@@ -23,6 +23,7 @@ import android.annotation.SuppressLint
 import android.content.Context
 import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.contactdiary.storage.ContactDiaryDatabase
+import de.rki.coronawarnapp.contactdiary.ui.ContactDiarySettings
 import de.rki.coronawarnapp.diagnosiskeys.download.DownloadDiagnosisKeysSettings
 import de.rki.coronawarnapp.diagnosiskeys.storage.KeyCacheRepository
 import de.rki.coronawarnapp.nearby.modules.detectiontracker.ExposureDetectionTracker
@@ -30,7 +31,6 @@ import de.rki.coronawarnapp.risk.storage.RiskLevelStorage
 import de.rki.coronawarnapp.storage.AppDatabase
 import de.rki.coronawarnapp.storage.LocalData
 import de.rki.coronawarnapp.storage.SubmissionRepository
-import de.rki.coronawarnapp.storage.interoperability.InteroperabilityRepository
 import de.rki.coronawarnapp.util.di.AppContext
 import de.rki.coronawarnapp.util.security.SecurityHelper
 import kotlinx.coroutines.sync.Mutex
@@ -47,12 +47,12 @@ class DataReset @Inject constructor(
     @AppContext private val context: Context,
     private val keyCacheRepository: KeyCacheRepository,
     private val appConfigProvider: AppConfigProvider,
-    private val interoperabilityRepository: InteroperabilityRepository,
     private val submissionRepository: SubmissionRepository,
     private val exposureDetectionTracker: ExposureDetectionTracker,
     private val downloadDiagnosisKeysSettings: DownloadDiagnosisKeysSettings,
     private val riskLevelStorage: RiskLevelStorage,
-    private val contactDiaryDatabase: ContactDiaryDatabase
+    private val contactDiaryDatabase: ContactDiaryDatabase,
+    private var contactDiarySettings: ContactDiarySettings
 ) {
 
     private val mutex = Mutex()
@@ -78,6 +78,7 @@ class DataReset @Inject constructor(
         exposureDetectionTracker.clear()
         downloadDiagnosisKeysSettings.clear()
         riskLevelStorage.clear()
+        contactDiarySettings.clear()
 
         // Clear contact diary database
         contactDiaryDatabase.clearAllTables()
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
index f105f4d50aaa6c18abf3a949220649d9a399095f..7d2465983bf4d603475485bbb0b49ca2da3bb1e9 100644
--- a/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
+++ b/Corona-Warn-App/src/main/res/layout/contact_diary_activity.xml
@@ -11,7 +11,6 @@
         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" />
+        app:defaultNavHost="true" />
 
 </androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/Corona-Warn-App/src/main/res/values-de/contact_diary_strings.xml b/Corona-Warn-App/src/main/res/values-de/contact_diary_strings.xml
index 652da189cf4c93c501e324847c42ceceb03c00e9..29be5afee54e8ded510355ab90b03294f2e824d3 100644
--- a/Corona-Warn-App/src/main/res/values-de/contact_diary_strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/contact_diary_strings.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:tools="http://schemas.android.com/tools" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" tools:ignore="MissingTranslation">
+
     <!-- ####################################
                 Contact Diary
     ###################################### -->
diff --git a/Corona-Warn-App/src/main/res/values/contact_diary_strings.xml b/Corona-Warn-App/src/main/res/values/contact_diary_strings.xml
index e64b0e7dadc6659ca65acbe488e708ae4c63588a..3ada5e70f2cdf289f23a910467f91605899c0de7 100644
--- a/Corona-Warn-App/src/main/res/values/contact_diary_strings.xml
+++ b/Corona-Warn-App/src/main/res/values/contact_diary_strings.xml
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:tools="http://schemas.android.com/tools" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" tools:ignore="MissingTranslation">
+
     <!-- ####################################
                Contact Diary
    ###################################### -->