Overview
The Google Calendar integration:- Syncs events from 14 days in the past to 14 days in the future
- Downloads Google Docs attached to calendar events
- Tracks event changes (new, updated, deleted)
- Converts meeting notes to markdown
- Runs automatically every 5 minutes
Prerequisites
Calendar integration requires Google OAuth setup with both Calendar and Drive API access.
Google OAuth Setup
Follow these steps to connect Google Calendar to Rowboat.Open Google Cloud Console
Go to Google Cloud Console and make sure you’re logged into the Google account you want to use.
Create a New Project
Go to Create Project
- Click Create Project
- Give it a name (e.g.
Rowboat Integration) - Click Create
Enable Required APIs
Enable the following APIs for your project:Google Calendar API:
https://console.cloud.google.com/apis/api/calendar-json.googleapis.comGoogle Drive API:
https://console.cloud.google.com/apis/api/drive.googleapis.comClick Enable for each API.
Configure OAuth Consent Screen
Go to OAuth Consent ScreenApp Information:
- App name:
Rowboat - User support email: Your email
- Choose External
- Add your email address
You do NOT need to publish the app — keeping it in Testing mode is fine.
Add Test Users
If your app is in Testing mode, you must add users manually.Go to Test UsersUnder Test Users:
- Click Add Users
- Add the email address you plan to connect with Rowboat
Create OAuth Client ID
Go to CredentialsClick Create Credentials → OAuth Client IDApplication Type:
- Select: Universal Windows Platform (UWP)
- Name:
Rowboat Desktop - Store ID:
test - Click Create
How It Works
Sync Configuration
The Calendar sync runs with these settings:Event Storage Format
Each calendar event is saved as a JSON file:Meeting Notes Sync
Google Docs attached to events are automatically synced:Sync Window
Rowboat syncs events in a rolling window:Events outside this window are automatically deleted from local storage.
Change Detection
Rowboat tracks three types of changes:New Events
Updated Events
Deleted Events
Activity Logging
Rowboat logs all sync activity:Trigger Manual Sync
You can trigger an immediate sync:Troubleshooting
401 Unauthorized Error
Missing Meeting Notes
Rowboat only syncs Google Docs attachments. Other file types are ignored:PDFs, images, and other file types attached to calendar events are not synced.
Rate Limiting
To avoid API rate limits:- Sync runs every 5 minutes
- Only events within the sync window are processed
- Meeting notes are cached (skipped if file exists)
Files Synced
| Location | Description |
|---|---|
~/rowboat/calendar_sync/{eventId}.json | Event metadata |
~/rowboat/calendar_sync/{eventId}_doc_{title}.md | Meeting notes |
~/rowboat/calendar_sync/sync_state.json | Sync state tracking |
Example Use Cases
Meeting Preparation
“What meetings do I have tomorrow?” Rowboat can search your synced calendar events and provide context from attached meeting notes.Follow-up Tasks
“What action items came out of yesterday’s standup?” Rowboat can read the Google Doc notes attached to the event and extract action items.Schedule Overview
“When am I meeting with the design team this week?” Rowboat searches event metadata including attendees and titles.Privacy & Security
- Read-Only Access: Uses
.readonlyscopes only - Local Storage: All data stored locally on your machine
- No Cloud Sync: Calendar data never sent to external servers
- OAuth Tokens: Securely managed by Google’s OAuth flow