Skip to content

Calendar

This page covers what the calendar can do, and the few things that work differently from what you might expect: recurring events, shared calendars and importing.

The calendar in month view for August 2026: a mini calendar, My calendars listing Personal and Work, and Available to add listing a calendar shared by Grace.
Month view. Each calendar is a separate JMAP calendar with its own color, and each is hideable. Grace’s sits under Available to add until it is added — nothing shared is drawn until then.

What you can do

  • Four views: month, week, day and agenda.
  • Several calendars, each with its own color, and each can be hidden.
  • Create events by clicking or dragging on the grid — or from a message, with its guests already filled in. See Make a calendar event from a message.
  • Invite people and get replies. Invitations go out, replies come back and are applied to the event, and canceling an event tells the guests.
  • Check free/busy — whether people are free — while you schedule.
How it works

The calendar uses JMAP Calendars. Invitations and replies are sent as iTIP, the standard format calendar apps use to invite each other.

Color events by category

Categories are named colors you manage in Settings. Give an event one from its right-click menu or in the event editor. Other calendar apps see the categories too.

How it works

Categories are saved as JSCalendar categories on the event, which is why other clients see them.

Add a calendar someone shared with you

A calendar someone shares with you does not appear straight away:

  1. Find it in the sidebar under Available to add.
  2. Press the plus beside it.
  3. It moves to Shared with me, and its events appear in the grid in its own color.

You can hide it with a click, like any other calendar. Sharing explains why adding is a separate step.

Change one date, or the whole series

When you edit or delete a recurring event, ihasmail asks which you mean:

  • the whole series, or
  • this occurrence only — just the date you picked.

Both work. ihasmail asks before the editor opens, not when you save.

Why it asks first

Your answer decides which event the form is about. A form filled from the series shows the series' start date — so if it asked on save, editing Wednesday would offer to move Monday.

Not everything can differ on a single date

Stalwart refuses some changes to a single occurrence — the default alerts, for instance — and says so rather than silently ignoring you.

This needs Stalwart 0.16.20 or newer. Before that, the server refused changes to a single occurrence altogether.

Import and export

To import, open a calendar's own menu and choose an iCal (.ics) file. It can hold any number of events, and they all go into that calendar.

  • No invitations are sent to anyone named in the file. Importing records events you already have; it does not schedule them.
  • Events already in the calendar are skipped, so importing the same file twice does not double everything.
  • Afterwards, ihasmail tells you how many events were created and how many were already there.

To export, use the same menu. You get an .ics file back.

How it works

An event counts as already there when the calendar holds one with the same UID, the unique id every calendar event carries.