Calendars
Every Mailocity user has calendars, and every team has team calendars. Calendars work in webmail, in calendar apps over CalDAV (Apple Calendar, Thunderbird, DAVx⁵ on Android, Outlook with a CalDAV add-in) and in JMAP apps (JMAP for Calendars, with JSCalendar events, RFC 8984). To set up a calendar app, see Calendar and contacts apps.
The calendar in webmail
Open webmail and choose the calendar button at the top (or go to #/calendar). Switch between Month, Week, Day and Agenda (the next 30 days); Today and the arrows move through time. Tick calendars on the left to show or hide them.
Week and Day are an hour grid: events sit at their times, side by side when they overlap, with all-day events in a row on top and a red line at the current time. Choose an empty hour (the top or bottom half of it) to start an event there, and a day's name to see that day alone.
- New event, or a day's number, opens a new event: title, calendar, start and end (or All day), whether it repeats (every day, week, month or year), place, notes, who sees it, and Show me as free.
- Choose an event to change or delete it. For a repeating event you choose whether the change is for this one occurrence or for all occurrences; deleting works the same way. Repeats set up in another app in a way webmail does not offer (every other week, the last Friday) are kept as they are.
- Events in calendars you may only read open read-only.
- New calendar under the list makes a calendar; the pencil next to one of yours renames it, changes its colour or deletes it with its events (your default calendar cannot be deleted).
Times are shown in your browser's time zone; events made in webmail use it too.
Your to-do list is next to the calendar: see Tasks.
Inviting people
Type guests' addresses under Guests (one per line, or separated by commas) and save. Each guest gets an invitation by email that works in any calendar app (Outlook, Gmail, Apple Calendar, Thunderbird), as well as in Mailocity. The badges under the list show who accepted, declined, said maybe or has not answered yet.
- Change the time, place or notes and save: guests get the update.
- Remove a guest from the list: they get a cancellation.
- Delete the event: every guest gets a cancellation. Deleting one occurrence of a repeating event sends the series without it, not a cancellation of the whole series.
When someone invites you, the event appears in your default calendar with a dashed outline until you answer. Open it and choose Accept, Maybe or Decline; the organizer is emailed your answer. The event's details are the organizer's, so they cannot be changed from your side; deleting an invitation you had not declined tells the organizer you declined. Updates and cancellations from the organizer change your copy (a cancelled event shows struck through), and your own alerts and colour are kept.
To protect you from forged invitations, mail only changes your calendar when the sender is proven: it passed DMARC, or it came from another Mailocity user. Other invitations still arrive as ordinary mail. A guest can only answer for themselves, and only the organizer can change or cancel an event.
Apps that use CalDAV send their own invitations for now (Apple Calendar through Mail, for example); see Calendar and contacts apps.
Your calendars
You start with one calendar, Calendar. Make more for work, family or anything else; each has a name, a colour and a time zone. They are private: nobody else sees them unless you share them.
Events can repeat (daily, weekly on chosen days, monthly on a date or on "the last Friday", yearly), with exceptions: change or remove one occurrence and the rest stay as they are.
Team calendars
Each team has team calendars that every member sees, such as office closures, on-call rotas or shared rooms. They belong to the team, so they stay when people leave. Team owners and admins make and change them, and choose what members may do with each one: change events (the default), only read them, or only see when the team is busy.
Sharing a calendar
Share one calendar with anyone who has a Mailocity address, on your team or another, and choose what they may do:
- See free and busy times only,
- Read events, or
- Change events.
In webmail, open the calendar, choose the pencil next to one of your calendars, and under Sharing type their address, choose what they may do and choose Share. The list there shows who has it; change their access or choose Stop sharing at any time. Only an exact address works: nobody can browse another team's people.
It appears in their webmail and calendar apps next to their own. Sharing a calendar shares only that calendar, never your mail.
For people outside Mailocity, make a subscription link: a private address any calendar app can subscribe to (an iCalendar feed). In webmail Settings → Calendar subscription links, choose the calendar and whether the link shows full details or only when you are busy (every event is then called "Busy", with no description, place or guests), and add a label to remember who it is for. Copy the link straight away: it is shown only once. Events you mark private show as busy even in a full-details link, events marked secret are never in a link, and events marked free are left out of busy-only links.
Revoke a link at any time; it stops working at once. The list shows when each link was last used. Team admins can see and revoke the links of their team's mailboxes (corpsuite mailbox calendar-links and mailbox calendar-link revoke), for example when one has leaked. Links are of your own calendars, and stop working while your mailbox is suspended. Apps usually check a subscription every few hours, so changes take a while to show there. Invitations to people outside go by email as usual (see Inviting people).
Free and busy
Teammates can see when you are busy (not what you are doing) when they plan a meeting. Each calendar chooses whether it counts: all its events, only those you are attending, or none. Details are shown only to people you share your mailbox or that calendar with.
For developers
JMAP: Calendar/get, /changes, /set (with shareWith, and memberAccess for team calendars), CalendarEvent/get, /changes, /set, /query (with expandRecurrences), /queryChanges, /copy and /parse (iCalendar to JSCalendar), ParticipantIdentity, CalendarEventNotification (what a delegate changed) and Principal/getAvailability. One occurrence of a repeating event has the id <eventId>_<YYYYMMDDTHHMMSS>. The team's calendars are the account whose id is the team's; calendars shared with you are accounts of their owners. See JMAP.