icalBundle
, (*1)
Symfony Bundle to manage .ics iCal file (creating and eventually reading), (*2)
use of the library: https://github.com/jasvrcek/ICS, (*3)
Setup
Add bundle to your project:, (*4)
composer require welp/ical-bundle
Add Welp\IcalBundle\WelpIcalBundle
to your AppKernel.php
:, (*5)
$bundles = [
// ...
new Welp\IcalBundle\WelpIcalBundle(),
];
Configuration
In your config.yml
:, (*6)
welp_ical:
default_timezone: "Europe/Paris"
default_prodid: "-//WelpIcalBundle//Calendar App//FR"
Usage
``` php
<?php, (*7)
...
/**
* Generate calendar event ICAL for welpAction
* @Config\Route("/ical", name="app_ical")
*/
public function icalAction()
{
$icalFactory = $this->get('welp_ical.factory');
//Create a calendar
$calendar = $icalFactory->createCalendar();
//Create an event
$eventOne = $icalFactory->createCalendarEvent();
$eventOne->setStart(new \DateTime())
->setSummary('Family reunion')
->setUid('event-uid');
//add an Attendee
$attendee = $icalFactory->createAttendee();
$attendee->setValue('moe@example.com')
->setName('Moe Smith');
$eventOne->addAttendee($attendee);
//set the Organizer
$organizer = $icalFactory->createOrganizer();
$organizer->setValue('titouan@welp.fr')
->setName('Titouan BENOIT')
->setLanguage('fr');
$eventOne->setOrganizer($organizer);
//new event
$eventTwo = $icalFactory->createCalendarEvent();
$eventTwo->setStart(new \DateTime())
->setSummary('Dentist Appointment')
->setUid('event-uid');
$calendar
->addEvent($eventOne)
->addEvent($eventTwo);
$headers = array();
$calendarResponse = new Welp\IcalBundle\Response\CalendarResponse($calendar, 200, $headers);
return $calendarResponse;
}
```, (*8)