Przejdź do treści
Intum
Aktualizacja: Wyświetleń: 231 4 min czytania

Endpointy API kalendarza

Autoryzacja: Authorization: Bearer TOKEN. Token wymaga uprawnienia calendar.

Kalendarze

Metoda Ścieżka Opis
GET /calendar/calendars.json Lista kalendarzy konta
GET /calendar/calendars/:id.json Pojedynczy kalendarz
POST /calendar/calendars.json Utworzenie kalendarza
PATCH /calendar/calendars/:id.json Aktualizacja
DELETE /calendar/calendars/:id.json Usunięcie (wydarzenia są odpinane, nie usuwane)

Pola kalendarza:

Pole Typ Opis
name string Nazwa (wymagane)
description text Opis
color string Kolor w formacie hex #3b82f6

Wydarzenia

Metoda Ścieżka Opis
GET /calendar/events.json Lista wydarzeń
GET /calendar/events/:id.json Pojedyncze wydarzenie
POST /calendar/events.json Utworzenie
PATCH /calendar/events/:id.json Aktualizacja
DELETE /calendar/events/:id.json Usunięcie

Parametry GET listy:

  • calendar_id - filtr po kalendarzu
  • client_id - filtr po kliencie CRM
  • eventable_type - filtr po typie powiązanego obiektu
  • from, to - zakres dat (YYYY-MM-DD)
  • upcoming=1 - tryb najbliższych wydarzeń, rozwija cykliczne w wirtualne wystąpienia
  • limit - liczba wyników w upcoming (domyślnie 10, max 30)

Pola wydarzenia:

Pole Typ Opis
name string Nazwa (wymagane)
description text Opis
start_time datetime Początek (wymagane)
end_time datetime Koniec (opcjonalne, dla wydarzeń punktowych)
all_day boolean Całodniowe
color string Kolor hex; pusty = kolor kalendarza
calendar_id integer ID kalendarza
client_id integer ID klienta z CRM (opcjonalne)
recurrence_type string daily, weekly, monthly, yearly lub null
recurrence_interval integer Co ile jednostek powtórzyć (domyślnie 1)
recurrence_end_date date Do kiedy się powtarza (puste = bez końca)
recurrence_count integer Maksymalna liczba wystąpień
recurrence_days array Dni tygodnia dla weekly, np. ["mon","wed","fri"]

Tworzenie wydarzenia

POST /calendar/events.json
Authorization: Bearer TOKEN
Content-Type: application/json

Proste, jednorazowe:

{
  "event": {
    "name": "Spotkanie z klientem ACME",
    "start_time": "2026-05-12T10:00:00",
    "end_time": "2026-05-12T11:00:00",
    "calendar_id": 3,
    "client_id": 471
  }
}

Cotygodniowe (poniedziałki i środy, do końca roku):

{
  "event": {
    "name": "Standup",
    "start_time": "2026-05-04T09:00:00",
    "end_time": "2026-05-04T09:15:00",
    "calendar_id": 3,
    "recurrence_type": "weekly",
    "recurrence_interval": 1,
    "recurrence_days": ["mon", "wed"],
    "recurrence_end_date": "2026-12-31"
  }
}

Urodziny klienta (rocznie, bez końca):

{
  "event": {
    "name": "Urodziny - Jan Kowalski",
    "start_time": "2026-06-15T00:00:00",
    "all_day": true,
    "client_id": 471,
    "recurrence_type": "yearly"
  }
}

Odpowiedź (201 Created)

{
  "id": 1234,
  "name": "Spotkanie z klientem ACME",
  "start_time": "2026-05-12T10:00:00.000+02:00",
  "end_time": "2026-05-12T11:00:00.000+02:00",
  "calendar_id": 3,
  "client_id": 471,
  "recurrence_type": null,
  "effective_color": "#3b82f6",
  "token": "event_token_xxx"
}

Pobranie wydarzeń klienta

GET /calendar/events.json?client_id=471

Zwraca wszystkie wydarzenia, do których przypięty jest klient o ID 471. Tych samych danych używa zakładka Wydarzenia na karcie klienta CRM.

Najbliższe wydarzenia (upcoming)

GET /calendar/events.json?upcoming=1&limit=20

Zwraca posortowaną listę najbliższych wydarzeń w okresie 90 dni naprzód. Wydarzenia cykliczne są rozwijane na poszczególne wystąpienia (każde z własnym start_time, ale tym samym id rekordu). Idealne do widgetu “Co masz dziś” lub “Najbliższe spotkania”.