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 wupcoming(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”.