feat: Implement dynamic Google Calendar agenda, and configure OpenAI model, Calendly link, and daily summary schedule.

This commit is contained in:
Marco Gallegos
2025-12-18 00:23:11 -06:00
parent e960538943
commit 96542bcd61
7 changed files with 76 additions and 24 deletions

View File

@@ -2,21 +2,32 @@
# Este módulo se encarga de manejar las peticiones relacionadas con la agenda.
# Permite obtener y mostrar las actividades programadas para el día.
import datetime
from calendar import get_events
def get_agenda():
"""
Obtiene y muestra la agenda del usuario para el día actual.
Por ahora, esta función devuelve una agenda de ejemplo fija.
El plan es conectarla con Google Calendar para que sea real.
Obtiene y muestra la agenda del usuario para el día actual desde Google Calendar.
"""
# TODO: Obtener la agenda dinámicamente desde Google Calendar.
agenda_text = (
"📅 *Agenda para Hoy*\n\n"
"• *10:00 AM - 11:00 AM*\n"
" Reunión de Sincronización - Proyecto A\n\n"
"• *12:30 PM - 1:30 PM*\n"
" Llamada con Cliente B\n\n"
" *4:00 PM - 5:00 PM*\n"
" Bloque de trabajo profundo - Desarrollo Talía"
)
now = datetime.datetime.utcnow()
start_of_day = now.replace(hour=0, minute=0, second=0, microsecond=0)
end_of_day = start_of_day + datetime.timedelta(days=1)
events = get_events(start_of_day, end_of_day)
if not events:
return "📅 *Agenda para Hoy*\n\nNo tienes eventos programados para hoy."
agenda_text = "📅 *Agenda para Hoy*\n\n"
for event in events:
start = event["start"].get("dateTime", event["start"].get("date"))
# Formatear la hora si es posible
if "T" in start:
time_str = start.split("T")[1][:5]
else:
time_str = "Todo el día"
summary = event.get("summary", "(Sin título)")
agenda_text += f"• *{time_str}* - {summary}\n"
return agenda_text

View File

@@ -2,16 +2,16 @@
# Este módulo maneja la programación de citas para los clientes.
# Permite a los usuarios obtener un enlace para agendar una reunión.
from config import CALENDLY_LINK
def request_appointment():
"""
Proporciona al usuario un enlace para agendar una cita.
Por ahora devuelve un enlace de ejemplo a Calendly.
La idea es que sea un enlace dinámico generado por n8n.
Usa el enlace configurado en las variables de entorno.
"""
# TODO: Integrar con un servicio real o un flujo de n8n para dar un enlace personalizado.
response_text = (
"Para agendar una cita, por favor utiliza el siguiente enlace: \n\n"
"[Enlace de Calendly](https://calendly.com/user/appointment-link)"
f"[Agendar Cita]({CALENDLY_LINK})"
)
return response_text