Skip to content

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Simple ICal Exporter library

requires Twig templating engine to render ICS files.

Installation:

composer require acrnogor/ical-exporter

Usage:

// first, we need Twig environement
$loader = new Twig_Loader_Filesystem();
$twig   = new Twig_Environment($loader, [
    'cache' => __DIR__ . '/var/cache',
]);

// now create new ICalExporter object and download event items as ICS file
$filename = 'this-is-my-calendar.ics';
$icalExporter = new ICalExporter($twig);
$ice->downloadAsICal($items, $filename);

Or, if you just want ICS body as string/text:

// you an either repeat Twig part or just use Dependency Injection (i.e. in Symfony) to inject twig to the class, then fetch it as a service
...

// now create new ICalExporter object and download event items as ICS file
$icalExporter = new ICalExporter($twig);
$icsText = $ice->getICalDataAsString($items);
echo $icsText;

Symfony 3.0+ usage

Add ICalExporter to your Symfony project via composer install. Then, define a Symfony service in your services.yml:

ical_exporter:
    class: Acrnogor\ICalExporter\ICalExporter
    arguments: ["@twig"]

and then register template path in twig configuration in config.yml:

twig:
    paths:
        '%kernel.root_dir%/../vendor/acrnogor/ical-exporter/src/View/': ~

then you can use this service in your controller like zis:

$icalExporter = $this->get('ical_exporter');
$icalExporter->downloadAsICal($events, 'give-some-filename.ics');

Todo:

  • maybe implement a non twig version? Meh...

On packagist:

https://packagist.org/packages/acrnogor/ical-exporter

About

Simple ICal export and download library

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages