Technology Sep 04, 2026 · 6 min read

Clockwork: IA para tu calendario sin sacrificar privacidad

Clockwork : el asistente de calendario con IA que protege tu privacidad (es‑2205) Introducción ¿Cansado de que tu calendario sea una mina de datos para terceros? Con Clockwork puedes volver a confiar en tu agenda: la IA organiza tus citas sin que nadie más tenga acceso a la inf...

DE
DEV Community
by LeoJulieta
Clockwork: IA para tu calendario sin sacrificar privacidad

Clockwork : el asistente de calendario con IA que protege tu privacidad (es‑2205)

Introducción

¿Cansado de que tu calendario sea una mina de datos para terceros? Con Clockwork puedes volver a confiar en tu agenda: la IA organiza tus citas sin que nadie más tenga acceso a la información. En los últimos seis meses las búsquedas de “asistente de calendario IA” y “app de calendario privada” han aumentado más del 250 %, y Clockwork llega justo cuando la privacidad se ha convertido en requisito legal y de negocio.

En este artículo verás:

  • Por qué la privacidad es el factor decisivo hoy.
  • Cómo Clockwork se diferencia de x.ai y Microsoft Copilot.
  • Una guía práctica paso a paso para montar tu propio asistente de calendario seguro con Python, un modelo de lenguaje abierto y la API de Google Calendar.

1. ¿Por qué la privacidad es crítica ahora?

Factores Impacto
Phishing basado en calendarios En 2023, el 42 % de los usuarios de productividad recibió intentos de suplantación usando datos de sus eventos.
Regulaciones estrictas GDPR y CCPA exigen justificación y limitación del procesamiento de datos sensibles.
APIs maduras Google Calendar, Outlook y Apple Calendar ya ofrecen OAuth 2.0, webhooks y push notifications, lo que permite crear soluciones totalmente controladas.

2. Clockwork frente a la competencia

Característica Clockwork x.ai Microsoft Copilot
Cifrado de extremo a extremo ✅ (eventos y conversaciones) ❌ (cifrado en tránsito) ✅ (cifrado en tránsito)
Política de no‑registro ✅ (logs borrados a los 30 días) ❌ (retención indefinida) ✅ (retención configurable)
Código abierto ✅ (SDK y motor IA) ❌ (propietario) ❌ (propietario)
Procesamiento local ✅ (modelos en tu máquina) ❌ (solo nube) ❌ (solo nube)

Clockwork no solo protege los datos, sino que te permite auditarlos porque su núcleo está abierto.

3. Monta tu propio asistente de calendario privado

A continuación, un tutorial rápido que puedes ejecutar en cualquier máquina con Python 3.9+.

3.1 Requisitos previos

# 1. Crear un entorno virtual
python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

# 2. Instalar dependencias
pip install google-auth google-auth-oauthlib google-api-python-client transformers torch
  • google-auth‑oauthlib y google-api-python-client gestionan la autenticación segura con OAuth 2.0.
  • transformers + torch nos permiten cargar un modelo de lenguaje abierto (por ejemplo, LLaMA‑7B o Mistral‑7B).

3.2 Configurar la API de Google Calendar

  1. Ve a la Google Cloud ConsoleAPIs & ServicesCredentials.
  2. Crea un OAuth Client ID (tipo Desktop app) y descarga el archivo credentials.json.
  3. Copia credentials.json al directorio del proyecto.

3.3 Código base

import os, json, datetime
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
from transformers import AutoModelForCausalLM, AutoTokenizer

# -------------------------------------------------
# 1. Autenticación con Google (cifrado en tránsito)
# -------------------------------------------------
SCOPES = ["https://www.googleapis.com/auth/calendar"]
def get_service():
    creds = None
    token_path = "token.json"
    if os.path.exists(token_path):
        creds = Credentials.from_authorized_user_file(token_path, SCOPES)
    if not creds or not creds.valid:
        flow = InstalledAppFlow.from_client_secrets_file("credentials.json", SCOPES)
        creds = flow.run_local_server(port=0)
        with open(token_path, "w") as f:
            f.write(creds.to_json())
    return build("calendar", "v3", credentials=creds)

service = get_service()

