Back to Registry View Author Profile
Official Verified
gsuite-sdk
Interact with Google Workspace APIs (Gmail, Calendar, Drive, Sheets) using gsuite-sdk.
skill-install — Terminal
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/pabloalaniz/gsuite-sdkOr
Google Suite Skill
Skill para interactuar con Google Workspace APIs (Gmail, Calendar, Drive, Sheets) usando gsuite-sdk.
Instalación
pip install gsuite-sdk
Con extras opcionales:
pip install gsuite-sdk[cloudrun] # Para Secret Manager
pip install gsuite-sdk[all] # Todas las dependencias
Autenticación
Primera vez (requiere navegador)
El usuario debe obtener credentials.json de Google Cloud Console y luego autenticarse:
# Via CLI
gsuite auth login
# O via Python (abre navegador)
from gsuite_core import GoogleAuth
auth = GoogleAuth()
auth.authenticate()
Ver GETTING_CREDENTIALS.md para guía completa.
Sesiones siguientes
Una vez autenticado, los tokens se guardan localmente y se refrescan automáticamente:
from gsuite_core import GoogleAuth
auth = GoogleAuth()
if auth.is_authenticated():
# Listo para usar
pass
else:
# Necesita autenticarse (abre navegador)
auth.authenticate()
Gmail
Leer mensajes
from gsuite_core import GoogleAuth
from gsuite_gmail import Gmail, query
auth = GoogleAuth()
gmail = Gmail(auth)
# Mensajes no leídos
for msg in gmail.get_unread(max_results=10):
print(f"De: {msg.sender}")
print(f"Asunto: {msg.subject}")
print(f"Fecha: {msg.date}")
print(f"Preview: {msg.body[:200]}...")
print("---")
# Buscar con query builder
mensajes = gmail.search(
query.from_("[email protected]") &
query.newer_than(days=7)
)
# Marcar como leído
msg.mark_as_read()
Enviar email
gmail.send(
to=["[email protected]"],
subject="Asunto del email",
body="Contenido del mensaje",
)
# Con adjuntos
gmail.send(
to=["[email protected]"],
subject="Reporte",
body="Adjunto el reporte.",
attachments=["reporte.pdf"],
)
Calendar
Leer eventos
from gsuite_core import GoogleAuth
from gsuite_calendar import Calendar
auth = GoogleAuth()
calendar = Calendar(auth)
# Eventos de hoy
for event in calendar.get_today():
print(f"{event.start.strftime('%H:%M')} - {event.summary}")
# Próximos 7 días
for event in calendar.get_upcoming(days=7):
print(f"{event.start}: {event.summary}")
if event.location:
print(f" 📍 {event.location}")
# Rango específico
from datetime import datetime
events = calendar.get_events(
time_min=datetime(2026, 2, 1),
time_max=datetime(2026, 2, 28),
)
Crear eventos
from datetime import datetime
calendar.create_event(
summary="Reunión de equipo",
start=datetime(2026, 2, 15, 10, 0),
end=datetime(2026, 2, 15, 11, 0),
location="Sala de conferencias",
)
# Con asistentes
calendar.create_event(
summary="Sync semanal",
start=datetime(2026, 2, 15, 14, 0),
end=datetime(2026, 2, 15, 15, 0),
attendees=["[email protected]", "[email protected]"],
send_notifications=True,
)
Drive
Listar y descargar archivos
Metadata
AI Skill Finder
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skill Add to Configuration
Paste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-pabloalaniz-gsuite-sdk": {
"enabled": true,
"auto_update": true
}
}
}Safety NoteClawKit audits metadata but not runtime behavior. Use with caution.