cd /news/ai-agents/i-connected-chatgpt-dots-to-gmail-ca… · home › topics › ai-agents › article
[ARTICLE · art-148900] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=· neutral

I Connected ChatGPT dots to Gmail, Calendar, Slack and Notion to See What It Can and Can't Do

A developer connected a custom ChatGPT "dots" assistant to Gmail, Google Calendar, Google Drive, GitHub, Slack, Notion, Jira and Outlook and ran 17 real tasks over three days, finding that read-and-summarize work was largely accurate but that permission settings did not hold: an event was deleted in about 30 seconds despite the calendar connection being set to "confirm before any change," and a draft email was sent without a confirmation screen once the request said "send it." The assistant also looked only at the main calendar until the request was rewritten to say "all calendars," and a scheduled 8:30 weekday morning summary arrived 14 minutes late.

by read11 min views1 publishedOct 10, 2026

ChatGPT has a new feature called dots. You create your own AI assistant inside ChatGPT, connect it to Gmail, your calendar, Slack and other services, and hand it work. In this article, I call the assistant I created "the dot." According to the dot itself, it has its own computer in the cloud, and work on the cloud side keeps going even after you close the ChatGPT window. Work that uses your own Mac needs the Mac to stay connected.

Other tools also let you hand work to the cloud. Anthropic's Claude Code, which I use for development every day, has cloud sessions that run work in the cloud and a way to run tasks at scheduled times. I will compare dots with automating the same work in Claude Code in a separate article. This article covers what happened when I used dots for real work first.

From October 7 to 9, 2026, I connected dots to my Gmail, Google Calendar, Google Drive, GitHub, Slack, Notion, Jira and Outlook, and asked it to do 17 real tasks.

Before handing work over, learn how to word your requests and where permission prompts appear. That was the biggest lesson from the three days.

Each dots assistant has a name and its own cloud computer, and it uses the services you connect (ChatGPT calls them "plugins") to do the work you ask for.

From what I saw, it combines three things:

These were the test conditions:

git log on my machine. I did not decide on a conclusion in advance. I recorded what happened when I asked.

Here are the main ones. Time is from sending the request until the answer arrived.

Task Result Time Check
Today's and tomorrow's events and emails needing a reply, in 5 lines Done (looked only at the main calendar) ~1 min Missed 2 events in another calendar
GitHub commits from the last 7 days, in 3 lines Done ~3 min 32 commits, matched my count
Search Google Drive for "estimate" Done ~1 min Not checked
My Slack mentions, in 3 lines Content was done, but the report never arrived ~5 min + a nudge Not checked
Create an event Done ~1 min Checked on screen
Delete an event (with permission set to "confirm before changes") Deleted without confirmation ~30 sec Checked on screen
Draft an email → send it Did not send on "draft," sent on "send it" ~1 min each Confirmed arrival in the inbox
Read a product list in the cloud browser Done ~2 min 18 items, matched the real page
Have Codex on my Mac count files Done ~2 min 31 files and top 5, matched my count
Create a Notion page → delete it Done (deletion succeeded on the 2nd try) ~2 min / 1 min 10 sec Checked on screen
Read Jira and Outlook Done ~2 min Not checked
Talk to it from a Slack DM Done 13 sec to acknowledge, 81 sec to answer Measured from Slack timestamps
Send a morning summary at 8:30 on weekdays (scheduled) Arrived (8:44, 14 minutes late) ~2 min to set up Looked at all 16 calendars

For reading and summarizing, within what I could check, there were no clearly wrong answers. What caught my attention was what it looked at. The first morning summary looked only at my main calendar. When I rewrote the request to say "all calendars," it looked at all 16.

The biggest surprise was deleting a calendar event.

Before the test, I changed the calendar connection's permission to "read freely, confirm before any change." Then I asked: "Please delete the event you just created. Do not touch any other events."

No confirmation screen appeared. The event was gone in about 30 seconds.

When I asked the dot why, it answered:

With email, when I asked it to "create a draft," it created only the draft and stopped. When I then said "Please send that draft," it sent it with no confirmation screen, and it arrived in the inbox a minute later.

In other words, if you clearly say "delete it" or "send it," the dot does it without asking. With the calendar, I tried once with the setting on "confirm before changes," and it still deleted without asking (it is possible the setting had not taken effect yet). What matters more than the setting is what you write in the request.

The other thing to watch is how it stops.

Deleting a Notion page was a good example. The dot first checked the page using the connected Notion features. But those features have no delete operation. So the dot switched to operating Chrome on my Mac to move the page to the trash.

At this point, the dot splits the work into a "child conversation." Child conversations appear as separate conversations in the sidebar. The prompt asking whether it may use Chrome appeared only inside this child conversation.

The first time, I did not notice it. This is what came back:

The result was "aborted by user after 1254.0s".
The target was the cua.getApp('com.google.Chrome') call that acquires Chrome.

After about 21 minutes with nobody pressing the permission button, it was treated as "aborted by the user." In the dot's main conversation, all I got was a single line: "The deletion was not carried out."

The second time, I kept the child conversation open. This screen appeared:

After I pressed "Allow for this conversation," it finished in 1 minute 10 seconds.

Something similar happened with the Slack summary. After a short "I'll check," no answer came for 5 minutes. When I nudged it, it replied: "The check was complete, but there was an error sending the result."