# -------------------------------------------------
# 2. Cargar modelo de IA local (sin salir de tu máquina)
# -------------------------------------------------
model_name = "mistralai/Mistral-7B-Instruct-v0.2"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto")

def ask_ai(prompt: str) -> str:
    inputs = tokenizer(prompt, return_tensors="pt")
    output = model.generate(**inputs, max_new_tokens=150, do_sample=True, temperature=0.7)
    return tokenizer.decode(output[0], skip_special_tokens=True)

# -------------------------------------------------
# 3. Función práctica: crear un evento a partir de texto natural
# -------------------------------------------------
def crear_evento_desde_texto(texto: str):
    # 3.1 Preguntamos a la IA por los campos del evento
    prompt = f"""
    Extrae la información necesaria para crear un evento de Google Calendar a partir del siguiente texto:
    \"\"\"{texto}\"\"\"
    Responde en JSON con los campos: summary, location (opcional), start (ISO 8601), end (ISO 8601), description (opcional).
    """
    respuesta = ask_ai(prompt)
    datos = json.loads(respuesta)

    # 3.2 Llamada a la API de Calendar
    evento = {
        "summary": datos["summary"],
        "location": datos.get("location", ""),
        "description": datos.get("description", ""),
        "start": {"dateTime": datos["start"], "timeZone": "Europe/Madrid"},
        "end":   {"dateTime": datos["end"],   "timeZone": "Europe/Madrid"},
    }
    created = service.events().insert(calendarId="primary", body=evento).execute()
    print(f"✅ Evento creado: {created.get('htmlLink')}")

# -------------------------------------------------
# 4. Uso rápido
# -------------------------------------------------
texto_usuario = "Reúnete con el equipo de producto el próximo martes a las 10 h en la sala 3B y discute la hoja de ruta Q4."
crear_evento_desde_texto(texto_usuario)

Qué hace este script:

  1. Autenticación segura con OAuth 2.0 (token cifrado en tu disco).
  2. Procesamiento local del modelo de lenguaje, por lo que el texto nunca abandona tu máquina.
  3. Extracción automática de los campos del evento mediante IA y creación directa en Google Calendar.

Puedes reemplazar Mistral-7B-Instruct-v0.2 por cualquier modelo compatible con transformers que prefieras, siempre manteniendo el procesamiento local.

3.4 Seguridad adicional (cifrado de datos en reposo)

Si deseas que los eventos se almacenen cifrados antes de enviarlos a Google, puedes usar cryptography:

pip install cryptography
from cryptography.fernet import Fernet

# Genera una clave única y guárdala en un lugar seguro
key = Fernet.generate_key()
cipher = Fernet(key)

def encrypt_event(evento: dict) -> dict:
    payload = json.dumps(evento).encode()
    encrypted = cipher.encrypt(payload)
    return {"encrypted_payload": encrypted.decode()}

# Al crear el evento, cifra los datos y guarda la clave en tu vault
evento_cifrado = encrypt_event(evento)
# ... envía evento_cifrado a tu backend propio antes de la llamada a Google

Con este paso, incluso si la API de Google fuese comprometida, los datos estarían inutilizables sin la clave.

4. Buenas prácticas para mantener la privacidad

Acción Por qué Cómo hacerlo
Usar tokens de acceso con alcance mínimo Reduce la superficie de ataque. En la consola de Google, selecciona solo https://www.googleapis.com/auth/calendar.events en lugar de calendar completo.
Rotar claves de cifrado cada 90 días Limita el daño en caso de filtración. Automatiza la generación con cryptography.Fernet.generate_key() y almacena la versión anterior en un almacén seguro (AWS KMS, HashiCorp Vault).
Auditar logs Detecta accesos no autorizados. Configura Cloud Logging para que sólo registre IDs de evento, nunca el contenido.
Desactivar sincronización automática de terceros Evita que apps desconocidas lean tu agenda. En la configuración de Google Calendar, revisa “Aplicaciones con acceso a tu cuenta”.

5. Conclusión

Clockwork demuestra que la IA no tiene por qué sacrificar la privacidad. Gracias a su arquitectura de cifrado de extremo a extremo, código abierto y

Herramienta mencionada: GitHub Copilot

DE
Source

This article was originally published by DEV Community and written by LeoJulieta.

Read original article on DEV Community
Back to Discover

Reading List