diff --git a/web/calendar/filter-panel.react.js b/web/calendar/filter-panel.react.js
--- a/web/calendar/filter-panel.react.js
+++ b/web/calendar/filter-panel.react.js
@@ -36,6 +36,7 @@
   useFilterThreadInfos,
   useFilterThreadSearchIndex,
 } from '../selectors/calendar-selectors';
+import { filteredCommunityThreadIDsSelector } from '../selectors/thread-selectors';
 import { MagnifyingGlass } from '../vectors.react';
 import css from './filter-panel.css';
 
@@ -43,6 +44,7 @@
   +filterThreadInfos: $ReadOnlyArray<FilterThreadInfo>,
   +filterThreadSearchIndex: SearchIndex,
   +filteredThreadIDs: ?$ReadOnlySet<string>,
+  +filteredCommunityThreadIDs: ?$ReadOnlySet<string>,
   +includeDeleted: boolean,
   +dispatch: Dispatch,
   +pushModal: PushModal,
@@ -66,10 +68,20 @@
     return this.props.filteredThreadIDs.has(threadID);
   }
 
+  inCurrentCommunity(threadID: string): boolean {
+    if (!this.props.filteredCommunityThreadIDs) {
+      return true;
+    }
+    return this.props.filteredCommunityThreadIDs.has(threadID);
+  }
+
   render() {
-    const filterThreadInfos = this.state.query
+    let filterThreadInfos = this.state.query
       ? this.state.searchResults
       : this.props.filterThreadInfos;
+    filterThreadInfos = filterThreadInfos.filter(item =>
+      this.inCurrentCommunity(item.threadInfo.id),
+    );
 
     let filters = [];
     if (!this.state.query || filterThreadInfos.length > 0) {
@@ -79,7 +91,11 @@
           onToggle={this.onToggleAll}
           collapsed={this.state.collapsed}
           onCollapse={this.onCollapse}
-          selected={!this.props.filteredThreadIDs}
+          selected={
+            !this.props.filteredThreadIDs ||
+            this.props.filteredThreadIDs.size ===
+              this.props.filteredCommunityThreadIDs?.size
+          }
           key="all"
         />,
       );
@@ -180,7 +196,10 @@
   };
 
   onToggleAll = (value: boolean) => {
-    this.setFilterThreads(value ? null : []);
+    const allChats = this.props.filteredCommunityThreadIDs
+      ? Array.from(this.props.filteredCommunityThreadIDs)
+      : null;
+    this.setFilterThreads(value ? allChats : []);
   };
 
   onClickOnly = (threadID: string) => {
@@ -362,6 +381,9 @@
 const ConnectedFilterPanel: React.ComponentType<{}> = React.memo<{}>(
   function ConnectedFilterPanel(): React.Node {
     const filteredThreadIDs = useSelector(filteredThreadIDsSelector);
+    const filteredCommunityThreadIDs = useSelector(
+      filteredCommunityThreadIDsSelector,
+    );
     const filterThreadInfos = useFilterThreadInfos();
     const filterThreadSearchIndex = useFilterThreadSearchIndex();
     const includeDeleted = useSelector(includeDeletedSelector);
@@ -371,6 +393,7 @@
     return (
       <FilterPanel
         filteredThreadIDs={filteredThreadIDs}
+        filteredCommunityThreadIDs={filteredCommunityThreadIDs}
         filterThreadInfos={filterThreadInfos}
         filterThreadSearchIndex={filterThreadSearchIndex}
         includeDeleted={includeDeleted}