Kalendár

Manuálne udalosti v kalendári.

Kalendár obsahuje udalosti pre organizáciu — pripomienky, stretnutia, úlohy, ako aj automaticky generované udalosti zo systému (splatnosti faktúr, dátumy vystavenia dokumentov, výdavky). Pole source rozlišuje pôvod: manual sú užívateľské udalosti vytvorené cez API a dajú sa upraviť alebo zmazať; ostatné hodnoty (system, document, expense, record, ai_extracted) sú read-only — POST ich nevytvára a PATCH/DELETE na ne vráti 403.

Udalosti sa modelujú ako date + voliteľný time, nie ako rozsah. Celodenná udalosť má is_all_day=true a time=null. Pripomienky sa ukladajú ako pole celých čísel (počet dní vopred) vreminder_days — teda nie samostatná entita.

Endpointy

POST/api/v1/calendar/eventscalendar:write

Vytvorí manuálnu udalosť. Povinné: title, event_type, date. Source je vždy manual.

Request
curl -X POST "https://monivio.sk/api/v1/calendar/events" \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Stretnutie s ACME",
  "event_type": "meeting",
  "date": "2026-06-15",
  "time": "10:00:00",
  "is_all_day": false,
  "description": "Príprava ponuky pre Q3",
  "color": "#3b82f6",
  "reminder_days": [
    1,
    7
  ]
}'
Response 201json
{
  "data": {
    "id": "cev_2hf8pq3rxn4mlkzyt9abwvve",
    "source": "manual",
    "event_type": "meeting",
    "priority": 5,
    "title": "Stretnutie s ACME",
    "description": "Príprava ponuky pre Q3",
    "date": "2026-06-15",
    "time": "10:00:00",
    "is_all_day": false,
    "color": "#3b82f6",
    "icon": null,
    "entity_type": null,
    "entity_id": null,
    "amount": null,
    "currency": null,
    "category": null,
    "reminder_days": [
      1,
      7
    ],
    "is_recurring": false,
    "recurrence_rule": null,
    "is_completed": false,
    "completed_at": null,
    "created_at": "2026-06-01T09:00:00.000Z"
  }
}
GET/api/v1/calendar/eventscalendar:read

Zoznam udalostí v rozsahu dátumov. Default okno je posledných 30 dní + nasledujúcich 365 dní.

Request
curl "https://monivio.sk/api/v1/calendar/events?from=2026-06-01&to=2026-06-30&source=manual" \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Response 200json
{
  "data": [
    {
      "id": "cev_2hf8pq3rxn4mlkzyt9abwvve",
      "source": "manual",
      "event_type": "meeting",
      "priority": 5,
      "title": "Stretnutie s ACME",
      "description": "Príprava ponuky pre Q3",
      "date": "2026-06-15",
      "time": "10:00:00",
      "is_all_day": false,
      "color": "#3b82f6",
      "icon": null,
      "entity_type": null,
      "entity_id": null,
      "amount": null,
      "currency": null,
      "category": null,
      "reminder_days": [
        1,
        7
      ],
      "is_recurring": false,
      "recurrence_rule": null,
      "is_completed": false,
      "completed_at": null,
      "created_at": "2026-06-01T09:00:00.000Z"
    }
  ],
  "meta": {
    "page": 1,
    "limit": 1,
    "total": 1,
    "total_pages": 1
  }
}
GET/api/v1/calendar/events/{id}calendar:read

Detail jednej udalosti.

Request
curl "https://monivio.sk/api/v1/calendar/events/con_2hf8pq3rxn4mlkzyt9abwvve" \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Response 200json
{
  "data": {
    "id": "cev_2hf8pq3rxn4mlkzyt9abwvve",
    "source": "manual",
    "event_type": "meeting",
    "priority": 5,
    "title": "Stretnutie s ACME",
    "description": "Príprava ponuky pre Q3",
    "date": "2026-06-15",
    "time": "10:00:00",
    "is_all_day": false,
    "color": "#3b82f6",
    "icon": null,
    "entity_type": null,
    "entity_id": null,
    "amount": null,
    "currency": null,
    "category": null,
    "reminder_days": [
      1,
      7
    ],
    "is_recurring": false,
    "recurrence_rule": null,
    "is_completed": false,
    "completed_at": null,
    "created_at": "2026-06-01T09:00:00.000Z"
  }
}
PATCH/api/v1/calendar/events/{id}calendar:write

