PHPackages                             audriga/jmap-icalendar\_vcard - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. audriga/jmap-icalendar\_vcard

ActiveLibrary[Parsing &amp; Serialization](/categories/parsing)

audriga/jmap-icalendar\_vcard
=============================

Converts between iCalendar and JSCalendar or between vCard and JSContact

0.5.0(2y ago)224[1 PRs](https://github.com/audriga/jmap-php-icalendar_vcard/pulls)MITPHPPHP &gt;=5.6

Since Apr 7Pushed 3w ago1 watchersCompare

[ Source](https://github.com/audriga/jmap-php-icalendar_vcard)[ Packagist](https://packagist.org/packages/audriga/jmap-icalendar_vcard)[ Docs](https://github.com/audriga/jmap-php-icalendar_vcard)[ RSS](/packages/audriga-jmap-icalendar-vcard/feed)WikiDiscussions main Synced 3w ago

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

OpenXPort JMAP iCalendar/vCard library
======================================

[](#openxport-jmap-icalendarvcard-library)

The JMAP iCalendar/vCard library extends [openxport-jmap](https://github.com/audriga/openxport-jmap) with the ability to convert between iCalendar and JSCalendar as well as vCard and JSContact.

It should be simple for consumers to migrate from another service to your service and vice versa. OpenXPort makes it easy to expose a RESTful API Endpoint for data portability. It is built on top of the interoperable protocol [JMAP](https://jmap.io/), which already supports a wide variety of data types and can be extended for more.

This library currently aims to implement the following specifications:

- JSCalendar: Converting from and to iCalendar [draft-ietf-calext-jscalendar-icalendar](https://datatracker.ietf.org/doc/draft-ietf-calext-jscalendar-icalendar/)
- JSContact: Converting from and to vCard [draft-ietf-calext-jscontact-vcard](https://datatracker.ietf.org/doc/draft-ietf-calext-jscontact-vcard/)

OpenXPort is built with compatibility for older systems in mind. We support all PHP versions down to 5.6 to provide data portability even for older systems.

Installation
------------

[](#installation)

### Local installation

[](#local-installation)

1. Run `make` to initialize the project. It uses your local PHP version with most current dependencies (currently PHP 8.2). Use other build targets (e.g. `make php70_mode`) instead, in case you need to build for a different version.

Usage
-----

[](#usage)

### Standalone

[](#standalone)

Will be supported in a future version.

### Usage in openxport-jmap

[](#usage-in-openxport-jmap)

This library provides Adapters and Mappers specific to openxport-jmap. There are different versions of adapters and mappers to choose from:

- Those aiming to be fully compliant with above's IETF specs (e.g. `JSCalendarICalendarAdapter`)
- System-specific adaptions to the conversion (e.g. `NextcloudJSContactVCardAdapter`)

They can be included in OpenXPort projects the usual way:

```
$adapters = array(
    "Cards" => new \OpenXPort\Adapter\NextcloudJSContactVCardAdapter()
...
$mappers = array(
    "Cards" => new \OpenXPort\Mapper\JSContactVCardMapper(),
...
```

Development
-----------

[](#development)

### Installation

[](#installation-1)

1. Run `make` or one of the targets for old PHP versions above.
2. Run `make update` to update dependencies and make development tools available

### Tests

[](#tests)

To run all tests run `make fulltest`. This requires [Podman](https://podman.io/)(for Static Analysis).

You can also run them separately:

- **Static Analysis** via `make lint`
- **Unit Tests** via `make unit_test`

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance62

Regular maintenance activity

Popularity10

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 67.9% 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 ~91 days

Recently: every ~98 days

Total

8

Last Release

897d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1cf507c65ea8039474feb85e3a543f631962812a2607932b21e5cbced996f7c2?d=identicon)[audriga](/maintainers/audriga)

---

Top Contributors

[![gfaudriga](https://avatars.githubusercontent.com/u/114747793?v=4)](https://github.com/gfaudriga "gfaudriga (169 commits)")[![jaudriga](https://avatars.githubusercontent.com/u/64837696?v=4)](https://github.com/jaudriga "jaudriga (67 commits)")[![mrstanb](https://avatars.githubusercontent.com/u/18291178?v=4)](https://github.com/mrstanb "mrstanb (13 commits)")

---

Tags

jmapgroupware

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/audriga-jmap-icalendar-vcard/health.svg)

```
[![Health](https://phpackages.com/badges/audriga-jmap-icalendar-vcard/health.svg)](https://phpackages.com/packages/audriga-jmap-icalendar-vcard)
```

###  Alternatives

[mck89/peast

Peast is PHP library that generates AST for JavaScript code

19037.7M41](/packages/mck89-peast)[sauladam/shipment-tracker

Parses tracking information for several carriers, like UPS, USPS, DHL and GLS by simply scraping the data. No need for any kind of API access.

9642.0k](/packages/sauladam-shipment-tracker)[json-mapper/laravel-package

The JsonMapper package for Laravel

25188.9k3](/packages/json-mapper-laravel-package)[concrete5/core

Concrete – an open source content management system.

20163.8k49](/packages/concrete5-core)[moonshine/layouts-field

Field for repeating groups of fields for MoonShine

107.9k](/packages/moonshine-layouts-field)[tcds-io/php-jackson

A lightweight, flexible object serializer for PHP, inspired by FasterXML/jackson

112.9k10](/packages/tcds-io-php-jackson)

PHPackages © 2026

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