DenchClaw + Google Calendar: Never Miss a Follow-Up
Google Calendar integration with DenchClaw via gog skill — create follow-up reminders, query upcoming meetings with CRM context, and log outcomes in DuckDB.
DenchClaw + Google Calendar: Never Miss a Follow-Up
The most common reason deals stall is simple: someone forgot to follow up. DenchClaw connects to Google Calendar through the gog skill, so you can create reminders directly from contact records, query what meetings are coming up with full CRM context, and log meeting outcomes back to the entry — all from Telegram, WhatsApp, or Discord.
Here's how to set it up.
Connecting Google Calendar to DenchClaw#
Calendar integration is part of the same gog skill as Gmail. If you've already set up Gmail, Calendar is already available.
Step 1: Install and authenticate gog#
If you haven't done this yet:
npx denchclaw skill install gog
gog auth loginDuring the OAuth flow, grant Calendar read/write access. This allows DenchClaw to read your events and create new ones.
Step 2: Verify Calendar access#
gog calendar list --days 7This should return your events for the next 7 days. If you see them, you're connected.
Step 3: Enable Calendar in DenchClaw#
Tell DenchClaw:
"I've connected Google Calendar via gog. Use it for scheduling and follow-up reminders."
DenchClaw registers the capability and will use Calendar when you ask scheduling-related questions.
Creating Follow-Up Reminders From CRM Entries#
The most common workflow: you finish a call, want to follow up in a week, and tell DenchClaw to set it up.
"Set a follow-up reminder for Sarah Chen in 5 days"
"Remind me to call John at Acme Corp on Monday at 10am"
"Create a follow-up for everyone in my Proposal stage in 3 business days"
DenchClaw creates the Calendar event linked to the contact record. The event includes the contact's name, company, current deal stage, and any notes you add.
For the batch case ("everyone in Proposal stage"), DenchClaw queries DuckDB first:
SELECT name, company, email, deal_stage
FROM v_contacts
WHERE deal_stage = 'Proposal'
ORDER BY last_contact_date ASC;Then creates individual Calendar reminders for each, spaced out so you're not overwhelming yourself with calls on the same day.
Querying Upcoming Meetings With Contact Context#
Before a meeting, you want context: what was the last conversation about, what's their deal stage, what did you promise to follow up on. DenchClaw gives you this in one query.
From Telegram:
"What meetings do I have tomorrow and what's the CRM context for each?"
DenchClaw:
- Fetches tomorrow's Calendar events via gog
- Extracts attendee email addresses from each event
- Looks up those emails in DuckDB
- Returns event details + CRM context for each match
Example output:
Tomorrow's meetings:
10:00 AM — Sarah Chen (Acme Corp)
Stage: Proposal | Last contact: 5 days ago
Notes: Sent proposal for $24k/year, waiting on budget approval
Action: Follow up on proposal decision
2:00 PM — Team standup (internal)
No CRM match
3:30 PM — John Martinez (Globex)
Stage: Discovery | Last contact: 12 days ago
Notes: Interested in enterprise plan, needs security review
Action: Send security whitepaper before this call
This replaces the 15 minutes of digging through notes and emails before each meeting.
Raw Calendar queries#
# List events for the next 7 days
gog calendar list --days 7
# List events for a specific date
gog calendar list --date 2026-04-01
# Search for events by keyword
gog calendar search "Acme Corp"
# List events with a specific attendee
gog calendar list --attendee sarah@acme.comUsing the Action Field to Schedule Meetings#
DenchClaw's Action fields let you trigger scheduling directly from a contact record.
Set up a "Schedule Meeting" action#
"Add an Action field called 'Schedule Meeting' to the Contacts object"
This creates a field that, when triggered, generates a Google Calendar event creation URL pre-filled with:
- The contact's name in the event title ("Meeting with Sarah Chen")
- The contact's email as an attendee
- A default duration of 30 minutes
When you click "Schedule Meeting" in the DenchClaw web UI, it opens Google Calendar's new event form in your browser with the relevant fields pre-populated.
From Telegram:
"Schedule a meeting with Sarah Chen for next Thursday at 2pm"
DenchClaw creates the Calendar event directly via gog, sends the invite to Sarah's email, and logs the scheduled meeting as a pending interaction in DuckDB.
Checking the DuckDB record after scheduling#
SELECT
c.name,
c.company,
i.date,
i.type,
i.status,
i.notes
FROM v_contacts c
JOIN v_interactions i ON i.contact_id = c.id
WHERE c.name = 'Sarah Chen'
ORDER BY i.date DESC
LIMIT 5;Syncing Meeting Outcomes Back to Entries#
After a meeting, log what happened:
"Log that my call with Sarah Chen was productive — she's moving forward,
send a contract next week"
DenchClaw:
- Finds the recent meeting event in Calendar
- Updates the contact's status in DuckDB
- Logs an interaction entry with your notes
- Creates a follow-up Calendar reminder ("Send contract to Sarah Chen")
You can also do this more specifically:
"Mark my 3pm meeting with John Martinez as completed.
Notes: needs IT approval, follow up in 2 weeks.
Move him to Technical Review stage."
DenchClaw updates three things:
- The interaction record (status: completed, with your notes)
- The contact's deal stage (Technical Review)
- A new Calendar reminder 2 weeks out
Querying meeting outcomes#
-- Meetings in the last 30 days with outcomes
SELECT
c.name,
c.company,
i.date,
i.notes,
c.deal_stage
FROM v_contacts c
JOIN v_interactions i ON i.contact_id = c.id
WHERE i.type = 'meeting'
AND i.date > NOW() - INTERVAL '30 days'
ORDER BY i.date DESC;-- Contacts with meetings but no follow-up scheduled
SELECT
c.name,
c.company,
MAX(i.date) AS last_meeting
FROM v_contacts c
JOIN v_interactions i ON i.contact_id = c.id
WHERE i.type = 'meeting'
GROUP BY c.name, c.company
HAVING MAX(i.date) < NOW() - INTERVAL '7 days'
AND c.deal_stage NOT IN ('Closed Won', 'Closed Lost')
ORDER BY last_meeting ASC;Natural Language Calendar Queries Via Telegram#
One of the most useful features is just asking questions about your calendar in plain English, with CRM awareness:
"Who am I meeting with this week that I haven't emailed in the last month?"
DenchClaw fetches the week's Calendar events, cross-references attendee emails with DuckDB, checks email interaction history, and returns the filtered list.
"How many discovery calls do I have scheduled this month?"
DenchClaw searches Calendar for events matching patterns ("discovery", "intro call", "30-min chat") and counts them.
"Block 2 hours this Friday for admin work"
DenchClaw creates a Calendar event called "Admin / Focus time" on Friday.
"What did I discuss with Acme Corp in our last meeting?"
DenchClaw checks the interaction log in DuckDB for the most recent meeting with Acme contacts and returns your logged notes.
Follow-Up Cadence Automation#
You can set up a recurring check for contacts that need follow-up:
"Every Monday morning, check which active deals haven't had contact in 10+ days
and remind me about each one"
DenchClaw schedules this as a recurring task. Each Monday it:
SELECT
c.name,
c.company,
c.deal_stage,
MAX(i.date) AS last_contact,
DATEDIFF('day', MAX(i.date), NOW()) AS days_silent
FROM v_contacts c
LEFT JOIN v_interactions i ON i.contact_id = c.id
WHERE c.status = 'Active'
GROUP BY c.name, c.company, c.deal_stage
HAVING days_silent >= 10
OR last_contact IS NULL
ORDER BY days_silent DESC NULLS LAST;Then creates individual Calendar reminders for each contact that needs a touchpoint.
Frequently Asked Questions#
Can DenchClaw distinguish between meetings and other Calendar events?
Yes. DenchClaw looks for external attendees (email addresses not on your domain) to identify prospect or customer meetings vs. internal events. You can also add a tag or category to events and DenchClaw will filter by that. For example: "Show me all events tagged 'sales call' this month."
What if a meeting attendee isn't in my CRM?
DenchClaw will flag it: "I found a meeting with alex@newcompany.com tomorrow but they're not in your CRM. Want me to create a contact entry?" You can approve in one message.
Can I view Calendar events from DuckDB directly?
Events fetched by gog are available in DuckDB temporarily for analysis. Persistent event data (logged as interactions) lives in the entries and interactions tables. Upcoming event data is fetched live from Calendar each time you query.
Does this work with other calendar systems?
The gog skill specifically integrates with Google Calendar. If you use Outlook Calendar, DenchClaw doesn't have a native skill for that yet, but you can connect through Zapier or Make with the webhook integration.
Can DenchClaw join meetings automatically?
Not currently. DenchClaw can create, update, and query events, but doesn't auto-join video calls. You can ask it to "find the Zoom link for my 3pm call" and it will extract the meeting URL from the Calendar event.
Ready to try DenchClaw? Install in one command: npx denchclaw. Full setup guide →
