Connect Your Calendars to Oatmeal
Oatmeal doesn’t have a “Connect Google Calendar” button. That’s on purpose.
Instead of building separate integrations for Google, Microsoft, iCloud, and every other calendar provider, Oatmeal reads from the same calendar database that Apple Calendar uses. Add your account to macOS once, and every app that uses calendars — including Oatmeal — gets your events automatically.
No API keys. No OAuth popups. No “sign in with Google” inside a third-party app. You configure your calendars at the system level, and Oatmeal inherits them.
Here’s how to set it up.
How it works
macOS has a built-in framework called EventKit that gives apps read access to your calendar data. When you add a Google or Microsoft account in System Settings, macOS syncs your events into a local database. Oatmeal reads from that database — the same one Apple Calendar, Fantastical, and every other calendar app on your Mac uses.
This means any calendar provider that macOS supports works in Oatmeal automatically: Google, Outlook, iCloud, Exchange, Yahoo, CalDAV, even self-hosted Nextcloud. One integration covers all of them.
When you first open Oatmeal, it’ll ask for permission to access your calendars. Grant it, and your upcoming meetings appear in the sidebar. That’s the entire setup — unless you haven’t added your calendar accounts to macOS yet.
Google Calendar
- Open System Settings (click the Apple menu in the top-left corner, or search for it with Spotlight).
- Click Internet Accounts in the sidebar.
- Click Add Account… on the right side.
- Select Google.
- Sign in with your Google account in the browser window that appears. You’ll see a permissions screen — make sure Calendars is checked (you can uncheck Mail and Contacts if you only want calendar sync), then click Continue.
6. Back in System Settings, you’ll see toggles for Mail, Contacts, Calendars, and Notes. Make sure Calendars is turned on.
7. Open Apple Calendar to verify your events are syncing. You should see your Google Calendar events within a few seconds.
8. Open Oatmeal. Your meetings should appear automatically.
If you use multiple Google accounts (personal and work, for example), repeat this process for each one. Every account you add shows up as a separate calendar source in Oatmeal.
Microsoft Outlook and Exchange
The process is nearly identical, with one extra consideration for corporate accounts.
- Open System Settings and go to Internet Accounts.
- Click Add Account… and select Microsoft Exchange. This works for both corporate Exchange accounts and personal Outlook.com/Hotmail addresses.
- Sign in with your work or school Microsoft account.
- If your organization uses multi-factor authentication, complete the verification step.
- Toggle Calendars on.
- Open Apple Calendar to confirm your Outlook events appear.
- Open Oatmeal.
A note on corporate accounts: Some organizations restrict third-party access to Exchange data through mobile device management (MDM) or conditional access policies. If macOS can’t connect to your Exchange server, you may need to check with your IT department. The issue isn’t Oatmeal-specific — it’s whether macOS itself is allowed to sync with your org’s Exchange instance.
iCloud Calendar
If you’re signed into iCloud on your Mac — and most people are — your iCloud calendars are probably already connected. To verify:
- Open System Settings and click your Apple Account at the top.
- Click iCloud.
- Click See All next to “Saved to iCloud” and make sure Calendars is toggled on.
That’s it. If you create events in Apple Calendar, they’re already in iCloud and already visible to Oatmeal.
Troubleshooting
Oatmeal says “no calendars found.” Open System Settings > Internet Accounts and check that at least one account has the Calendars toggle enabled. If you recently added an account, give it a minute to complete the initial sync.
Events aren’t showing up in Oatmeal. Open Apple Calendar first and wait for it to refresh. macOS sometimes delays calendar sync until an app requests it. Once events appear in Apple Calendar, relaunch Oatmeal and they should be there.
Calendar permission was denied. If you accidentally denied Oatmeal calendar access, you can fix it: go to System Settings > Privacy & Security > Calendars and toggle Oatmeal on.
Corporate Exchange events are missing. Check with your IT team. Some organizations block calendar sync to non-managed apps or require device enrollment. If Apple Calendar can see your Exchange events, Oatmeal can too. If Apple Calendar can’t, the issue is at the macOS level.
Multiple accounts show duplicate events. This usually means the same event exists on two calendar providers (e.g., your Google Calendar is mirrored to Exchange). Oatmeal shows what macOS shows. To fix this, remove the duplicate calendar source in System Settings > Internet Accounts, or disable the Calendars toggle on one of the accounts.
Privacy concern: does Oatmeal upload my calendar data? No. Oatmeal reads calendar data locally through EventKit. There are no network requests for calendar information. Your events stay on your Mac — that’s the entire point of local-first architecture.
Why not direct API integration?
You might wonder why Oatmeal doesn’t connect to Google Calendar or Microsoft Graph directly, the way most SaaS tools do.
Fewer moving parts. Direct API integration means managing OAuth tokens, handling token refresh, dealing with API rate limits, and building separate auth flows for each provider. EventKit replaces all of that with a single local read.
Broader compatibility. macOS supports Google, Microsoft, iCloud, Yahoo, CalDAV, and any standards-compliant calendar server. By using EventKit, Oatmeal automatically works with every provider Apple supports — including ones we’ve never tested against.
Better privacy. When Oatmeal reads your calendar through EventKit, the data never touches our servers. There’s no OAuth token for us to store, no API call for us to proxy. Calendar data flows from your provider to macOS to Oatmeal, all on your machine.
Reliability. Apple has spent two decades making calendar sync work across every corporate Exchange configuration, every Google account edge case, every iCloud conflict. We’d rather inherit that battle-tested infrastructure than rebuild it.
The tradeoff is that Oatmeal can’t access calendars on a machine where the account hasn’t been added to macOS. For a local-first desktop app, that’s not a tradeoff at all — it’s the design.