Skip to main content

concinno-skills-google

Google ecosystem agent skills for Concinno. Native Python API first, MCP fallback optional.

Status

MVP (0.1.0) — GoogleCalendar only. Drive / Gmail / YouTube Data will follow in subsequent minor releases under the same entry-point group so no Concinno upgrade is required when new tools land.

Install

pip install concinno-skills-google

google-api-python-client and google-auth are hard dependencies (the tool is useless without them) and will be pulled in automatically.

OAuth setup

This package does not run an interactive OAuth flow — tokens are a one-shot user responsibility. Use any of the standard Google quickstart flows to produce an authorized-user token JSON, then make it visible to Concinno via either of:

Option A — drop the file (simplest):

mkdir -p ~/.concinno
cp path/to/your/token.json ~/.concinno/google_token.json

Option B — Concinno CredentialStore (preferred when you already use it for other secrets):

from concinno.core.credentials import get_default_store

store = get_default_store()
store.set("google_oauth_token", open("token.json").read())

Or persist it via the config file:

// ~/.concinno/credentials.json
{
  "google_oauth_token": "{...authorized-user token JSON as a string...}"
}

Expired access tokens are refreshed automatically; the refreshed JSON is written back to whichever source provided it.

Usage via Concinno ToolRegistry

When the consumer sets CONCINNO_LOAD_PLUGINS=1, the default registry auto-mounts GoogleCalendar:

import os
os.environ["CONCINNO_LOAD_PLUGINS"] = "1"

from concinno.tools.registry import get_default_registry

reg = get_default_registry()
assert "GoogleCalendar" in reg.list_deferred()

tool = reg.get("GoogleCalendar")
events = tool.call(
    action="list",
    time_min="2026-04-22T00:00:00Z",
    time_max="2026-04-23T00:00:00Z",
    max_results=50,
)

Direct Python usage

No registry round-trip required; instantiate directly:

from concinno_skills_google import GoogleCalendar

cal = GoogleCalendar()

# List
events = cal.call(
    action="list",
    calendar_id="primary",
    time_min="2026-04-22T00:00:00Z",
)

# Create
created = cal.call(
    action="create",
    event={
        "summary": "Deep work block",
        "start": {"dateTime": "2026-04-22T14:00:00+08:00"},
        "end":   {"dateTime": "2026-04-22T16:00:00+08:00"},
    },
)

# Delete
cal.call(action="delete", event_id=created["id"])

All methods return either a plain list[dict] (for list) or a small status dict. On failure they return {"error": "..."} rather than raising — same shape as the other Concinno built-in tools.

License

Apache-2.0. See LICENSE in the Concinno monorepo.

Metadata

Release files for concinno-skills-google 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for concinno-skills-google 0.2.0
File Size Uploaded
concinno_skills_google-0.2.0.tar.gz 49.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for concinno-skills-google 0.2.0
File Interpreter ABI Platform
concinno_skills_google-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 70.2 kB

Release files / concinno_skills_google-0.2.0.tar.gz

Download URL concinno_skills_google-0.2.0.tar.gz
Size 49.1 kB
Tags Source
SHA-256 checksum
How to use checksums
6c5144174b3edf0bee45db6cbec35ecb36d172b9e47c5d5689143e37fa042cc7
BLAKE2b-256 checksum
How to use checksums
0ca4bad97c0d6d5270e6c2b61e5f4ac1369c0f718aa18c4ec50a1aae10f7f1d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / concinno_skills_google-0.2.0-py3-none-any.whl

Download URL concinno_skills_google-0.2.0-py3-none-any.whl
Size 21.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49b9258772ab13025a743e3b3632698d2400f497094dc89c2dd0fbf902191363
BLAKE2b-256 checksum
How to use checksums
687a370f2f3306eb711686e35d4c8b9ebcce3db4c285c54803312be24d7317eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page