anthropics / anthropics/claude-code
[BUG] Claude Code cloud session — Google Calendar connector enabledInChat intermittently false despite connected: true
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Preflight Checklist
- [x] I have searched [existing issues](https://github.com/anthropics/claude-code/issues?q=is%3Aissue%20state%3Aopen%20label%3Abug) and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
### What's Wrong?
On Claude Code on the web (claude.ai/code), the Google Calendar connector’s enabledInChat state flips between true and false unpredictably within the same persistent session, even though the connector remains connected: true at the account level the whole time. When enabledInChat is false, the mcp__Google_Calendar__* tools disappear entirely from the session’s tool list and cannot be called at all. Minutes or hours later, with no action taken by me, the tools become available again on their own.
This makes it impossible to reliably automate Google Calendar actions from a Claude Code cloud session — any Routine (scheduled trigger) bound to that persistent session inherits whatever connector state the session happens to be in at fire time, so calendar registrations silently fail depending on timing.
### What Should Happen?
Once a connector is enabled for a chat/session, it should remain
consistently available for the lifetime of that session (or at least
not silently disable itself without any corresponding user action,
error message, or explanation).
### Error Messages/Logs
```shell
Example ListConnectors output showing the inconsistency:
{"name":"Google Calendar","connected":true,"enabledInChat":false}
Example error when trying to work around it via create_trigger's
connectors parameter:
"create_trigger: the connectors parameter is not available for this
organization. Omit the connectors parameter."
```
### Steps to Reproduce
1. In a Claude Code on the web session, connect Google Calendar via claude.ai Settings → Connectors.
2. In the same session, periodically call the ListConnectors tool (or attempt to call an mcp__Google_Calendar__* tool) over a period of a few hours.
3. Observe that connected stays true throughout, but enabledInChat toggles between true and false with no correlation to any user action, tool call, or visible error.
4. When enabledInChat is false, any attempt to call a Google Calendar tool fails because the tool is simply not present in the available tool list (not a runtime error — the tool doesn’t exist for that turn).
### Claude Model
Sonnet (default)
### Is this a regression?
No, this never worked
### Last Working Version
_No response_
### Claude Code Version
2.1.234
### Platform
Anthropic API
### Operating System
Other Linux
### Terminal/Shell
Other
### Additional Information
• I also tried working around this by explicitly requesting the connector on a Routine via create_trigger‘s connectors parameter (so a fired session would get a stable, explicit grant independent of the parent chat’s fluctuating state). This is rejected outright for our organization: create_trigger: the connectors parameter is not available for this organization. So there is currently no workaround available to us.
• The connector does work intermittently — several Google Calendar event creations succeeded over the course of the day — so this isn’t a total outage, but the unpredictability makes it unsuitable for any automated/scheduled workflow.
• Other connectors (Gmail, Google Drive) in the same session showed the same enabledInChat flapping behavior, so this doesn’t appear to be Calendar-specific — it looks like a general connector-attachment issue for Claude Code cloud sessions.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the issue in a Claude Code on the web session and periodically call ListConnectors while attempting an mcp__Google_Calendar__* tool. Compare connected and enabledInChat across several hours, including the create_trigger connectors workaround. Done means connector availability remains stable for the session, with no silent tool removal or unexplained state changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend, cloud
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100