PHPackages                             sypets/cal2calendarize - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. sypets/cal2calendarize

ActiveTypo3-cms-extension

sypets/cal2calendarize
======================

Migrate cal plugins to calendarize

v0.0.5(4y ago)28091[1 issues](https://github.com/sypets/cal2calendarize/issues)GPL-2.0-or-laterPHP

Since May 29Pushed 3y ago2 watchersCompare

[ Source](https://github.com/sypets/cal2calendarize)[ Packagist](https://packagist.org/packages/sypets/cal2calendarize)[ RSS](/packages/sypets-cal2calendarize/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (5)Versions (4)Used By (0)

Calendar Plugin migration
=========================

[](#calendar-plugin-migration)

Migrate plugins from cal to calendarize.

!!! IMPORTANT: The cal events and category relations are already handled in the calendarize upgrade wizard. This extension handles some things which are not handled by the wizard of calendarize, such as plugin migration.

!!! WARNING: This is a first shot of migrating plugins, it greatly simplifies the migration and does not consider all configuration options. It is not possible to undo the plugin migrations. Use at your own risk. Test before using in production. Make backups.

TIP: There is a backend module "cal2calendarize" which can be used to list and visualize the migrated plugins with problems AFTER the migration. Currently, only a few problems are listed such as missing detailPid and missing storagePid. Look at the extension configuration for options.

Known problems
--------------

[](#known-problems)

- Only flexform (and tt\_content.pages and recursive) is considered, not the TypoScript in the flexform and TypoScript.
- not possible to fully map the views (switchableControllerActions)
- cal has more category modes, calendarize has only use categories or no categories
- not all configuration is considered and migrated
- in cal, it is possible to select a "calendar". This is ignored.
- in cal, the categories can be selected in the FlexFrom **and** in the tab "Categories". For migrating, we ignore the categories set in the tab. We only consider the categories selected in the flexform.

Usage
-----

[](#usage)

To run console command, use for installations setup without Composer:

```
php typo3/sysext/core/bin/typo3
```

or with Composer:

```
php vendor/bin/typo3
```

In general, the usage is:

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins [options] [uid]
```

The options and the uid argument are optional.

Show help:

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -h
```

Dry-run: show what would be migrated:

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins --dry-run
```

Migrate all (with increased verbosity):

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -vvv
```

Suppress the confirmation (do not ask for confirmation):

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -n
```

Migrate all, verbose, without confirmation (with all-actions, description see below):

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins -v -n --all-actions
```

Migrate only one record in tt\_content with uid=13221 (e.g. for testing):

```
php vendor/bin/typo3 cal2calendarize:migrateCalPlugins 13221
```

Command options
---------------

[](#command-options)

\--all-actions:

This will try to migrate all existing Controller action to a corresponding Controller action in calendarize, not just the Controller action combinations defined in calendarize. The result is that more action may be activated, but you will see a warning when editing the plugin and you should manually fix this and convert it to existing controller actions. This is a fast and sloppy solution, which might result in less problems directly after migrating, but more problems in the long run.

Mapping
-------

[](#mapping)

We do not use full name of the configuration settings here.

- TS: TypoScript
- flex: Flexform

calcalendarizeMappingflex: allowedViewsflex: switchableControllerActionsincomplete, see belowtt\_content.pagesflex: persistence.storagePid100%,TS constants: pidListflex: persistence.storagePidconstant not usedflex: eventViewPidflex: detailPid100%flex: listViewPidflex: listPid100%flex: listViewPidflex: listPid100%flex: yearViewPidflex: yearPid100%flex: monthViewPidflex: monthPid100%flex: weekViewPidflex: weekPid100%flex: dayViewPidflex: dayPid100%flex:usePageBrowserflex: hidePaginationflex yes, TS noflex:categoryModeno category modeincomplete, see belowflex:categorySelectioninsert categories into sys\_category\_record\_mm100%### Mapping of allowedViews

[](#mapping-of-allowedviews)

In cal, it is possible to combine any of the allowed views. In calendarize, we have a defined set of switchable controller actions (for example "list", "detail", "list+detail", but **not** "month+detail").

We get exact matches for list, detail and list+detail. For the year, month, etc. there is no combined view with detail. It is recommended to create a separate page for the detail view.

We try to map as best as possible, see source code. See also option --all-actions.

### Mapping of category modes

[](#mapping-of-category-modes)

In cal, there are several category modes:

- Category mode=0 (show all)
- Category mode=1 (exact): exact match
- Category mode=2 (none): show all events which DON't contain one of the selected categories
- Category mode=3 (any): show all events with at least ONE of the selected categories
- Category mode=4 (minimum): show only events which contain (at least) all the selected categories in the plugin.

[https://docs.typo3.org/typo3cms/extensions/cal/stable/\_sources/ConfigureThePlugin/FiltersTab/Index.rst.txt](https://docs.typo3.org/typo3cms/extensions/cal/stable/_sources/ConfigureThePlugin/FiltersTab/Index.rst.txt)

We cannot exactly map this to calendarize: In calendarize, there is only one category mode.

Fairly well mapped can be modes 0 and 3. For the other modes, we use the mode that fits best - either we use the existing categories or we don't.

calcalendarizeMappingmode=0do not use categories100%mode=1same as 3no exact mappingmode=2same as 0very wrongmode=3just use the categories100%mode=4same as 3no exact mapping### Mapping of categories

[](#mapping-of-categories)

The categories in cal can be defined in the flexform and in the tab "categories". We only consider the flexform. But already existing category relations will remain.

The behaviour of the categories may be quite different from the behaviour in cal because of the (incomplete) mapping of the categoryModes and these 2 ways of setting categories in cal.

### Mapping of starttime / endtime

[](#mapping-of-starttime--endtime)

Starttime

- cal: flexform: view.list.starttime
- cal: TypoScript: plugin.tx\_cal\_controller.view.list.event.starttime
- calendarize:
    - useRelativeDate=1: settings.overrideStartRelative
    - useRelativeDate=0: settings.overrideStartdate

This can be defined in cal in 3 places: in Flexform view.list.starttime in tab "TypoScript" in the Flexform or in TypoScript. Endtime

- cal: flexform: view.list.endtime
- cal: TypoScript: plugin.tx\_cal\_controller.view.list.event.endtime
- calendarize:
    - useRelativeDate=1: settings.overrideEndRelative
    - useRelativeDate=0: settings.overrideEnddate

cal:

```
view.list.starttime=2011-04-01
settings.overrideStartdate = 00:00 1-4-2011
```

cal configuration
-----------------

[](#cal-configuration)

Can be in

- flexform
- TypoScript in flexform
- TypoScript

We currently only consider flexform.

calendarize configuration
-------------------------

[](#calendarize-configuration)

Can be in

- flexform
- configuration record
- TypoScript

Examples
--------

[](#examples)

"old" cal Flexform

```

                    list,search_all,ics~icslist~single_ics,event

                    My Calendar

                    0

                    50

                    0

                    0

                    3

                    359

                    0

                    0

                    0700

                    2300

                    15

                    53864

                    cal:weekstart

                    +1 year

                    61579

                    1

                    0

                    0

                    0

                    0

                    1

                    0

                    0

```

calendarize Flexform

```

                 0

                 0

                 Calendar-&gt;list;Calendar-&gt;detail

                 Event

                 start

                 ASC

```

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

1807d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e7fbabd05ba44cd6241ee23b0d77a94b0a058915de8890928c8a29fd76b34bde?d=identicon)[sypets](/maintainers/sypets)

---

Top Contributors

[![sypets](https://avatars.githubusercontent.com/u/13206455?v=4)](https://github.com/sypets "sypets (28 commits)")

###  Code Quality

Static AnalysisPHPStan

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sypets-cal2calendarize/health.svg)

```
[![Health](https://phpackages.com/badges/sypets-cal2calendarize/health.svg)](https://phpackages.com/packages/sypets-cal2calendarize)
```

###  Alternatives

[aimeos/aimeos-typo3

Professional, full-featured and high performance TYPO3 e-commerce extension for online shops and complex B2B projects

1.5k91.2k4](/packages/aimeos-aimeos-typo3)[fluidtypo3/vhs

This is a collection of ViewHelpers for performing rendering tasks that are not natively provided by TYPO3's Fluid templating engine.

1954.1M48](/packages/fluidtypo3-vhs)[typo3/testing-framework

The TYPO3 testing framework provides base classes for unit, functional and acceptance testing.

675.0M775](/packages/typo3-testing-framework)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

63991.3k4](/packages/netresearch-rte-ckeditor-image)[leuchtfeuer/secure-downloads

"Secure Download": Apply TYPO3 access rights to ALL file assets (PDFs, TGZs or JPGs etc. - configurable) - protect them from direct access.

22234.7k1](/packages/leuchtfeuer-secure-downloads)[eliashaeussler/typo3-form-consent

Extension for TYPO3 CMS that adds double opt-in functionality to EXT:form

1481.0k](/packages/eliashaeussler-typo3-form-consent)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
