---
title: "Fasáda Appointments — Appointments for Laravel | Roundly"
description: "Prehľad fasády Appointments — builder schedule(), vytváranie z DTO, handle for() s participants(), dostupnosť, ICS feedy a náhľady opakovaní."
url: https://roundly-consulting.com/sk/open-source/navody/appointments-for-laravel/fasada
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Appointments for Laravel](https://roundly-consulting.com/sk/open-source/navody/appointments-for-laravel.md)

# Fasáda Appointments

Všetko prechádza cez RoundlyConsulting\\Appointments\\Facades\\Appointments. Jej koreňom je AppointmentManager, singleton v kontajneri, ktorý môžete aj injektovať (pozrite DI a akcie). schedule(), create() a createRecurring() zapisujú nové rezervácie, for($appointment) obmedzí každú zmenu na jednu rezerváciu a metódy na čítanie zodpovedajú otázky dostupnosti a exportu bez akéhokoľvek zápisu:

```php
use Carbon\CarbonImmutable;
use RoundlyConsulting\Appointments\DataTransferObjects\RecurrenceData;
use RoundlyConsulting\Appointments\Enums\Frequency;
use RoundlyConsulting\Appointments\Enums\Status;
use RoundlyConsulting\Appointments\Facades\Appointments;

// Create
$appointment = Appointments::schedule('Consultation')->startingAt('2026-07-01 09:00')->lasting(45)->create();
$appointment = Appointments::create($appointmentData);             // from an AppointmentData
$series = Appointments::createRecurring($appointmentData, $rule);  // Collection<int, Appointment>

// One booking
$booking = Appointments::for($appointment);                        // AppointmentHandle
$booking->reschedule(CarbonImmutable::parse('2026-07-02 10:00'));  // keeps the duration
$booking->confirm();                                               // or cancel(), complete(), decline(), markNoShow()
$booking->transition(Status::Completed);
$booking->participants()->add($user);                              // AppointmentParticipants
$booking->ics();                                                   // one-event calendar

// Reads — nothing is written
Appointments::isAvailable($doctor, $start, $end);                  // bool
Appointments::conflicts($doctor, $start, $end);                    // Collection<int, Appointment>
Appointments::ics($user->appointments()->upcoming()->get());       // one VCALENDAR, many VEVENTs
Appointments::occurrences($start, new RecurrenceData(Frequency::Weekly, count: 4)); // list<CarbonImmutable>

// Tests
$fake = Appointments::fake();                                      // AppointmentsFake
```

## Prehľad metód

| Metóda | Vracia |
| --- | --- |
| `schedule(string $name)` | AppointmentBuilder — zreťazte metódy buildera a zavolajte create() alebo createRecurring(). |
| `create(AppointmentData $data)` | Appointment. |
| `createRecurring(AppointmentData $data, ?RecurrenceData $rule = null)` | Collection<int, Appointment> — bez pravidla použije recurrence z DTO; ak chýba aj to, kolekciu s jedným termínom. |
| `for(Appointment $appointment)` | AppointmentHandle — reschedule(), transition(), confirm(), cancel(), complete(), decline(), markNoShow(), participants(), ics(). |
| `for($appointment)->participants()` | AppointmentParticipants — add(), remove(), has(), all(). |
| `conflicts(Model $participant, $start, $end, ?Appointment $ignore = null)` | Collection<int, Appointment> — prekrývajúce sa rezervácie účastníka. |
| `isAvailable(Model $participant, $start, $end, ?Appointment $ignore = null)` | bool — voľno počas celého okna. |
| `ics(iterable $appointments)` | string — jeden VCALENDAR s jedným VEVENT na termín. |
| `occurrences(CarbonInterface $start, RecurrenceData $rule)` | list<CarbonImmutable> — začiatky podľa pravidla, bez zápisu. |
| `fake()` | AppointmentsFake — pozrite Testovanie. |

## Handle for()

Appointments::for($appointment) vráti AppointmentHandle naviazaný na danú rezerváciu. reschedule() ponechá trvanie, ak nezadáte nové, a spustí AppointmentRescheduled; transition() a skratky ako confirm() prechádzajú stráženým stavovým automatom; participants() vráti AppointmentParticipants obmedzené na túto rezerváciu s metódami add(), remove(), has() a all(); ics() vykreslí rezerváciu ako kalendár s jednou udalosťou.

## Skratky na modeli

Metódy confirm(), cancel(), complete(), decline(), markNoShow(), transitionTo() a toIcs() na modeli Appointment sú len skratkou k tomu istému handlu — volajú for($this) na manažéri, takže ich vidí aj prepísanie v hostiteľskej aplikácii, aj Appointments::fake().

- Každý zápis — z fasády, injektovaného manažéra, buildera, handlu či skratky na modeli — prejde jednou metódou manažéra, ktorá si akciu získa z kontajnera, takže akcia, ktorú previažete, platí všade.
- Každý zápis rezervácie prebehne v jednej transakcii a eventy balíka sa spustia až po jej potvrdení: odmietnutá či zlyhaná rezervácia nezanechá riadok ani nespustí event.
- Builder, handle aj prístup k účastníkom dostanete hotové — začnite od schedule() a for(), nikdy nie cez new.

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/appointments-for-laravel.md)
