Skip to main content

Google ecosystem agent skills (Calendar/Drive/Gmail/YouTube Data) for Concinno — native Python API first, MCP fallback optional

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concinno_skills_google-0.1.0.tar.gz (34.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concinno_skills_google-0.1.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file concinno_skills_google-0.1.0.tar.gz.

File metadata

  • Download URL: concinno_skills_google-0.1.0.tar.gz
  • Upload date:
  • Size: 34.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for concinno_skills_google-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f85d18077191bb76b39cda1a48f28cc3128793cebeaa8fd3ed4911313a3fade0
MD5 ab72d565086e26f3f6ef5ff0cbc1e9c3
BLAKE2b-256 140afed5f0cbb8bdb04db2118b65b0b9580ce6793433af37b6365e9d4247aea9

See more details on using hashes here.

File details

Details for the file concinno_skills_google-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concinno_skills_google-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6f465962c13c05f0811bf0d88d9ff47b1214463411c9dfb79edf6b1475e3a548
MD5 9faacf3f77ab651a28a7d296707e4616
BLAKE2b-256 00737e789af80b315d8b97a0cf50947c6d92d56814895d7898b7d6545771b208

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page