welp/ical-bundle

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

Installs: 96 550

Dependents: 0

Suggesters: 0

Security: 0

Stars: 10

Watchers: 2

Forks: 13

Open Issues: 3

Type:symfony-bundle

1.0.1 2020-03-25 10:13 UTC

This package is auto-updated.

Last update: 2024-03-25 19:25:16 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

Add Welp\IcalBundle\WelpIcalBundle to your AppKernel.php:

$bundles = [
    // ...
    new Welp\IcalBundle\WelpIcalBundle(),
];

Configuration

In your config.yml:

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

Usage

<?php

    ...

    /**
     * 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;

    }