Show Records on a Calendar
Goal
Turn a view into a calendar: the table's records placed on a day, week or month sheet instead of listed in a grid, with an empty slot starting a new record. Bookings, appointments, shifts, deadlines, holidays — anything a date says when about.
There is no booking table in the platform. Any table with a date on it can be read this way, and which of its dates means "starts" is yours to say.
Prerequisites
- A table with at least one Date and Time field. If yours has not got one, add it first — see Add a field to an entity.
- A view of that table to turn into a calendar. See Create a view.
- Optional, and worth doing first: a Choice whose options carry colours, if you want the blocks tinted. See Create an option set.
Steps
1. Set the view's layout to Calendar
Open the view in the View Designer. In the strip under the title, set Layout to Calendar.
The starting point is the table's first Date and Time field as the start. The Calendar button appears in the title bar; press it, and the panel that opens is where you say what the sheet draws.
If the table has no Date and Time field at all, the start is left empty and there is nothing to choose — add the field to the table first.
2. Say when a record happens
Starts at is the only thing a calendar cannot do without: a record with no start cannot be placed on a sheet, so there is nothing to fall back to. The list offers the table's Date and Time fields and nothing else — a text column holding something that looks like a date would draw an empty sheet, which reads as nothing is booked.
Ends at is optional. Leave it unmapped for a table that records a moment rather than a span — an appointment time, a due date — and every block is one slot long instead. That is not the same as zero: a block with no height cannot be clicked.
Both lists include the platform's own Created On and Modified On. A table with no date of its own can still be read as a calendar of when its records arrived.
3. Say what a block reads
Title is the block's first line. Leave it unmapped to use the table's name field, which is what the grid, a lookup panel and the breadcrumb already show.
Colour by takes a Choice, a State or a Reason — and takes nothing else, because the colour lives on the option. Setting "Training is amber" in the Choice is what colours the block, the legend above the sheet, and that field's cell in any grid, all at once. A Choice whose options have no colours still earns its legend; the blocks are simply one flat tint.
Booked for and Note are optional extra lines. Leave Note unmapped on a sheet of short slots — a note that is only ever truncated is noise.
4. Say what the reader opens on
Opens on picks the day, week or month sheet. From and To set the hours the day and week sheets show — this is the difference between a usable booking sheet and one that opens two-thirds empty, so a clinic working 8 to 7 should say so rather than showing sixteen rows of midnight.
Slot (minutes) is how long a new record is when somebody clicks an empty slot, and how tall a block is on a view with no end field.
All of this says where the calendar opens. Whoever reads it can still switch scale and narrow the hours from the sheet's own header — the window is theirs, not yours.
5. Lay resources across the day (optional)
For a calendar of things that get booked — courts, rooms, people — choose a Resource under Resources across: a lookup field saying what each record is of. On the Day sheet, each record of that lookup's table becomes a column, so the courts of a club stand side by side and a free court is a gap you can see.
Columns from view says which of those records, and in what order: pick a view on the resource's table — bookable courts, this building's rooms. Leave it empty for every record, by name.
Clicking an empty slot in a column fills in the resource as well as the times. The Week and Month sheets stay days across — seven days times a column per court is a grid nobody can read — and name the resource on each block instead.
Untick Clicking an empty slot starts a record for a sheet whose records nobody creates by hand — a log, or the holds a booking places. The sheet is still read and its blocks still open; there is just no slot to click and no New.
6. Save, and open the app
Press Save, then open an app that includes the view. It opens on the sheet, not on a grid.
- Click an empty slot — the ordinary record form opens with the start and end already filled in. Everything about that form still applies: required fields, business rules, defaults.
- Press New in the sheet's toolbar for the same thing starting at the next whole hour, when there is no free slot to click.
- Click a block — it opens that record, the same page the grid opens.
- Step forward and back with the arrows, and switch between Day, Week and Month. The records for each period are fetched as you move.
- The sheet reads in your calendar — Gregorian or Persian, as Settings says — so a Persian reader sees the same records on the same days in Jalali months and Saturday-first weeks. There is no switch on the sheet itself: which calendar you read is chosen once, in Settings.
Notes
- A calendar is a property of the view, not of the table. The same records are a list in one view and a calendar in another, and an app can offer both — the view switcher lists them side by side.
- A view is drawn one way. A view cannot be both a calendar and a tree; choosing one drops the other. Choosing List drops whichever it had, which is how you turn a calendar back into a grid.
- Resources are across the day sheet only. The week and month sheets stay days across and name each block's resource; switch to Day to see them side by side.
- A very busy period is capped. More than 500 records falling in one period draws the first of them and says so above the sheet. Narrow the view's filter if you meet it.
Troubleshooting
- "A calendar's 'start' must be a Date and Time field." — the role names a text or number column. Pick a real date.
- "A calendar's 'category' must be a Choice, State or Reason field." — only those carry the colours the blocks take.
- "The day must end after it starts." — To is at or before From. The two are one window.
- "This calendar has no start field yet." — shown in the app when the start field has been deleted from the table since the view was saved. Open the view and choose another.
- The sheet is empty when you expect records. Check the view's own filter, and check the records really have a value in the start field — a record with an empty start is not drawn.
- "A calendar's 'resource' must be a lookup to one table." — pick a lookup field; one that can point at several tables cannot give one set of columns.
- "The view … that chooses this calendar's columns was not found" — shown above the sheet when Columns from view names a view that has been renamed or deleted. Every record is a column until you pick another.
- "Only the first 60 resources are shown as columns." — narrow the columns' view.