diff --git a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
index 7c02aab1173deb07cca6112cd5cfd5e243ffabb1..4d058aa7dbb5ac391550603c7a4499a865f49f09 100644
--- a/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
+++ b/app/src/main/java/com/futo/circles/di/DataSourceModule.kt
@@ -2,6 +2,7 @@ package com.futo.circles.di
 
 import com.futo.circles.ui.groups.timeline.data_source.GroupTimelineBuilder
 import com.futo.circles.ui.groups.timeline.data_source.GroupTimelineDatasource
+import com.futo.circles.ui.groups.timeline.invite.data_source.InviteMembersDataSource
 import com.futo.circles.ui.log_in.data_source.LoginDataSource
 import org.koin.dsl.module
 
@@ -11,4 +12,6 @@ val dataSourceModule = module {
     factory { (roomId: String) -> GroupTimelineDatasource(roomId, get()) }
 
     factory { GroupTimelineBuilder() }
+
+    factory { (roomId: String) -> InviteMembersDataSource(roomId, get()) }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/di/UiModule.kt b/app/src/main/java/com/futo/circles/di/UiModule.kt
index f866568372e9371adaf2dcb7c84b98c82de18411..ab3497df8a27fbf01a1ba3ea8567dfc09075c816 100644
--- a/app/src/main/java/com/futo/circles/di/UiModule.kt
+++ b/app/src/main/java/com/futo/circles/di/UiModule.kt
@@ -2,6 +2,7 @@ package com.futo.circles.di
 
 import com.futo.circles.ui.groups.GroupsViewModel
 import com.futo.circles.ui.groups.timeline.GroupTimelineViewModel
+import com.futo.circles.ui.groups.timeline.invite.InviteMembersViewModel
 import com.futo.circles.ui.log_in.LogInViewModel
 import org.koin.androidx.viewmodel.dsl.viewModel
 import org.koin.core.parameter.parametersOf
@@ -11,4 +12,5 @@ val uiModule = module {
     viewModel { LogInViewModel(get()) }
     viewModel { GroupsViewModel() }
     viewModel { (roomId: String) -> GroupTimelineViewModel(get { parametersOf(roomId) }) }
+    viewModel { (roomId: String) -> InviteMembersViewModel(get { parametersOf(roomId) }) }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
index 8964599d8764a06c3cea9c9dadcdd23a927cd09a..b679d05c2ae118ce34804cff0a9922358fb4b7cf 100644
--- a/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/GroupTimelineFragment.kt
@@ -1,8 +1,14 @@
 package com.futo.circles.ui.groups.timeline
 
+import android.annotation.SuppressLint
 import android.os.Bundle
+import android.view.Menu
+import android.view.MenuInflater
+import android.view.MenuItem
 import android.view.View
+import androidx.appcompat.view.menu.MenuBuilder
 import androidx.fragment.app.Fragment
+import androidx.navigation.fragment.findNavController
 import androidx.navigation.fragment.navArgs
 import by.kirich1409.viewbindingdelegate.viewBinding
 import com.futo.circles.R
@@ -19,6 +25,7 @@ import com.futo.circles.ui.view.GroupPostListener
 import org.koin.androidx.viewmodel.ext.android.viewModel
 import org.koin.core.parameter.parametersOf
 
+
 class GroupTimelineFragment : Fragment(R.layout.group_timeline_fragment), GroupPostListener {
 
     private val args: GroupTimelineFragmentArgs by navArgs()
@@ -31,6 +38,7 @@ class GroupTimelineFragment : Fragment(R.layout.group_timeline_fragment), GroupP
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         super.onViewCreated(view, savedInstanceState)
+        setHasOptionsMenu(true)
 
         binding.tvGroupTimeline.apply {
             adapter = listAdapter
@@ -44,6 +52,32 @@ class GroupTimelineFragment : Fragment(R.layout.group_timeline_fragment), GroupP
         setupObservers()
     }
 
+    @SuppressLint("RestrictedApi")
+    override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
+        menu.clear()
+        (menu as? MenuBuilder)?.setOptionalIconsVisible(true)
+        inflater.inflate(R.menu.group_timeline_menu, menu)
+        super.onCreateOptionsMenu(menu, inflater)
+    }
+
+    override fun onOptionsItemSelected(item: MenuItem): Boolean {
+        when (item.itemId) {
+            R.id.inviteMembers -> {
+                navigateToInviteMembers()
+                return true
+            }
+        }
+        return super.onOptionsItemSelected(item)
+    }
+
+    private fun navigateToInviteMembers() {
+        findNavController().navigate(
+            GroupTimelineFragmentDirections.actionGroupTimelineFragmentToInviteMembersDialogFragment(
+                args.roomId
+            )
+        )
+    }
+
     private fun setupObservers() {
         with(viewModel) {
             titleLiveData.observeData(this@GroupTimelineFragment) { title -> setToolbarTitle(title) }
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt
new file mode 100644
index 0000000000000000000000000000000000000000..60ceb2d1aca11cb8af8c8a75814005c903cb428e
--- /dev/null
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/InviteMembersViewModel.kt
@@ -0,0 +1,14 @@
+package com.futo.circles.ui.groups.timeline.invite
+
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import com.futo.circles.ui.groups.timeline.invite.data_source.InviteMembersDataSource
+
+class InviteMembersViewModel(
+    private val dataSource: InviteMembersDataSource
+) : ViewModel() {
+
+    val titleLiveData = MutableLiveData(dataSource.getInviteTitle())
+
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt b/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt
new file mode 100644
index 0000000000000000000000000000000000000000..4073535e8a9e7ee303a2020115bc2ea4bdd397e7
--- /dev/null
+++ b/app/src/main/java/com/futo/circles/ui/groups/timeline/invite/data_source/InviteMembersDataSource.kt
@@ -0,0 +1,21 @@
+package com.futo.circles.ui.groups.timeline.invite.data_source
+
+import android.content.Context
+import com.futo.circles.R
+import com.futo.circles.extensions.nameOrId
+import com.futo.circles.provider.MatrixSessionProvider
+import org.matrix.android.sdk.api.session.room.timeline.Timeline
+
+class InviteMembersDataSource(
+    private val roomId: String,
+    private val context: Context
+) : Timeline.Listener {
+
+    private val room = MatrixSessionProvider.currentSession?.getRoom(roomId)
+
+    fun getInviteTitle() = context.getString(
+        R.string.invite_members_to_format,
+        room?.roomSummary()?.nameOrId() ?: roomId
+    )
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 1c5fa8ee8a31bf1a0fe00d36e39464b1aedeaeb2..1aa6df8883c85bc348ecc6e8ac04e0f66284b8b0 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -18,5 +18,6 @@
     <color name="pink">#FF2D55</color>
     <color name="divider_color">#ddd</color>
     <color name="gray">#8E8E93</color>
+    <color name="inactive_menu_icon_color">#99000000</color>
 
 </resources>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 6e2137b5289527d5e89a7729edfba4c60d3f2a08..d7fa7a453a980c3889ba8a1d57b318fc9556c998 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -27,6 +27,9 @@
     <string name="share">Share</string>
     <string name="hide_replies">Hide replies</string>
 
+    <string name="invite_members">Invite members</string>
+    <string name="invite_members_to_format">Invite members to %s</string>
+
     <plurals name="member_plurals">
         <item quantity="one">%d member</item>
         <item quantity="other">%d members</item>
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index d7bf13054ddff5ce94281bea2d6eb72d00cf9041..0ddfeee5c88a2b6395ba1245cb22c8892a092a12 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,4 +1,4 @@
-<resources xmlns:tools="http://schemas.android.com/tools">
+<resources>
     <!-- Base application theme. -->
     <style name="Theme.Circles" parent="Theme.MaterialComponents.Light.NoActionBar">
         <!-- Primary brand color. -->