renfordt / icstorm
A PHP package for generating ICS files.
Requires
- php: ^8.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.52
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^11
This package is auto-updated.
Last update: 2024-11-26 15:29:43 UTC
README
A package for creating and importing iCalendar/ICS files with one or multiple events.
Installation
The recommended way to install this package is using Composer. Execute the following command. This will not only install the package but also add it to your project's composer.json file as a dependency.
composer require renfordt/icstorm
Usage
Create Events
The PHP code below is used to create a new event.
The variables at the
beginning (title
, summary
, description
, startDate
, endDate
, classification
, transparency
, and location
)
represent different details of the event:
title
: The title of the event.summary
: A brief overview of the event.description
: Detailed information about the event.startDate
andendDate
: The start and end dates of the event and are mandatory.classification
: The visibility of the event, indicating whether it's private or public.transparency
: Indicates whether the time of the event is blocked or free.location
: Location of the event.
These details are collected together into an associative array using the compact
function. This array is then passed
as an argument to the Event::createEvent
function, which generates an instance of an event with these details.
$title = 'Test Event'; $summary = 'Test Event'; $description = 'This is a test event'; $startDate = '2024-10-15 18:15:00'; $endDate = '2024-10-15 18:45:00'; $classification = EventClassification::private; $transparency = EventTransparency::opaque; $location = 'Test Location'; $event = Event::create( compact('title', 'summary', 'description', 'startDate', 'endDate', 'classification', 'transparency', 'location'));
Create an iCalendar
To create an iCalendar/ICS file you can use the following code.
First create a new Calendar instance and add all required Events to it. After that you can generate the ICS string or the file with the functions.
$calendar = new Calendar(); $calendar->addEvent($event); $ics = $calendar->generateICS(); // generates a ICS string $icsFile = $calendar->generateICSFile(); // generates a ICS file