**Communication -> Calendar** in your admin dashboard.

A calendar for your team, beside the mail. Day, week, month and a schedule list,
with appointments dragged into place and stretched to length on the grid.

An appointment is drawn as a quiet block with its calendar's colour as a line
down the left edge, so a busy week stays readable. Today, the current time and
the week you are looking at are marked in your firm's colour, and the small
month in the column follows the grid as you move through it.

## Calendars

Everybody gets their own calendar and the propfirm gets calendars the whole team
shares, each in its own colour, switched on and off in the column on the left.

One of them is the firm's own calendar, named after you and at the top of
everybody's column from the first visit. Everyone on the team reads it without
being given it, only somebody who may manage calendars puts anything in it, and
it cannot be deleted or shared away, so a company meeting or a payout day has
one place to go and lands in everybody's week.

Calendars the whole team shares are made by anyone who may manage calendars and
turn up for everybody without being shared one by one.

## Labels

Appointments carry labels: what a meeting is about, as opposed to when it is and
whose it is. They are made in the column beside the calendars, the same way the
mail client does labels, renamed or deleted by right-clicking one, and used
across every calendar at once.

Tick a label and the grid narrows to it, in every view and in search. An
appointment wears its labels and its guest count wherever it is drawn, and the
schedule names the guests outright, so a week can be read without opening
anything.

## An appointment

An appointment carries guests, a location, a description, a Google Meet or Zoom
link with the meeting number and passcode kept separate so they can be read out,
reminders in the app or by email, and a repeat.

Invite a colleague and the meeting also shows under their calendar, so ticking
off everything except theirs answers what their day looks like, while the meeting
stays one appointment that one person can move or call off.

## Repeats

Daily, every weekday, weekly, monthly or yearly, every so many of them, running
forever or ending on a date or after a number of times.

Changing or deleting one of a repeating appointment asks what you mean first,
and takes all three answers: this one, this one and everything after it, or the
whole series.

A weekly meeting stays on the same clock when the clocks change, and one on the
31st comes back to the 31st after February.

## Sharing

Share a calendar with a colleague by name or with a whole role at once, at one
of four levels:

| Level  | What they get                                                    |
| ------ | ---------------------------------------------------------------- |
| Busy   | They see the hour is taken and nothing about what it is taken by |
| Read   | They can read the appointments                                   |
| Book   | They can put appointments in it                                  |
| Manage | They can change and share it                                     |

At the busy level the words never leave the server, which is what makes a
personal calendar safe to share.

## Invitations that arrive

Meeting invitations in your mail land on the calendar by themselves. The
attachment every calendar programme sends is read when the mail arrives, so the
subject, the time in its own timezone, the organiser, everybody invited and the
Google Meet or Zoom link with its meeting number and passcode are all there.

It sits on the grid hollow until somebody accepts or ignores it, and the mail
itself carries a bar with the same facts and the same two buttons, so nobody has
to open a second screen to decide.

An organiser moving the meeting moves the one you have rather than adding a
second, calling it off marks it instead of making it vanish, and a guest
answering updates their line and nothing else.

## Invitations you send

Put guests on an appointment of your own and they get a proper invitation from
your own address, with the Accept and Decline buttons their own calendar draws,
and their answers come back onto your guest list without anybody retyping
anything.

## When a guest answers

An answer to an invitation is a change to the meeting, not a message to read.
It goes on the guest list (accepted, declined, maybe, or no answer yet, with the
word beside each guest), and an open calendar shows it without a reload.

Whoever has the meeting gets a notice in the bell and on the phone, with the
time on their own clock: the organiser when that is one of you, the owner of a
personal calendar and anybody who may write in it, and for a team calendar the
people who may manage calendars. Nobody gets it by mail, because the answer
already came in as one. It is a switch of its own under Notifications in your
settings.

There is no second notice for the same answer sent twice, or for an organiser
resending the invitation, and none when the answer comes from your own team or
one of your own mailboxes.

The mail that carried the answer stays in the inbox. It joins the conversation
of the invitation, and instead of the empty message Outlook sends it shows who
answered what, the meeting as it stands now and a link to it in the calendar.
In the older designs of the mail client the message itself still shows empty,
with the same line in the list.

Changing the meeting sends the change rather than a second invitation, deleting
it sends the cancellation, and a repeating meeting carries its timezone so it
stays on the same clock for everybody when the clocks change.

Guests are in blind copy, so a meeting between you and two customers does not
introduce them to each other.

:::note Nothing goes out unless you say so
Whether anything is sent is a tick box on the appointment, because correcting
your own typo should not put mail in six inboxes.
:::

## Reminders

In the app or by email, at anything from the moment itself to a day ahead. A
repeating appointment reminds you about the next occurrence rather than once and
never again.

A change somebody else makes in a calendar you have open arrives on your screen
by itself, without a refresh.

## Search

Finds an appointment by its title, its description, its location, who is coming
or who invited you, a year back and a year ahead, with everything still to come
at the top and the past under it.

A calendar shared at the busy level is never searched, because a search box is
otherwise a fine way to ask what an hour is taken by.

## In and out as a file

Import the `.ics` another calendar exported and everything in it lands here,
repeats, changed occurrences and cancelled ones included, with a second import
of the same file changing nothing. The link under the create button takes a file
for any calendar you may write in, so a single invitation somebody emailed goes
in the same way a year of appointments does; a calendar's own settings import
into that one calendar.

Download any calendar the same way, or hand out a subscription link that any
phone or desktop calendar can follow to keep a read-only copy up to date without
a password, replaced or withdrawn whenever you like.