Upraví manuálnu udalosť. Funguje len pre source=manual; system udalosti vrátia 403.

Request
curl -X PATCH "https://monivio.sk/api/v1/calendar/events/con_2hf8pq3rxn4mlkzyt9abwvve" \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
  "title": "Stretnutie s ACME (presunuté)",
  "date": "2026-06-16"
}'
Response 200json
{
  "data": {
    "id": "cev_2hf8pq3rxn4mlkzyt9abwvve",
    "source": "manual",
    "event_type": "meeting",
    "priority": 5,
    "title": "Stretnutie s ACME (presunuté)",
    "description": "Príprava ponuky pre Q3",
    "date": "2026-06-16",
    "time": "10:00:00",
    "is_all_day": false,
    "color": "#3b82f6",
    "icon": null,
    "entity_type": null,
    "entity_id": null,
    "amount": null,
    "currency": null,
    "category": null,
    "reminder_days": [
      1,
      7
    ],
    "is_recurring": false,
    "recurrence_rule": null,
    "is_completed": false,
    "completed_at": null,
    "created_at": "2026-06-01T09:00:00.000Z"
  }
}
DELETE/api/v1/calendar/events/{id}calendar:write

Zmaže manuálnu udalosť (soft delete). Pre source=system vráti 403.

Request
curl -X DELETE "https://monivio.sk/api/v1/calendar/events/con_2hf8pq3rxn4mlkzyt9abwvve" \
  -H "Authorization: Bearer mk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Objekt CalendarEvent

idreadonly
string
Stabilný CUID2 identifikátor s prefixom cev_.
Príklad: cev_2hf8pq3rxn4mlkzyt9abwvve
sourcereadonly
"manual" | "system" | "document" | "expense" | "record" | "ai_extracted"
Pôvod udalosti. Cez API sa dá vytvoriť/upraviť len 'manual'; ostatné generuje systém.
event_typerequired
string
Typ udalosti. Pre manuálne udalosti používame meeting, task, reminder, other. Systémové typy: invoice_due, document_issued, expense, contract_start a pod.
Príklad: meeting
priorityreadonly
number
Priorita 1–10. Manuálne udalosti majú default 5.
Príklad: 5
titlerequired
string
Názov udalosti (max 255 znakov).
Príklad: Stretnutie s ACME
description
string/ null
Voľný popis (max 5000 znakov).
daterequired
string (YYYY-MM-DD)
Dátum udalosti v ISO 8601 formáte bez časového posunu. V odpovedi je vždy YYYY-MM-DD.
Príklad: 2026-06-15
time
string (HH:MM:SS)/ null
Čas udalosti. Null pre celodenné udalosti. Akceptuje HH:MM aj HH:MM:SS.
Príklad: 10:00:00
is_all_day
boolean
Celodenná udalosť. Default true. Pri false očakávaj vyplnené time.
color
string/ null
Farba udalosti vo formáte #RRGGBB (6-miestny hex).
Príklad: #3b82f6
iconreadonly
string/ null
Identifikátor ikony. Plnia sa pri systémových udalostiach; cez API sa nedá nastaviť.
entity_typereadonly
string/ null
Typ napojenej entity (document, expense, business_record). Vyplnené len pri auto-generovaných udalostiach.
entity_idreadonly
string/ null
ID napojenej entity. Vyplnené len pre systémové udalosti.
amountreadonly
number/ null
Suma napojená na udalosť (napr. čiastka faktúry pri invoice_due). Pre manuálne udalosti je null.
currencyreadonly
string/ null
ISO 4217 kód meny pre amount. Vyplnené len keď je amount vyplnené.
categoryreadonly
string/ null
Kategória pri systémových udalostiach (napr. kategória výdavku).
reminder_days
number[]
Pole celých nezáporných čísel — počet dní vopred, kedy poslať pripomienku. Default [1, 7]. Max 20 položiek.
Príklad: [1, 7]
is_recurringreadonly
boolean
Udalosť je súčasťou opakujúcej sa série.
recurrence_rulereadonly
string/ null
iCal RRULE definícia opakovania. Null pre jednorázové udalosti.
is_completed
boolean
Udalosť bola označená ako dokončená.
completed_atreadonly
string (ISO 8601)/ null
Časová pečiatka kedy bola udalosť označená ako dokončená.
created_atreadonly
string (ISO 8601)
Kedy bola udalosť vytvorená.