ActiveSync Feature Grid
Feature support for Horde 6 (FRAMEWORK_6_0) with the Horde groupware stack, compared where useful to other open-source EAS implementations.
For deployment and Autodiscover setup see ActiveSync. For Horde protocol and version-configuration detail see the horde/activesync README.
Comparison accuracy: Z-Push and Tine columns below were verified against their upstream source repositories in June 2026 (Z-Hub/Z-Push develop / release 2.7.6; tine-groupware/tine main with tine20/syncroton master). Cells marked Partial or Varies mean backend, edition, or client-dependent behaviour -- not a simple yes/no.
Legend
| Symbol |
Meaning |
| Yes |
Supported in the integrated stack / default setup |
| No |
Not supported or not advertised in protocol |
| Partial |
Limited, backend-dependent, or incomplete vs Exchange |
| Varies |
Depends on backend or deployment (see Notes) |
| Planned |
On the roadmap, not yet available |
Protocol version ceiling
What each stack advertises to clients in OPTIONS / headers (actual feature parity at the highest version may be lower).
| Implementation |
Advertised EAS versions |
Notes |
| Horde 6 |
2.5 - 16.1 |
Configurable global, per-user, and per-device ceiling |
| Z-Push 2.7.x |
12.0 - 16.1 |
2.5 removed from default list; backend-dependent completeness |
| Tine / Syncroton |
2.5 - 14.1 |
MS-ASProtocolVersions in Syncroton Options.php; no 16.x, no Find |
Stack comparison
| Feature |
Horde 6 |
Z-Push 2.7.x |
Tine / Syncroton |
Notes |
| Integrated groupware backend |
Yes |
Varies |
Yes |
Z-Push: Kopano (MAPI) is full; IMAP/CalDAV/CardDAV are separate backends |
| Usable as protocol library |
Yes |
Yes |
Partial |
Tine ships Syncroton as part of the product; usable separately in principle |
| Sync mail + PIM in one session |
Yes |
Varies |
Yes |
Z-Push Combined backend wraps multiple backends |
| Efficient streams for WBXML / MIME |
Yes |
Partial |
Partial |
Z-Push: WBXML streams; Horde also streams IMAP MIME parts |
| History-based change detection |
Yes |
Varies |
Partial |
Z-Push IMAP path still uses diff-style polling; Kopano path differs |
| SOFTDELETE / date-filter sync |
Yes |
Varies |
Partial |
Syncroton supports date FilterType filters; SOFTDELETE not evident in Syncroton |
| SQL state storage |
Yes |
Partial |
Yes |
Z-Push: optional sqlstatemachine backend; default is file-based |
| NoSQL (MongoDB) state |
Yes |
No |
No |
|
| Multiple folders per collection |
Yes |
Partial |
Partial |
Horde: discrete or multiplexed; Tine: per-app folders; Z-Push: backend-dependent |
| Per-user EAS version policy |
Yes |
No |
No |
Horde: permissions (horde:activesync:version) |
| Per-device EAS version policy |
Yes |
No |
No |
Horde: activesync_device_version hook |
| Autodiscover v1 (POX/XML) |
Yes |
Partial |
Yes |
Z-Push: deployment-dependent; Tine: native since ~2019 |
| Autodiscover v2 (JSON) |
Yes |
No |
No |
Horde: requires web server routing to rpc.php |
| EAS 16.0 / 16.1 features |
Yes |
Partial |
No |
See sections below; Z-Push has AS16 code paths (2024+) but completeness varies |
| Active maintenance (2026) |
Yes |
Yes |
Yes |
Z-Push 2.7.6 (Jul 2025); Tine weekly releases; Syncroton PHP 8.4/8.5 fixes Feb 2026 |
Z-Push backends (relevant to «Varies» cells)
| Backend |
Typical use |
AS ceiling in code |
| Kopano |
Full groupware via MAPI |
16.1 |
| Combined |
Wraps multiple backends |
Lowest sub-backend, up to 16.1 |
| IMAP |
Mail only |
16.1 advertised; diff-style sync |
| CalDAV / CardDAV |
Calendar / contacts |
16.1 advertised |
Home: Z-Hub/Z-Push. Related fork with explicit 16.0/16.1 focus: grommunio-sync (separate project; some Z-Push AS16 code derives from it).
Tine ActiveSync scope
Tine integrates Syncroton for protocol handling. ActiveSync frontends exist for Felamimail (mail), Calendar, Addressbook (contacts), and Tasks -- no Notes ActiveSync frontend. Device policies are stored in SQL; policy assignment has limited admin UI (default policy in admin module; custom policies often via DB -- see Tine ActiveSync wiki). Current product repo: tine-groupware/tine.
Horde features by EAS version
The tables below list Horde 6 support. For Z-Push and Tine at the same protocol level, use the ceiling table and stack comparison above (Tine stops at 14.1; Z-Push 16.x is partial).
EAS 2.5 (Exchange 2003 SP2)
| Feature |
Horde 6 |
Notes |
| Email sync |
Yes |
Via Horde_Imap_Client; QRESYNC/MODSEQ recommended |
| Email type property |
Yes |
Icons for meeting requests, MDN, etc. |
| Hierarchical folder support |
Yes |
|
| Calendar sync |
Yes |
Kronolith |
| Meeting request / response |
Yes |
|
| Tasks sync |
Yes |
Nag |
| Contacts sync |
Yes |
Turba |
| GAL search |
Yes |
Search, ResolveRecipients |
| Provisioning / remote wipe |
Yes |
Configurable policies via permissions |
| Notes sync |
No |
Requires EAS >= 14.0 |
EAS 12.0 (Exchange 2007)
| Feature |
Horde 6 |
Notes |
| Autodiscover v1 (POX/XML) |
Yes |
HTTP Basic auth; username mapping in Horde config |
| Autodiscover v2 (JSON) |
Yes |
Unauthenticated; requires web server routing to rpc.php |
| HTML email |
Yes |
|
| Search for items not on device |
Yes |
Search command |
| Email flagging (follow-up) |
Yes |
Seen and flagged-for-follow-up |
| Full MIME support |
Yes |
|
| Out-of-office |
Yes |
Settings |
EAS 12.1 (Exchange 2007 SP1)
| Feature |
Horde 6 |
Notes |
| Reduced bandwidth (body preferences) |
Yes |
AirSyncBase:Body truncation |
| S/MIME sign / encrypt / verify on device |
Partial |
When IMP S/MIME is configured; client-dependent |
EAS 14.0 (Exchange 2010 SP1)
| Feature |
Horde 6 |
Z-Push / Tine (approx.) |
Notes |
| Notes sync |
Yes |
Z-Push Varies / Tine No |
Horde: Mnemo; Tine has no Notes AS frontend |
| SMS sync |
No |
No / No |
Horde: stubbed so clients do not break mail |
| Conversation view |
No |
No / No |
|
| Reply state sync |
Yes |
Partial / Partial |
|
| Free/busy lookup |
Partial |
No / No |
Horde: Kronolith Free/Busy URL for Outlook, not via EAS |
| Nickname cache |
No |
No / No |
|
EAS 14.1 (Exchange 2010 SP2)
| Feature |
Horde 6 |
Z-Push / Tine (approx.) |
Notes |
| Conversation segments |
No |
No / No |
|
| GAL / search photos |
Yes |
Partial / Partial |
|
| Device information in provisioning |
Yes |
Partial / Partial |
Horde: activesync_device_modify hook |
EAS 16.0 (Exchange 2016) -- Horde only among compared stacks
| Feature |
Horde 6 |
Z-Push 2.7.x |
Tine |
| Find command (mailbox / GAL) |
Yes |
Partial |
No |
| Calendar instance model |
Yes |
Partial |
No |
ClientUid round-trip |
Yes |
Partial |
No |
AirSyncBase:Location |
Yes |
Partial |
No |
| Draft folder sync |
Yes |
Partial |
No |
SmartForward / SmartReply Forwardee |
Yes |
Partial |
No |
| Recurring meeting requests in mail |
Yes |
Partial |
No |
Z-Push: protocol advertises 16.x; Find handler added for 16.1 (2023-2024, partly from grommunio-sync); Kopano backend furthest along. Tine/Syncroton does not advertise or implement 16.x.
EAS 16.1 -- Horde only among compared stacks
| Feature |
Horde 6 |
Z-Push 2.7.x |
Tine |
| Propose new time (attendee counter) |
Yes |
Partial |
No |
DisallowNewTimeProposal |
Yes |
No |
No |
| Account-only remote wipe |
Yes |
No |
No |
| Per-user 16.1 permission |
Yes |
No |
No |
Mail features (Horde; typical EAS versions)
| Feature |
Horde 6 |
Notes |
| Send / reply / forward |
Yes |
SendMail, SmartReply, SmartForward |
| Attachments |
Yes |
GetAttachment, ItemOperations:Fetch |
| User-defined IMAP flags as categories |
Yes |
|
| MDN send |
Yes |
|
| TNEF attachments |
Partial |
Common cases supported |
| Trash folder behaviour |
Yes |
Device delete -> move or expunge per IMP config |
Calendar and tasks (Horde)
| Feature |
Horde 6 |
Notes |
| Recurrence and exceptions |
Yes |
Full series + exceptions; 16.0+ instance model |
| Attendee proposals stored and synced |
Yes |
16.1 + iTip mail path |
| Task recurrence |
Partial |
Basic RRULE; Regenerate=1 not supported |
FILTERTYPE_INCOMPLETETASKS |
Yes |
Incomplete-tasks-only sync |
| Multiple calendars / task lists / note pads |
Yes |
Discrete or multiplexed per device |
Device management (Horde)
| Feature |
Horde 6 |
Notes |
| Provisioning policies |
Yes |
PIN, complexity, timeout, etc. via permissions tree |
| Full device remote wipe |
Yes |
|
| Account-only remote wipe |
Yes |
EAS >= 16.1 |
| Device block / allow |
Yes |
Hooks and admin UI |
| Per-device protocol log files |
Yes |
logging.type = perdevice |
| Per-device log toggle in admin GUI |
Planned |
|
ItemOperations:Schema |
No |
Deferred -- no known client requirement |
Not implemented in Horde (or deferred)
| Feature |
Status |
Notes |
| SMS sync |
No |
Collections stubbed so clients do not break mail sync |
| Conversation view / segments |
No |
|
| Nickname cache |
No |
|
HTTP 503 throttling (X-MS-Throttle) |
No |
Deferred |
Task Regenerate=1 |
No |
Outlook series regeneration; Nag uses completions[] |
| EAS usage dashboard |
Planned |
Operator tooling, out of protocol library |
Security policies (Horde)
Horde supports a broad set of Exchange-style provisioning policies configurable under Permissions -> Horde -> ActiveSync -> Provisioning. Examples include:
- Require device PIN / password
- Minimum password length and character classes
- Maximum failed attempts and password expiration
- Device encryption requirements
- Allow or block camera, removable storage, Wi-Fi, Bluetooth, etc. (as exposed in the permission tree)
Not all clients honor every policy. Use provisioning mode Allow if some devices do not support provisioning. See Microsoft EAS security policy documentation and Provisioning / Remote Wipe on ActiveSync.
Z-Push and Tine also support provisioning with a smaller policy set exposed through their respective configuration (Z-Push: deployment config; Tine: tine20_acsync_policy table).