Status: Pending Google OAuth verification. The two-way Google Calendar sync is built into the app but disabled while we complete Google's OAuth review process. Until that's approved, the in-app calendar works as a standalone calendar (tasks, events, appointments, recurring) and you can export individual events as
.icsfiles to add to Google Calendar manually.
When the integration goes live, you'll be able to Settings → Google Calendar → Connect Google Calendar and:
- Tasks, events, and meetings you create in Groundbase will show up on your Google Calendar within seconds (web/mobile/AI writes) or 1-2 minutes (desktop writes).
- Changes you make in Google Calendar will sync back to Groundbase within 5 minutes — reschedule a meeting, edit the title, update the location, and Groundbase picks it up.
- Sign in once from any device. The connection is account-wide.
How it'll work (preview)
The OAuth flow opens your default browser to Google's sign-in. After you pick an account, review the requested scopes (calendar.events for create/read/update + calendar.readonly for the inbound sync), and click Allow, you're redirected back to the Settings page with a "Connected" banner.
We never see your Google password. The OAuth flow gives us a refresh token that's stored encrypted in Groundbase's cloud database — same encryption as your email IMAP password.
What syncs
| Groundbase | Google Calendar |
|---|---|
Task with due_at (no time) | All-day event on the due date |
Task with due_at and end_at | Timed event from start to end |
Event (kind=event) | Timed event |
Meeting (kind=meeting) | Timed event with location set + optional SMS reminders to the linked contact |
| Task marked done | Event title gets a ✓ prefix |
| Task deleted | Event deleted from Google Calendar |
The contact name, deal name, and any notes you put on the task come through in the event description. Click the event title in Google Cal → Open in Groundbase link in the description (added in a future update).
Task vs Event vs Meeting — what's the difference?
When you create something on the Groundbase calendar, you pick a kind. The differences:
| Kind | What it is | Has time window? | Has location? | Recurs? |
|---|---|---|---|---|
| Task | Something to do by a deadline | Just a due date (optional time) | No | Yes (daily / weekly / monthly / yearly) |
| Event | A scheduled block with no location | Yes — start + end | No | No |
| Meeting | A scheduled block AT a place + optional SMS reminders to the linked contact | Yes — start + end | Yes — address, video link, room | No |
In the calendar view, each kind has its own color so you can read your day at a glance:
- Red = task
- Green = event
- Blue = meeting
When you click a date with Google-only items, you'll see a small "+N from Google Cal" badge — those are events you created directly in Google Calendar (not in Groundbase). They render so your calendar reflects reality, but they're not stored as Groundbase tasks since they're not tied to a contact. To bring one into Groundbase, create a matching event manually and delete the Google-only one (proper "import + bind to contact" flow is on the roadmap).
What DOESN'T sync (yet)
- Calendar events you create directly in Google Calendar (not in Groundbase) are intentionally ignored on inbound sync. They're not tied to a Groundbase contact, so we don't know where to file them. A "Connect this event to a contact" import flow is on the roadmap.
- Other calendars in your Google account. We sync to your primary calendar only. Multi-calendar support is planned.
- Recurring events. Tomorrow's instance of a recurring task syncs; if you reschedule it in Google Cal, only that instance updates back. A series-wide edit needs a series-aware sync engine we haven't built yet.
Sync timing
| Action | Latency |
|---|---|
| Create task on web / mobile / via AI | ~5 seconds |
| Create task on Windows desktop app | 1-2 minutes (background cron) |
| Edit event in Google Calendar | Within 5 minutes (throttled inbound sync) |
| Click Sync now in Settings | Immediate |
The desktop-app latency is because the desktop writes directly to our database for speed (no API round-trip), so a server-side background process catches the change instead. For most calendar use this is unnoticeable.
Disconnecting
Settings → Google Calendar → Disconnect.
We immediately stop syncing and revoke our access token at Google. Events we previously created in your Google Calendar stay there — Google doesn't let us bulk-delete them via the OAuth flow. Delete them manually in Google Cal if you want a clean break.
Troubleshooting
"Last sync had an issue" banner. Click Sync now. If it persists, disconnect and reconnect — your Google session token may have expired (rare; happens if you revoked Groundbase from your Google account settings, or if Google rotated the refresh token).
Event isn't showing up in Google Cal. Possible causes:
- The task has no
due_atorend_at— we can't anchor it to a date - You're connected to one Google account but viewing another in Google Cal — check the account picker top-right of Google Cal
- You created the task on desktop within the last 2 minutes — wait for the next cron tick or hit Sync now
Event isn't syncing back from Google. We only sync back events that Groundbase originally created (those have an internal marker). Events you create directly in Google Cal are ignored — see "What doesn't sync" above.