Every confirmed booking, on one grid.
A slot somebody took last Thursday is only useful if you can see it coming. The Calendar in your dashboard is where the project’s confirmed bookings live — a day, a week or a month at a time, with the hours you published drawn behind them, and every project you run on the same grid if that is how your week actually goes.
A day, a week, a month — and today is one click away
Three views share one grid. Day is the morning-of view; Week is the default and starts on Monday; Month drops to a cell per day with the bookings listed inside it. Arrows step a whole period at a time, and the Today button brings you back — it stays on screen even when it would do nothing, because it is also the label telling you which period you are looking at.
The time grid is the whole day, midnight to midnight, so nothing is ever cropped out of it: a 06:30 stand-up and a call at half past eleven at night both sit on the grid at the hour they happen. It opens scrolled to the current hour rather than to an empty morning, and a hairline crosses today’s column at the current time.
One project, or all of them at once
The Calendar follows whichever project is selected in the sidebar, and the project is in the URL, so a link you paste into chat opens on the same one for whoever clicks it. Pick All projects instead and every project you belong to lands on a single grid, each block carrying the name of the project it came from. A Tuesday split across three projects finally reads as one Tuesday.
The hours you published sit behind the bookings
Publish a meeting type and the weekly windows you gave it are shaded behind the grid. That turns a booking into something you can judge at a glance: it either sits inside the hours the project offered, or it does not — and one that does not is marked so it cannot blend into the row above it.
It is the one distinction the grid draws. There is no palette to learn here, no colour per meeting type and none per guest; a block is a booking, and the marking on an out-of-hours one is the only thing colour is asked to carry.
Teammate busy time, when somebody connects a calendar
Connecting a Google Calendar is optional and does two things. On the public booking page it hides times you are already busy. Here it paints those hours across the grid as a grey diagonal hatch — a texture rather than another colour, so it reads as background and never competes with a booking for your attention.
The overlay is the team’s busy time merged into one shape. It carries no event titles, no attendees and no hint of what any of it is about; a teammate connecting their calendar to Kontacts is not publishing their diary to the rest of the project. If we have nothing cached for someone, the grid paints nothing for them rather than guessing a full day. Zoom, if you have connected it, supplies meeting links and not busy time.
Open a booking and the whole record is there
Click a block and a panel opens beside it: the meeting type’s title, the date, the start and end time with the time zone spelled out, the guest’s name and email, and the location or join link when the meeting type carries one.
A cancelled booking keeps its place rather than vanishing, and the panel says so in as many words — an identical panel for a live meeting and a dead one is the misreading that costs somebody a morning. If you administer the project, that panel is also where you cancel: the guest is emailed, and a calendar cancellation goes out so the slot clears from their calendar as well as from your grid.
Your own hours, and the screen says which
The grid draws every booking at the hour it falls on where you are. A meeting a colleague in another country published for their afternoon lands on your evening, on the day your evening is, because a week you have to convert in your head is a week you will misread eventually.
Which zone that is never has to be guessed: it is spelled out under the grid, and the panel that opens on a booking uses the same one, so the block and the record it belongs to can never disagree about when something is.
What is on the grid, and what is not
Two things, and no more: the project’s bookings, and the busy overlay above. Mail arriving in the project inbox does not appear here, and neither does a form submission — those belong in the inbox, where you can read a thread and reply to it. This is not a timeline of everything that happened to the project.
Most blocks are here because somebody took a slot on the project’s public booking page. The one exception is Add event in the toolbar: if you administer the project, you can put a meeting on the grid yourself — a date, a start, a length and the guest’s address — and the guest is emailed a confirmation with a calendar invite attached, so it reaches their calendar too rather than only yours. It is the same admin check that guards cancelling; a teammate who cannot cancel does not see the control at all.
What the screen still does not offer is a way to move a booking or to delete one. A meeting that is not happening gets cancelled, which keeps its place on the grid, says so on the panel, and tells the guest — the three things quietly deleting the row would not do.
Where the bookings come from
Adding an event by hand is the exception; the flow that fills a grid is the other one. A meeting type is private when you create it; publish it and the project has a public link at its own URL, and from then on every confirmation lands here. The booking page is the other half of this — one link for the whole project rather than one per person, so the URL outlives whoever set it up.