---
name: calendar-manager
description: Gestao do Google Calendar e automacao de agendamento. Cria eventos, gere disponibilidade e sincroniza calendarios.
---

# Calendar Manager

Gestao centralizada de multiplos calendarios Google com classificacao automatica de eventos.

## Calendarios Disponiveis

| Calendario | ID | Tipo | Uso |
|------------|----|----|-----|
| **Emanuel Almeida - Pessoal** | `emanuelalmeidaa@gmail.com` | Pessoal | Compromissos pessoais, familia, saude, lazer |
| **Emanuel Almeida - Descomplicar** | `emanuel@descomplicar.pt` | Profissional | Trabalho, reunioes internas, planeamento |
| **Info Descomplicar** | `info@descomplicar.pt` | Profissional | Reunioes com clientes, calls externos |
| **Feriados em Portugal** | `pt-pt.portuguese#holiday@group.v.calendar.google.com` | Referencia | Feriados nacionais |

**Conta Google**: `emanuelalmeidaa@gmail.com` (usada para autenticacao em todos os calendarios)

## Classificacao Automatica de Eventos

### Eventos PESSOAIS -> `emanuelalmeidaa@gmail.com`
- Nomes proprios sem contexto empresarial (Tomas, Susana, Maria, Dra., Dr.)
- Medico, consulta, saude, dentista, fisioterapia, psicologo
- Familia, filhos, escola, CNG, colegio
- Ginasio, treino, corrida, desporto
- Almoco/jantar pessoal, aniversario, festa
- Casa, obras, condominio
- Banco, financas pessoais, seguro

### Eventos PROFISSIONAIS -> `emanuel@descomplicar.pt`
- Planeamento, sprint, retrospectiva, standup
- Desenvolvimento, deploy, release
- Interno, equipa, staff
- Nomes de projectos (Stack Workflow, WiP, etc.)
- Review, code review, merge
- Formacao, workshop interno

### Eventos com CLIENTES -> `info@descomplicar.pt`
- Cliente, call, reuniao externa
- Nomes de empresas/clientes conhecidos
- Proposta, orcamento, apresentacao
- Kickoff, entrega, demo

## Clientes Conhecidos

| Cliente | Keywords |
|---------|----------|
| Carstuff | carstuff, cars |
| FamilyClinic | familyclinic, clinic, clinica |
| KCG | kcg, karate, gaia |
| Espiral Senior | esp, espiral, senior |
| Solar FV | solar, fotovoltaico |
| Water Control | water, agua |
| Ignition Vortex | ignition, vortex |

## Comandos e Interpretacao

### Criar Eventos
```
Input: "Agenda Dra Susana 14:30"
-> Calendario: Pessoal (Dra = medico)
-> Evento: Dra Susana, 14:30-15:30

Input: "Reuniao Carstuff 16h ate 19h"
-> Calendario: Clientes (Carstuff = cliente conhecido)
-> Evento: Carstuff, 16:00-19:00

Input: "Planeamento segunda 9h 4 horas"
-> Calendario: Profissional (planeamento = interno)
-> Evento: Planeamento, 09:00-13:00
```

### Listar Eventos
```
"Agenda de hoje" -> todos os calendarios, hoje
"O que tenho amanha?" -> todos os calendarios, amanha
"Agenda de trabalho" -> so profissional + clientes
"Compromissos pessoais" -> so pessoal
```

### Verificar Disponibilidade
```
"Estou livre as 15h?" -> verificar todos os calendarios
"Proximo slot livre de 2h" -> encontrar disponibilidade
```

## Workflow

O workflow completo de criacao e listagem de eventos esta detalhado em `references/workflows-detalhados.md`.

### Resumo do fluxo CRIAR

1. **Analisar pedido** - extrair titulo, data, hora, duracao
2. **Classificar tipo** - pessoal/profissional/clientes (baseado em keywords)
3. **Extrair data/hora** - obter data actual via `mcp__mcp_time__current_time`, interpretar mencoes relativas
4. **Verificar conflitos** - consultar todos os calendarios no horario pretendido
5. **Criar evento** - via `mcp__google_workspace__create_event`
6. **Confirmar** - mostrar resumo ao utilizador

### Resumo do fluxo LISTAR

1. **Interpretar pedido** - periodo (hoje/amanha/semana) + ambito (todos/pessoal/profissional/clientes)
2. **Determinar intervalo** - calcular time_min e time_max
3. **Consultar calendarios** - buscar eventos em paralelo
4. **Agrupar e formatar** - ordenar por hora, agrupar por tipo
5. **Sugestoes** - avisar sobrecarga ou falta de pausas

## Formato de Resposta

### Criar:
```
[titulo]
[data] -- [hora inicio] - [hora fim]
[tipo: Pessoal/Profissional/Clientes]
```

### Listar:
```
Agenda [data]

PESSOAL
-- 14:30 Dra Susana (1h)

PROFISSIONAL
-- 09:00 Planeamento Semanal (4h)

CLIENTES
-- 16:00 Carstuff (3h)
```

## Regras

1. **Timezone**: Sempre `Europe/Lisbon`
2. **Duracao default**: 1 hora
3. **Ambiguidade**: Se nao for claro, perguntar ao utilizador
4. **Conflitos**: Avisar se houver sobreposicao
5. **Feriados**: Avisar se o evento calhar num feriado

## MCP Tools - Referencia Rapida

Referencia completa com constantes e exemplos em `references/mcp-tools-referencia.md`.

```javascript
// Listar calendarios
mcp__google_workspace__list_calendars({ user_google_email: 'emanuelalmeidaa@gmail.com' });

// Obter eventos
mcp__google_workspace__get_events({
  user_google_email: 'emanuelalmeidaa@gmail.com',
  calendar_id: 'ALL',
  time_min: '2026-02-04T00:00:00',
  time_max: '2026-02-04T23:59:59'
});

// Criar evento
mcp__google_workspace__create_event({
  user_google_email: 'emanuelalmeidaa@gmail.com',
  calendar_id: 'emanuelalmeidaa@gmail.com',
  summary: 'Titulo',
  start_time: '2026-02-04T14:30:00',
  end_time: '2026-02-04T15:30:00',
  timezone: 'Europe/Lisbon'
});
```

## Quando NAO Usar

- Para tarefas fora do dominio de calendario/agendamento
- Quando outra skill mais especifica esta disponivel
- Para operacoes que requerem aprovacao manual obrigatoria

## References

- **Workflows detalhados:** `references/workflows-detalhados.md`
- **MCP tools e constantes:** `references/mcp-tools-referencia.md`

---

## Healing Log

Registo de erros conhecidos e como evitá-los. Lido automaticamente antes de executar.

```jsonl
{"date":"","issue":"","fix":"","source":"user|auto"}
```

*Adicionar nova linha após cada erro corrigido.*