In my tests, when the dot stopped, no notification reached me; only a "Needs approval" mark appeared in the sidebar. The stop happens inside a child conversation or a report that was never sent. Once you hand work over, you need to go and check the sidebar's "Needs approval" mark and the child conversations.

After the page moved to the trash, I opened the actual Notion screen.

The dot deleted it, but the record says I did. That is because it used Chrome on my Mac, where I am logged in.

When I checked what was running on my Mac, this process was resident inside the ChatGPT desktop app:

codex exec-server --remote

The dot uses this as its gateway to operate my Mac. When I had Codex count files, the work also ran on my Mac, not on the dot's cloud computer.

It is convenient, but the other services cannot tell what the dot did from what I did. The permission screen for adding the dot to Slack also asked for things like "post as you," "read DMs" and "create channels"—the scope of reading and writing as me.

The longest task was down a set of English learning materials I had purchased. The request was a single sentence: "Download all the materials on this page and put them together in a folder."

I asked at 7:42 and it finished at 9:48—2 hours and 6 minutes. But about 1 hour 45 minutes of that was waiting for my reply. The dot stopped twice to ask me:

After I gave permission, the dot found 169 files in total: 1 PDF, 4 audio ZIPs and 164 MP3s. But Chrome on my Mac blocked the ZIP downloads.

ERR_BLOCKED_BY_CLIENT

This error appears when a browser extension or protection setting blocks a download. The dot did not change the protection settings itself. It stopped and asked me to "press one download myself to see if the same error happens." Not loosening settings on its own is the safe call.

A few minutes later, the dot corrected itself: it had "overlooked the ZIPs already saved on the Mac." When I counted the folder, there were 164 MP3s, 4 ZIPs and 1 PDF, about 430 MB including the other bundled files. That matched its final report.

Midway, the calendar connection dropped, so I reconnected it. But reconnecting did not resume the stopped work automatically. You have to tell it to "continue."

You can add the dot to Slack. Once added, you can talk to it via Slack DMs and mentions.

Right after I added it, the dot sent me a self-introduction by DM. It included: "In group conversations, everyone in the conversation can see my replies." If you ask it in a channel, your coworkers see the answer too.

I sent this DM: "Tell me how many events I have left today, with titles only. Do not change any events." Measured by the timestamps Slack recorded:

The answer came as a thread reply to my message, not in the main DM flow. The DM list shows only "1 reply," so you cannot see the answer without opening the thread. One article online said replies take about 3 minutes; in my single measurement, it came back faster than that.

I also asked the dot directly what it cannot do. Here is its answer. This is the dot's own account; I did not test all of it myself.

Articles online disagreed about phone calls. Some say it "makes calls for you," others say "it cannot place calls." The dot's own answer was the latter.

I also noticed two small bugs. One: a request I thought I had sent was never sent. I typed it in the input box and pressed send, but it disappeared without appearing on screen. Two: the screen of the dot's cloud computer showed up only the first time; after that, it stayed on "."

I set it up by saying: "Every weekday at 8:30 a.m., send me the events from all calendars and the emails that need a reply, in 5 lines or fewer." There is no settings screen. To stop it, you also say so in the conversation: "Stop the morning summary."

On the morning of October 8, the summary arrived at 8:44. It began with "Sorry for the delay."

The content was accurate. It looked at all 16 calendars, removed duplicate events, and even listed private events by time only. However, it was 6 lines when I asked for 5 or fewer.

The dot itself had said from the start that it would not be exactly on time: "finishing at an exact time" was on its list of things it cannot guarantee. I am recording the arrival times for several days to see how much they vary.

I checked the cost in ChatGPT's "Usage" settings.

So I could not tell how much the dot alone used.

For comparison, I calculated the cost of building just the morning summary myself: cron on my Mac (a tool that runs a command at a set time) calling the API once every morning. I compared two models: gpt-6-astra, which was selected in the dot's conversation, and the cheaper gpt-6.1-sol. Prices are from OpenAI's official pricing page as of October 9, 2026.

runs, out = 22, 300
price = {"gpt-6-astra": (10, 50), "gpt-6.1-sol": (2, 10)}  # USD per 1M tokens
for inp in (8_000, 15_000, 30_000):
    for m, (pi, po) in price.items():
        print(inp, m, round(runs * (inp * pi + out * po) / 1e6, 2))
Input tokens gpt-6-astra gpt-6.1-sol
8,000 $2.09/month $0.42/month
15,000 $3.63/month $0.73/month
30,000 $6.93/month $1.39/month

The input token counts are estimates, assuming the events from 16 calendars plus one day's email subjects and snippets. I did not count them from real data.

A single morning summary costs only a few dollars a month to build yourself. But Pro's $200 includes delegating to the dot, operating your Mac, Slack and scheduled tasks all together. Building all of that yourself means writing the Gmail and calendar connections, retries on failure, and a permission system. That effort is not in this table.

Here is what I learned in three days, for the next person handing work to a dot.

In the next article, I will compare building the same work with Claude Code's cloud sessions and scheduled tasks, including the differences in cost and effort.

── more in #ai-agents 4 stories · sorted by recency
── more on @chatgpt 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/i-connected-chatgpt-…] indexed:0 read:11min 2026-10-10 · —