Calendar Sync Settings
Connect your Google Calendar to Agency Hero for automatic meeting discovery and bot scheduling. Control which calendars sync, filter out noise with keyword rules, and manage AI-powered meeting analysis—all from Settings → Calendar.
- Published
- 3/9/2026
Calendar Sync Settings
The Calendar Sync Settings page (Settings → Calendar) gives you full control over how Agency Hero connects to Google Calendar — so the right meetings are discovered, bots are queued on time, and your workspace stays free of noise. From here you can connect your account, choose which calendars to include, configure event filters, and manage AI-powered meeting analysis.
Connecting Google Calendar
How the connection works
Click Connect Google Calendar to open the Google OAuth authorization window. Agency Hero requests read-only access to your calendar — specifically the calendar.readonly and calendar.events.readonly scopes — which means it can never create, edit, or delete events on your behalf.
After you approve access in Google, the authorization window closes and an initial sync starts automatically in the background. You don’t need to stay on the settings page while this runs.
Initial sync
The initial sync pulls six months of historical meetings plus the next 90 days of upcoming events. Once complete, the Status section shows:
- Initial sync completed at — the exact date and time the import finished
- Meetings queued for lifecycle monitoring — upcoming meetings with a valid conference link that have been registered for bot scheduling
- Synced calendars — the calendar IDs that were processed
While the sync is running, the status shows “Initial sync running” and a live event count. The page updates automatically — no refresh needed.
Connection statuses
| Status | What it means |
|---|---|
| **Connected** (`active`) | Calendar is syncing normally |
| **Initial sync running** (`syncing_initial`) | First import is still in progress — the system is processing your historical and upcoming events for the first time |
| **Waiting for authorization** | OAuth was started but not completed — click **Try Again** |
| **Disconnected** | OAuth was revoked; reconnect to resume |
| **Error** | Something went wrong — try reconnecting |
Status: Connected
When your calendar is connected, the Status panel shows a live summary:
- Initial sync completed at — timestamp of the first full import
- Meetings queued for lifecycle monitoring — how many upcoming meetings were registered for bot scheduling
- Synced calendars — which calendar IDs were processed
- Last incremental sync at — timestamp of the most recent background update
- Events processed — total events handled in the latest incremental sync. This count is split into upcoming (future events) and past events so you can see exactly what was touched.
Understanding connection status labels: Theactivestatus means your calendar is fully connected and syncing normally. If you seesyncing_initial, the first-time import is still running — this is expected after a fresh connection and will resolve automatically.
Incremental syncs run continuously in the background. You normally don’t need to intervene.
Resync upcoming meetings
The Resync upcoming meetings button manually triggers a fresh incremental sync. Use it if changes made in Google Calendar haven’t appeared in Agency Hero yet, or after adjusting filters when you want an immediate refresh. The button is disabled while a sync is already in progress.
Disconnect
The red Disconnect button stops all future syncing and revokes Agency Hero’s read access to your Google account. A confirmation dialog appears with an optional “Forget imported data” toggle:
- Disconnect only — OAuth credentials are revoked and new syncs stop. All meetings already imported remain in Agency Hero.
- Disconnect & forget — In addition to revoking credentials, all data imported from this Google Calendar connection is permanently and irreversibly deleted: source events, meetings, attendees, meeting series, and related history.
Before the delete activates: You must check a confirmation checkbox acknowledging that this action is permanent and irreversible. The delete button remains disabled until that box is checked.
Tip: If you connected the wrong Google account, use Disconnect & forget to cleanly wipe all associated data before reconnecting with the correct account.
Calendars
“Choose which calendars should sync. Leave empty to sync everything.”
After the initial sync completes, every calendar discovered on your Google account appears here, each with a Sync and Ignore checkbox.
ℹ️ Default behavior: All calendars sync unless you explicitly Ignore them. You only need to take action if you want to exclude specific calendars — leaving both checkboxes unchecked does not prevent a calendar from syncing.
- Sync — include this calendar in all future imports.
- Ignore — explicitly exclude this calendar; its events will never be imported.
- Neither checked — the calendar syncs by default, as described above.
Changing a calendar’s status takes effect when you click Save changes. If you switch a calendar to Ignore (or remove it from Sync), Agency Hero immediately deletes the events and meetings previously imported from that calendar. A confirmation toast shows how many records were removed.
Each calendar row shows:
- Display name and a Primary badge if applicable
- Calendar ID (usually an email address or Google resource ID)
- Number of events processed from that calendar so far
Event Filters
Event filters control which individual events are imported, regardless of which calendars are selected. These filters apply during every sync — both initial and incremental — and can also be applied retroactively to meetings already in your database.
Ignore availability blocks
Default: On
Skips events that Google marks as transparent — a flag that means the event doesn’t block your time on your calendar. These are typically personal “hold” blocks, out-of-office markers, or auto-created busy events from scheduling apps like Clockwise, Motion, or Reclaim. They’re almost never real meetings worth tracking.
Turn this off only if you specifically need to import transparent events.
Ignore all-day events
Default: Off
Skips all-day entries — events with a date but no specific start or end time. These are commonly used for FYI announcements, company holidays, out-of-office periods, or project milestones. They don’t represent scheduled calls and rarely need meeting intelligence.
Enable this toggle if all-day events are cluttering your meetings list.
Title keywords to ignore
Enter a comma-separated list of keywords. Any event whose title contains one of these keywords is skipped entirely and never imported.
- Matching is case-insensitive —
Bufferandbufferare treated the same. - The keyword can appear anywhere in the title — it’s a substring match, not an exact title match.
- Example:
(clone), Blocked, Hold, Buffer, OOO
This is the most effective way to filter recurring noise such as:
- Calendar clones created by scheduling apps:
(clone) - Focus blocks:
Focus time,Deep work - Manual placeholders:
Blocked,Hold,Busy - Personal events:
Personal,School pickup
After typing your keywords, click Apply keyword filters to stage them, then Save changes to persist.
⚠️ Important: Clicking Apply keyword filters does not save to your account — it only stages your changes in the form. You must also click Save changes at the bottom of the panel for your keywords to take effect.
Title keywords to keep
Enter a comma-separated list of keywords. When this field is non-empty, only events whose titles contain at least one of these keywords are imported. All other events are skipped.
Leave this field empty (the default) to allow all events through — subject to the other active filters.
Use this as a strict allowlist when you only want a specific subset of meetings. For example:
Client, Discovery, Review— import only meetings containing those wordsKickoff, QBR, Sync— keep only named meeting types
Note: The allowlist and blocklist work together. An event must first pass the allowlist check (if set), then must not match the blocklist. If a term appears in both lists, the blocklist wins and the event is skipped.
Apply keyword filters
The Apply keyword filters button (inside the Event filters panel) stages your keyword edits in the form, ready to be saved. It becomes active whenever you’ve edited the keyword fields without yet confirming. After clicking it, a green checkmark confirms the keywords are staged.
This is a local confirmation step. Click Save changes at the bottom to write these keywords to your account.
Reset filters
⚠️ Warning: Reset clears ALL filters — not just keywords. This restores all event filter settings to their defaults:
Ignore availability blocks → On
Ignore all-day events → Off
Title keywords to ignore → empty
Title keywords to keep → empty
You must click Save changes afterward for the reset to be applied to your account.
AI Meeting Insights
Toggle: Allow AI search and analysis of calendar meetings
When enabled, Agency Hero uses AI to make your imported calendar meetings searchable and analyzable — surfacing relevant meetings in search, linking them to workspace context, and enabling post-meeting analysis features.
When disabled, calendar meetings are not analyzed by AI and will not appear in AI-powered search results. Other meeting data (attendees, timestamps, calendar metadata) is still imported, but no AI enrichment is applied.
Privacy note: Meeting content is processed through OpenAI. OpenAI does not use your data to train their models. All processing happens under a data processing agreement — not standard consumer terms.
Toggle this off if your organization’s data policies prohibit sending calendar metadata to third-party AI services. Changes take effect on the next sync cycle.
Saving Your Settings
Save changes
The Save changes button at the bottom of the panel persists all of the following at once:
- Calendar Sync/Ignore selections
- Event filter toggle states (availability blocks, all-day events)
- Keyword changes staged via Apply keyword filters
When filters or calendar selections change, Agency Hero automatically runs an immediate cleanup: events and meetings that no longer match the updated rules are removed from the database. A toast notification confirms the count of removed events and meetings.
Apply filters to all meetings
The Apply filters to all meetings button re-runs your current saved filter rules against all existing meetings in the database — not just future syncs. Use this after:
- Adding a new keyword to the ignore list and wanting to remove matches that were imported before the rule existed
- Enabling Ignore all-day events and wanting to retroactively clear all-day meetings already in your account
After the cleanup runs, Agency Hero automatically triggers a fresh incremental sync to re-import any events that belong under the updated rules.
This operation may delete a significant number of records. Review your filter settings carefully before running it.
Tips & Common Configurations
| Goal | Recommended setup |
|---|---|
| Keep only real client meetings | Enable **Ignore availability blocks** + **Ignore all-day events**; add focus/hold keywords to the ignore list |
| Multi-calendar setup (personal + work) | Use the Calendars section to **Ignore** your personal calendar; leave work calendars on Sync |
| Only track specific meeting types | Add relevant terms to **Title keywords to keep** (e.g., `Discovery, Kickoff, QBR`) |
| Clean up after connecting the wrong account | Use **Disconnect & forget**, then reconnect with the correct account |
| Remove events that slipped through before a filter was added | Add the keyword pattern to the ignore list and click **Apply filters to all meetings** |
| Reconnect after a revoked token | If your calendar disconnects unexpectedly, go to **Settings → Calendar** and click **Connect Google Calendar** to re-authorize |
Related articles
More resources to help you go deeper.
