2017 © Pedro Peláez
 

symfony-bundle icalcreator-bundle

Symfony bundle for creating iCal formatted files

image

dyvelop/icalcreator-bundle

Symfony bundle for creating iCal formatted files

  • Sunday, August 20, 2017
  • by fdyckhoff
  • Repository
  • 1 Watchers
  • 2 Stars
  • 1,044 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 3 Open issues
  • 7 Versions
  • 8 % Grown

The README.md

Build Status, (*1)

Dyvelop iCalcreator Bundle

This bundle provides some utilities for using the iCalcreator PHP library (http://kigkonsult.se/iCalcreator/index.php) in Symfony., (*2)

Installation

Step 1: Download

Download via Composer, (*3)

composer require dyvelop/icalcreator-bundle

This project requires the packagist distribution from https://github.com/iCalcreator/iCalcreator in version 2.22., (*4)

Step 2: Enable Bundle

Enable the Bundle in the app/AppKernel.php file in your Symfony project:, (*5)

// File: app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new \Dyvelop\ICalCreatorBundle\DyvelopICalCreatorBundle(),
        );

        // ...

        return $bundles;
    }

    // ...
}

Configuration

Unique ID

You can change the default unique ID for calendars with following configuration., (*6)

dyvelop_icalcreator:
    default_unique_id: DyvelopICalCreatorBundle

Timezone

If you want to create calendar events in a timezone with daylight saving time (or summer time), you can set a default timezone globally via config:, (*7)

dyvelop_icalcreator:
    default_timezone: Europe/Berlin

Usage

Basic usage

Create a new calendar:, (*8)

$config = array(
    'unique_id' => 'My unique calendar name',
    'format'    => 'ical',            // or 'xcal'
    'filename'  => 'my-calendar.ics'  // or 'my-calendar.xml'
);
$calendar = $this->get('dyvelop_icalcreator.factory')->create($config);

Create a new calendar event:, (*9)

$event = $calendar->newEvent();
$event->setUid('foo');
$event->setSummary('Bar');
$event->setDtstart(2016, 10, 6, 20);
$event->setDtend(2016, 10, 6, 21);

See http://kigkonsult.se/iCalcreator/docs/using.html for detailed documentation of the iCalcreate PHP library., (*10)

Render calendar via controller

After creating a calendar you can use the CalendarResponse to render the file in your Symfony controller., (*11)

namespace AppBundle/Controller;

use Dyvelop\ICalCreatorBundle\Response\CalendarResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;

class DefaultController extends Controller
{
    public function indexAction()
    {
        $calendar = $this->get('dyvelop_icalcreator.factory')->create();

        // add events to calendar etc.
        // ...

        return new CalendarResponse($calendar);
    }
}

Attach calender file in mails

Using the CalendarAttachment class you can attach your calendar file in a Swiftmailer mail message., (*12)

use  Dyvelop\ICalCreatorBundle\Mailer\CalendarAttachment;

// create a new mail message via Swiftmailer
$mailer = $this->get('mailer');
$message = $mailer->createMessage();

// create calendar
$calendar = $this->get('dyvelop_icalcreator.factory')->create();

// add events to calendar etc.
// ...

// add calender attachment
$attachment = new CalendarAttachment($calendar);
$message->attach($attachment);

// add other message configurations like subject or body
// ...

$mailer->send($message);

The Versions