Wyświetlanie wydarzeń na własnej stronie (feed wydarzeń)
Możesz udostępnić wybrane wydarzenia w publicznym feedzie JSON bez klucza i zasilać nim własny kalendarz na stronie z poziomu Univents — razem z ceną „od” i informacją o wyprzedaniu.
Chcesz dodatkowo pokazywać swoje wydarzenia na własnej stronie — we własnym designie, a nie jako osadzoną stronę Univents? Możesz w tym celu udostępnić wybrane wydarzenia. Univents udostępnia je wtedy w publicznym feedzie tylko do odczytu, który Twoja strona (lub strona Twojej agencji) może pobrać i samodzielnie wyświetlić.
Pokazywanie wydarzenia na stronie
Udostępnienie włączasz bezpośrednio przy wydarzeniu, a nie centralnie w jednym miejscu:
- Otwórz wybrane wydarzenie.
- W nagłówku widoku szczegółów kliknij przełącznik Pokaż na stronie.
- Univents zapisuje zmianę od razu i potwierdza ją krótkim komunikatem.
Gdy przełącznik jest włączony, wydarzenie pojawia się w feedzie w ciągu kilku minut. Jeśli go wyłączysz albo usuniesz wydarzenie, zniknie z feedu równie automatycznie. Przełącznik działa tylko dla tego jednego wydarzenia — nie ma zbiorczego udostępniania wszystkich wydarzeń naraz.
Co zawiera feed
Feed zwraca wyłącznie dane przeznaczone do publicznego wyświetlania w kalendarzu: tytuł, opis, godzinę rozpoczęcia i zakończenia, informację, czy data jest już ostateczna, miejsce wydarzenia, obraz tytułowy, tagi, link do sprzedaży biletów (jeśli wydarzenie ma aktywną stronę biletową – w wersji roboczej brakuje linku do biletów i ceny), a także najniższą nadal dostępną cenę biletu oraz informację o wyprzedaniu. Dane wewnętrzne, takie jak budżet, liczba gości, notatki, dane kontaktowe, status czy dane finansowe, nigdy nie trafiają do feedu — niezależnie od tego, czy wydarzenie jest publiczne. Pule biletów, nazwy kategorii i dane sprzedaży również pozostają wewnątrz — na zewnątrz trafia tylko cena i informacja „Wyprzedane: tak/nie”.
Cena od i Wyprzedane
Jeśli sprzedajesz bilety przez Univents, feed zawiera dwie dodatkowe wartości, z których Twoja strona może zbudować napis „od 25 €” oraz oznaczenie „Wyprzedane”:
price_from— najniższa cena biletu, którą odwiedzający może jeszcze kupić, jako kwota brutto (czyli to, co w sklepie z biletami widnieje przy kategorii). Gdy najtańsza kategoria jest wyprzedana, automatycznie wskakuje kolejna, droższa. Dzięki temu strona nigdy nie obiecuje ceny, której nie ma już w sklepie.price_from_currency— waluta Twojego workspace’a w formie skrótu, np.EURlubCHF.tickets_sold_out—true, gdy żadna kategoria biletów nie jest już dostępna do kupienia. Dopóki jakakolwiek kategoria ma jeszcze bilety, wartość pozostajefalse, nawet jeśli pojedyncze kategorie są już pełne.
Gdy wszystko jest wyprzedane, price_from jest puste (null) — cena „od” obok napisu „Wyprzedane” zachęcałaby do zakupu, który nie jest możliwy. Wydarzenie bez sprzedaży biletów zwraca price_from: null i tickets_sold_out: false: nic nie sprzedaje, więc nie może być wyprzedane.
Jeśli stornujesz bilet, miejsce od razu się zwalnia — kategoria znów jest dostępna do kupienia i ponownie uwzględniana w cenie „od”. Ponieważ feed jest krótko buforowany, świeżo wyprzedane wydarzenie może na Twojej stronie jeszcze przez kilka minut wyglądać na dostępne.
Obraz i opis: wydarzenie, a nie strona biletowa
W kalendarzu na stronie liczą się obraz i opis samego wydarzenia — czyli to, co uzupełniasz w wydarzeniu w sekcji Wygląd. Obraz i opis strony rezerwacji lub strony biletowej należą do tej strony i nie trafiają automatycznie do kalendarza na stronie. Oba rozwiązania są zamierzone: wiele firm celowo pokazuje w sklepie z biletami inny motyw niż w kalendarzu na własnej stronie.
Jeśli chcesz, żeby były takie same, musisz to zrobić jednorazowo:
- Otwórz stronę rezerwacji lub stronę biletową i przejdź do sekcji Szczegóły.
- Pod obrazem i opisem znajdziesz wskazówkę oraz przycisk Zastosuj też w kalendarzu na stronie.
- Potwierdź pytanie kontrolne. Obraz i opis strony zostaną wtedy przeniesione do powiązanego wydarzenia; dotychczasowe dane w wydarzeniu zostaną nadpisane.
Przycisk pojawia się tylko wtedy, gdy strona jest powiązana z wydarzeniem (w przypadku stron biletowych zawsze tak jest). Przenoszony jest ostatnio zapisany stan strony, a pola, które na stronie są puste, pozostają w wydarzeniu bez zmian — pusta strona nigdy więc nie usunie obrazu. Zanim zmiana dotrze do kalendarza na stronie, może minąć kilka minut, ponieważ feed jest krótko buforowany.
To, jak duży będzie obraz, zależy od Twojej strony — Univents dostarcza obraz w oryginalnym rozmiarze.
Pobieranie feedu
Feed jest publiczny i dostępny bez logowania oraz klucza API — strona lub zewnętrzne narzędzie może go pobrać bezpośrednio przez fetch:
GET https://univents.app/api/public/dein-workspace/events
GET https://univents.app/api/public/dein-workspace/events/{eventId}
dein-workspace to slug Twojego workspace’a, który znajdziesz też w pasku adresu przeglądarki po /home/. Parametrami from i to zawężasz zakres czasu, a parametrem limit liczbę wyników (domyślnie 50, maksymalnie 100). limit jest dopasowywany do trzech poziomów — 25, 50 lub 100 — aby cache obsługiwał niewiele wariantów odpowiedzi: żądana wartość jest zawsze zaokrąglana w górę do następnego poziomu, np. ?limit=10 zwraca tak samo 25 wpisów jak ?limit=25, a wszystko powyżej 100 jest ograniczane do 100. Bez parametrów feed zwraca wszystkie udostępnione wydarzenia od dziś.
Przykładowa odpowiedź wygląda tak:
{
"workspace": "dein-workspace",
"count": 2,
"events": [
{
"id": "…",
"title": "Sommerkonzert",
"description": "…",
"start": "2026-08-20T18:00:00Z",
"end": "2026-08-20T23:00:00Z",
"date_is_confirmed": true,
"venue": "Großer Saal",
"image_url": "https://…",
"tags": ["Konzert"],
"ticket_url": "https://univents.app/book/dein-workspace/deine-seite",
"price_from": 25,
"price_from_currency": "EUR",
"tickets_sold_out": false,
"updated_at": "2026-08-05T09:00:00Z"
}
]
}
Dla deweloperów i agencji
Feed został celowo zaprojektowany tak, aby dało się go wpiąć bezpośrednio w istniejącą stronę bez zarządzania danymi dostępowymi:
- Bez uwierzytelniania i klucza API — trasa jest publicznie dostępna, ale zwraca wyłącznie wydarzenia danego workspace’a z włączonym przełącznikiem.
- CORS jest otwarty, więc pobranie przez
fetchdziała bezpośrednio w przeglądarce na dowolnej stronie. - Buforowanie — odpowiedzi można krótko buforować (kilka minut), dzięki czemu częste zapytania pozostają szybkie. Świeżo udostępnione wydarzenie nie pojawia się więc natychmiast, tylko w ciągu kilku minut.
- Limit zapytań — przy bardzo dużej liczbie zapytań w krótkim czasie z tego samego źródła trasa zwraca błąd zamiast pustych danych; przy normalnym użyciu na stronie nie ma to znaczenia.
- Nieznany slug workspace’a zwraca błąd, a nie pustą listę — dzięki temu od razu zauważysz, że slug jest błędny.
Najczęstsze pytania
Czy w feedzie widzę też lokalizacje, które są tylko zajęte, ale nie są udostępnione publicznie? Nie. Feed pokazuje wyłącznie wydarzenia, przy których aktywowano przełącznik Pokaż na stronie — nigdy ogólnego obłożenia Twoich lokalizacji.
Czy feed zawiera ceny? Tak, jedną: najniższą nadal dostępną cenę biletu (price_from, brutto) wraz z walutą. Pełny cennik nadal jest dostępny tylko na stronie rezerwacji, na którą wskazuje ticket_url.
Dlaczego moja strona pokazuje wyższą cenę niż wczoraj? Ponieważ tańsza kategoria jest już wyprzedana. Feed zawsze podaje najniższą cenę, jaką można jeszcze kupić — a nie najniższą, jaka kiedykolwiek istniała.
Dlaczego przy moim wydarzeniu bez biletów nie ma napisu „Wyprzedane”? Ponieważ nie sprzedaje ono biletów. tickets_sold_out ma wartość true tylko wtedy, gdy istnieje sprzedaż biletów i nic już w niej nie zostało.
Czy muszę udostępniać każde wydarzenie osobno? Tak, obecnie nie ma udostępniania zbiorczego. Przełącznik celowo znajduje się przy każdym wydarzeniu z osobna, abyś miał(a) pełną kontrolę nad tym, co jest publicznie widoczne.
Czy ta funkcja jest powiązana z konkretnym planem? Feed pokazuje wyłącznie to, co sam(a) udostępnisz — nie ma żadnych dodatkowych wymagań poza standardowym uprawnieniem do wydarzeń.
Czy pobieranie feedu coś mnie kosztuje? Nie, feed to wyłącznie dostęp do odczytu danych, które już udostępniłeś(-aś) — nie ma osobnych kosztów.