NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Appointments for Laravel

Export do kalendára (ICS)

Vygenerujte kalendárový text podľa RFC 5545 pre jeden termín alebo kolekciu. Balík zostáva bez HTTP vrstvy — vráti reťazec a spôsob doručenia je na vás:

use RoundlyConsulting\Appointments\Facades\Appointments;

$ics = Appointments::for($appointment)->ics();                        // one event — or $appointment->toIcs()
$feed = Appointments::ics($user->appointments()->upcoming()->get());  // one VCALENDAR, many VEVENTs

return response($feed, 200, [
    'Content-Type' => 'text/calendar; charset=utf-8',
    'Content-Disposition' => 'attachment; filename="appointments.ics"',
]);

Ukážkový výstup

BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Roundly Consulting//Appointments for Laravel//EN
CALSCALE:GREGORIAN
BEGIN:VEVENT
UID:[email protected]
DTSTAMP:20260615T120000Z
DTSTART:20260701T090000Z
DTEND:20260701T100000Z
SUMMARY:Clinic visit
STATUS:TENTATIVE
DESCRIPTION:Bring your previous test results
LOCATION:Clinic A
GEO:51.5074;-0.1278
ORGANIZER;CN=Front desk:mailto:[email protected]
ATTENDEE;CN=Alex Example:mailto:[email protected]
END:VEVENT
END:VCALENDAR

Čo obsahuje každá udalosť

VlastnosťZdroj
UIDUložené náhodné uuid termínu s hostiteľom z app.url (…@example.com) — jedinečné naprieč aplikáciami a stabilné aj po opätovnom naplnení databázy.
DTSTART / DTENDstarts_at / ends_at v UTC; chýbajúci koniec sa odvodí z trvania.
SUMMARYname.
DESCRIPTIONdescription, ak je vyplnený.
STATUSTENTATIVE pre pending; CONFIRMED pre confirmed a completed; CANCELLED pre cancelled, declined a no_show.
LOCATIONStĺpec location, inak meta.location.
GEOlatitude;longitude, ak sú nastavené súradnice.
ORGANIZERPrimárny e-mailový kontakt termínu; CN je meno kontaktu, inak jeho označenie.
ATTENDEEJeden riadok na účastníka, ktorého model má primárny e-mail; CN je atribút name modelu.

Účastníci bez primárneho e-mailu sa vynechajú: ATTENDEE musí byť kalendárová adresa — v praxi mailto: — a kalendárové aplikácie bez nej nemajú s čím pracovať. Ak ich chcete zahrnúť, pridajte modelom účastníkov HasContacts (pozrite Kontakty hostí).

Escapovanie a zalamovanie

Textové hodnoty sa escapujú podľa RFC 5545 §3.3.11: každý zlom riadka — CRLF z textarea, samostatné CR či LF — sa zmení na jedno escapované \n; spätné lomky, bodkočiarky a čiarky sa escapujú spätnou lomkou; ostatné riadiace znaky okrem tabulátora sa odstránia. Z hodnôt CN sa odstránia úvodzovky a riadiace znaky a ak obsahujú dvojbodku, bodkočiarku alebo čiarku, dajú sa do úvodzoviek. Dlhé riadky sa zalamujú po 75 oktetoch bez rozdelenia viacbajtového znaku UTF-8 a každý riadok končí CRLF.

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.