# Webmail, calendars and contacts

> Open webmail from the panel without a password, sign in to SnappyMail directly, and sync each mailbox's calendars and contacts over CalDAV/CardDAV with phones and Thunderbird.

Source: https://zopanel.net/docs/webmail-calendar  
Updated: 2026-10-09

ZoPanel adds two optional services to the mail server: **webmail** (SnappyMail), for reading and sending mail in a browser, and **calendars and contacts** (Radicale), which gives every mailbox its own CalDAV calendars and CardDAV address books. Both sign in with the mailbox address and password. Install them when your users need mail without a desktop app or want their calendar and contacts synced across devices.

## Install (administrator)

Both services need the mail server. See [Email](/docs/email).

| Service | Install from | Port | Requirements |
| --- | --- | --- | --- |
| Webmail | **Email → Install webmail**, or **Components → Webmail** | 2096 | A PHP version installed on the server |
| Calendars and contacts | **Components → Calendars & contacts (CalDAV/CardDAV)** | 2080 | The mail server |

You can also choose them when installing the server: `--with webmail,dav` (see [Installation](/docs/install)). The installer opens the port in the firewall. Webmail downloads the latest SnappyMail release from GitHub, and calendars use the Radicale package of your distribution.

Both services use the panel's certificate. Set up **Settings → Panel domain & SSL** first, and open both services with the panel domain or the mail hostname (the certificate names both when the mail hostname points to the server) so that browsers and devices see a trusted certificate. See [Panel settings](/docs/panel-settings).

## Webmail

### Open webmail from the panel (no password)

1. Open **Email** and choose the domain.
2. On the mailbox's row, click the envelope icon **Open webmail (no password needed)**.

Webmail opens in a new tab, already signed in to that mailbox. Customers, resellers and administrators can do this for every mailbox they manage, and each login is recorded in the activity log.

How it works: the panel never knows mailbox passwords. Instead, the server issues a login code that opens only that one mailbox and is valid for 12 hours, and SnappyMail turns it into a single-use link valid for about 10 seconds. There is no master password. Changing the mailbox's password or deleting the mailbox revokes the code at once.

### Sign in directly

Users who do not have panel access open:

```text
https://<panel domain>:2096
```

and sign in with the full email address and the mailbox password. The **Webmail** button at the top of the **Email** page and in the **Email client settings** card opens the same address.

### What to know about webmail

- Webmail connects to this server's IMAP and SMTP itself; there is nothing to configure per domain. The SnappyMail admin panel is turned off because ZoPanel manages the domains.
- One upload, such as an attachment, can be up to 25 MB.
- Filters and autoreplies are not edited in webmail. Use **Rules and autoreply** in the panel; they apply in webmail too. See [Mail rules and limits](/docs/mail-rules).
- Mail sent from webmail counts toward the account's hourly sending limit like any other SMTP login.
- Mailboxes of a suspended hosting account cannot sign in.

## Calendars and contacts (CalDAV/CardDAV)

Each mailbox gets its own calendars and address books on:

```text
https://<panel domain>:2080/
```

Sign in with the full email address and the mailbox password. Each user sees only their own collections, which are stored under `https://<panel domain>:2080/<address>/`. Deleting a mailbox, or disabling email for its domain, also deletes its calendars and contacts.

Every mailbox starts with a calendar named **Calendar** (`…/<address>/calendar/`) and an address book named **Contacts** (`…/<address>/contacts/`), so apps that can only use existing collections, such as Thunderbird, have something to sync right away. Mailboxes that already had calendar data are left as they were. To add more calendars or address books, use an app that can create them: Apple Calendar and Contacts on iPhone, iPad and Mac, or DAVx⁵ on Android.

### iPhone and iPad

1. Open **Settings → Calendar → Accounts → Add Account → Other** (on recent iOS versions, Calendar is under **Settings → Apps**).
2. Tap **Add CalDAV Account**.
3. **Server**: `panel.example.com:2080`. **User Name**: the full address. **Password**: the mailbox password. Tap **Next**.
4. The **Calendar** calendar appears in the Calendar app. To add another, tap **Calendars → Add Calendar** and choose this account.

For contacts, tap **Add CardDAV Account** in the same place and use the same values.

### Mac

1. Open **Calendar → Settings → Accounts** and click **+**, then choose **Other CalDAV Account**.
2. Set **Account Type** to **Advanced**.
3. Enter the full address and password, **Server Address** `panel.example.com`, **Server Path** `/`, **Port** `2080`, and tick **Use SSL**.
4. Click **Sign In**. Add more calendars with **File → New Calendar** and choose this account.

For contacts, use **Contacts → Settings → Accounts** and add a CardDAV account with the same server, port and login.

### Android (DAVx⁵)

Android has no built-in CalDAV or CardDAV support. Install DAVx⁵ (Google Play or F-Droid), then:

1. Tap **+** and choose **Login with URL and user name**.
2. **Base URL**: `https://panel.example.com:2080/`. Enter the full address and the mailbox password, then tap **Login**.
3. Choose **Create account**.
4. On the account screen, tick the collections to sync. Use the menu to **Create calendar** or **Create address book** if you want more.

The calendars and contacts then appear in the phone's own Calendar and Contacts apps.

### Thunderbird

- **Calendar:** choose **New Calendar → On the Network**, enter the full address as **Username** and `https://panel.example.com:2080/` as **Location**, click **Find Calendars**, enter the password and pick the calendars.
- **Contacts:** in the address book, choose **New Address Book → Add CardDAV Address Book**, enter the username and `https://panel.example.com:2080/` as the location, then pick the address books.

### Outlook

Outlook does not support CalDAV or CardDAV by itself. It needs a third-party add-in that syncs CalDAV/CardDAV, such as the open-source Outlook CalDav Synchronizer.

## Troubleshooting

| Message or symptom | Cause and fix |
| --- | --- |
| "webmail is not installed" | Install it with **Email → Install webmail** or in **Components**. |
| Installing webmail fails with "install a PHP version first" | Install any PHP version under **Components**, then install webmail again. |
| "webmail did not create a login link" / "webmail PHP version not found" | The webmail service is not running correctly. As administrator, check `systemctl status zp-webmail` and reinstall webmail if needed. |
| The one-click tab opens on the login screen | The link is valid for only a few seconds and only once. Click the icon again; do not reuse or bookmark the address. |
| Browser warns about the certificate on port 2096 or 2080 | Open the service with the panel domain or the mail hostname, after **Settings → Panel domain & SSL** is set up. |
| Port 2096 or 2080 does not load | The network you are on may block non-standard ports (common in offices and hotels). Try another network. |
| Calendar login keeps failing | Use the full address and the current mailbox password. After 6 failed logins, Fail2ban bans the IP; the administrator can lift it with **Unban** on **Security**. Mailboxes moved from another panel may need a new password (set it with the key icon) before calendars accept it. |
| Account is added but shows no calendars or contacts | The mailbox had calendar data before it got the default collections, or they were deleted. Create a calendar or address book from Apple Calendar, Apple Contacts or DAVx⁵. |

## Related

- [Email](/docs/email)
- [Email clients](/docs/email-clients)
- [Mail rules and limits](/docs/mail-rules)
- [Components](/docs/components)
- [SnappyMail](https://github.com/the-djmaze/snappymail)
- [Radicale documentation](https://radicale.org/v3.html)
- [DAVx⁵ manual](https://www.davx5.com/manual)