Subscribe to everything, at the foot of the calendar column, is the same idea
for a person rather than for a calendar: one link carrying every calendar you
can read, so a phone shows this workspace's calendar, your own, the team's and
anything a colleague shared with you in a single subscription. What is in it is
worked out on every fetch, so a calendar shared with you tomorrow appears on its
own and one withdrawn disappears, without anybody touching the link. A calendar
shared with you at the busy level stays out of it, the same way it stays out of
a download.

Both kinds of link ask to be fetched every five minutes, and an unanswered
invitation is in them as a tentative appointment rather than left out, so what
a phone shows matches what this screen shows. Apple Calendar, Outlook and
Thunderbird follow that interval. Google Calendar does not: it refetches
external calendars on a schedule of its own, anywhere from a few hours to a day,
and nothing in the file changes that.

## Following a calendar from elsewhere

The other direction: the plus beside My calendars (or beside Other calendars,
for somebody who may manage calendars) offers **From a URL**. Paste the address
of any calendar published as `.ics`, such as Google Calendar's secret address in
iCal format, an Outlook published calendar or a public holiday calendar, and it
becomes a calendar here that keeps itself up to date. Links starting with
`webcal://` work as they are.

Before anything is made, the address is checked and asked what it is. The name,
the colour and how often it wants to be fetched come back filled in, and all
three can be changed. A calendar made this way from the Other calendars plus is
one of the whole team; from My calendars it is yours, and can be shared like
any other.

What is in it is read-only here, for everybody: every fetch puts back what the
source says, so a changed appointment is changed here, and one removed there is
removed here. Its name, colour, how often it is fetched, its address and who
else sees it stay editable in its settings, beside when it was last updated,
when it is checked next, what went wrong if the last check failed, and a button
to refresh it now. Deleting it takes the copy away and leaves the source alone.

How often it is fetched follows the calendar itself unless you choose otherwise:
its `REFRESH-INTERVAL`, then `X-PUBLISHED-TTL`, then the caching headers of the
server, then once an hour. Whatever the source asks for is kept between five
minutes and a week. A source that has not changed answers without sending the
file again, a failing one is retried less and less often up to once a day, and
one that says the calendar is gone for good (HTTP 410) is no longer asked until
somebody presses refresh.

Only addresses on the public internet can be followed. Followed calendars stay
out of your own subscription links, so a Google calendar followed here and the
link to everything pasted into Google do not show every appointment twice.

## Find a time

Takes the guest list and offers the first slots that suit everybody, inside
everybody's available hours and in everybody's own timezone. Clicking one moves
the appointment there.

It sees exactly what you can see and nothing more: a colleague whose calendar is
not shared with you is named as unknown rather than quietly assumed free, which
is what makes sharing a calendar at the busy level worth doing.

Each person sets their own available hours, any hours on any days, and they
narrow the search without stopping anybody booking outside them.

## Your timezone and available hours

Everybody picks their own timezone under Preferences in their settings, or in
the available hours window, and the whole calendar is drawn in it: the grid, the
month, the schedule, the line for now and every time in an appointment. Until
somebody picks one, it is the timezone of the device they first signed in from.

When the device later reports a different timezone, for instance on a trip, a
bar above the calendar offers to switch. Keeping the old one is remembered for
that timezone, so the bar does not come back every morning of the same trip.

Hours outside your available hours are drawn lighter in the grid. With only a
colleague's calendar switched on, the lighter hours are theirs, converted to
your clock, so you see at a glance when they can be planned in. Beside a colleague's
calendar in the column, hovering or right-clicking shows their available hours on
your clock as well, with their own hours beside it when the two differ.

## Extra available time

On a day you are around longer than your usual week, a holiday week for
instance, you add the time in the grid itself. Draw it out or press Create as
for an appointment and switch on "I'm available at this time". The title, the
guests and the calendar go away, and what is left is the time, or whole days.

It only ever adds to your available hours. Appointments inside it keep their
time, so Find a time offers only what is still free around them. A day off is
an appointment, as it always was. An end at 23:59 is saved as midnight, and one
stretch can run for at most 31 days.

Added time is drawn like the rest of your available hours, with a line down its
left side and a small Available label at the top. Click the label to change it
or the cross beside it to remove it, or right-click anywhere in it. Whole days
sit in the all-day band instead. With only a colleague's calendar switched on,
their added time shows too, without the controls, because only they can change
it.

## Getting around

Right-click anything for the actions on it. An appointment offers open, edit,
duplicate, delete and the two answers to an invitation, empty grid offers a new
appointment at the hour you clicked, and a calendar in the column offers hide,
show only this one, download and settings. Double-click an appointment to edit
it.

The keyboard does the rest, and each shortcut is shown beside the control it
belongs to:

| Key         | What it does                            |
| ----------- | --------------------------------------- |
| D, W, M, A  | Day, week, month, schedule              |
| T           | Back to today                           |
| Left, Right | The previous or next day, week or month |
| C           | A new appointment                       |
| /           | Search                                  |

Guests are found by name as well as by address, so inviting a colleague is
typing the first letters of their name.

## In the older designs

A firm on Propper - OG or Tactical keeps the calendar it had: appointments as
blocks filled with the calendar's colour, labels as coloured chips, and the
view switcher, search and dialogs in that design's own style. It is drawn in
your own timezone as well, but it has no bar when the device moves to another
one, it does not show available hours in the grid or beside a colleague's
calendar, and its editor has no switch for extra available time. Time added
from the new design still counts in Find a time. Everything else the calendar can do is the same in every design.