aldaflux/ical-bundle

Symfony Bundle to manage .ics iCal file (creating and eventually reading), forked for synfony 6

Installs: 64

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 13

Type:symfony-bundle

v1.0.8 2024-01-22 10:18 UTC

This package is auto-updated.

Last update: 2024-04-22 10:49:08 UTC


README

Build Status Packagist Packagist GitHub license

Symfony Bundle to manage .ics iCal file (creating and eventually reading)

use of the library: https://github.com/jasvrcek/ICS

Setup

Add bundle to your project:

#composer require welp/ical-bundle
composer require aldaflux/ical-bundle

Configuration

In your config.yml:

aldaflux_ical:
    default_timezone: "Europe/Paris"
    default_prodid: "-//WelpIcalBundle//Calendar App//FR"

Usage

<?php

    ...


	use Aldaflux\IcalBundle\Factory\Factory;

    /**
     * Generate calendar event ICAL for welpAction
     * @Config\Route("/ical", name="app_ical")
     */
    public function icalAction(Factory $icalFactory)
    {

        //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 Aldaflux\IcalBundle\Response\CalendarResponse($calendar, 200, $headers);

        return $calendarResponse;

    }