Docs
Attendance

Rosters

Plan who works when at each site on a drag-and-drop roster, repeat it with patterns, import it from a spreadsheet and publish it to staff, who see their shifts in Agoo Workspace, claim open shifts and swap with colleagues, with the Labour Act's rest rules checked.

Early access· P8For HR, managers and staff

Agoo is in early access. This page describes the feature as it ships to early-access organisations; screens are illustrative.

A roster says who works which shift, on which day, at a site. In Agoo you plan it on a grid in the Console, let repeating patterns fill it in weeks ahead, and publish it when it's ready. Until you publish, only the people who plan it can see it. Once it's published, each person sees their shifts in the Agoo Workspace app and is told once about what changed.

The published roster is what Agoo measures the day against: who is late, who isn't in yet, who was absent once their shift ended, who left early, and which break each shift has. Staff fill gaps themselves by claiming open shifts and swapping with colleagues, with your approval, and Agoo warns you where a roster meets the Labour Act's rules on rest and hours. Rosters come with Growth, Pro and Enterprise.

Key terms

TermMeaning
TemplateA shift you run at a site, with its name, times, grace period, break, colour and an optional label, such as "Day ward"
Roster shiftOne person's shift on one day, made from a template. You can move it or change its times and it keeps its template
PatternA cycle of 1 to 56 days from a start date, each day a template or a day off, such as 2 days, 2 nights and 4 off
RotationSeveral people on one pattern, each starting at a different day of the cycle, so every day is covered
DraftA shift or a change that isn't published yet. Only the people who plan the roster see it
PublishSend everything waiting to staff, at one site, in one go
Open shiftA shift with nobody on it yet, which staff who can work it claim in Agoo Workspace
ClaimSomeone asking to take an open shift. It's theirs once it's approved, or at once if the first claim takes it
SwapSomeone offering one of their shifts to a colleague, or to anyone who can take it, for a manager to approve
ExchangeA swap that asks for one of the colleague's shifts in return, so the two of them trade

Open the planner

Go to Console → Attendance → Rosters and choose the site. The planner has people down the side and days across, for a week, a fortnight or four weeks, with arrows to move through time.

  • Shifts are coloured blocks with their name, times and label. A shift that isn't published yet is hatched; a published shift with a change waiting is marked as changed, and one you've taken off as removing, until you publish.
  • Leave and public holidays show on the days they fall, and a weekly fixed shift (see Weekly fixed shifts) shows where it still applies.
  • Open shifts have their own row at the top, with how many claims are waiting on each.
  • Warnings sit on the shift: Two shifts at once, On leave, Public holiday or closed day or No longer at this site, and the Labour Act warnings about rest, weekly hours and consent. Warnings don't stop you, except two shifts at once, which can't be published.
  • Find someone above the roster narrows it to the people whose name or employee number you type, which helps on a site with a long list.

From anywhere in the Console, ⌘K (Ctrl+K on Windows) finds Open the roster, and Roster for someone by name opens their roster.

Anyone who can see everyone's attendance at the site can open the roster. People with Manage shifts, corrections and leave at the site plan it: Owners, Admins, HR, and Site admins at their own sites. See Roles and permissions.

Plan with drag and drop

  • Add a shift: drag a template from the palette onto a person's day.
  • Move a shift: drag it to another day, or to another person.
  • Copy a shift: hold Alt (Option on a Mac) while you drag, or tick Dragging copies above the roster.
  • Change its times: drag the start or end edge of the block.
  • Edit it: select the shift to change its times, break or template, add a note for the person, or remove it.

Every change is saved as you make it, as a draft. Undo takes back your last changes, and discarding the drafts takes the roster back to what staff can see.

Publish

When the roster is ready, choose Publish. Agoo shows what will change before anything goes, such as "14 new shifts, 3 changed and 1 removed", and how many people it affects.

Check the summary

Publish covers everything waiting at this site: new shifts, changes and removals. Agoo refuses to publish while two of someone's shifts would overlap, at this site or another. It also refuses a change to a shift on a day in someone's approved timesheet until the timesheet is reopened.

Add a note if it's short notice

A change to a published shift that starts within the next 48 hours needs a short note to the people it changes, such as "Covering for Ama, who is on a course". You can add a note to any publish.

Publish

Everyone whose shifts still to come have changed is told once, however many shifts changed: a notification in Agoo Workspace, or an email if they don't have the app, listing their next five shifts and your note. The roster stops being hatched, and Today, the timesheet and shift reminders use it at once.

A shift you remove after publishing is shown to the person as removed, so they know it's gone rather than wondering. Each publish, and who made it, is recorded in the audit trail.

Shift templates

Under Shift templates, add each shift you run at the site:

SettingWhat it's for
NameWhat people see, such as "Day ward" or "Night gate"
Starts, endsThe shift's times. An end before the start runs overnight, such as 20:00 to 08:00
GraceMinutes after the start before someone counts as late
BreakYour standard day's break, or the shift's own: none, paid or unpaid, its length, and when it usually starts (breaks)
ColourOne of eight, so the roster reads at a glance
LabelOptional, up to 40 characters, such as "Ward 3" or "Gate 2"

Changing a template's times affects the shifts made from it from then on; shifts already on the roster keep theirs, and the days its patterns make are made again as changes to publish. A name, colour or label change shows on future shifts at once. You can archive a template once no pattern and no weekly fixed shift uses it.

Patterns and rotations

Under Patterns, a pattern repeats a cycle of days from a start date: each day is a template or a day off. Start from a ready-made one or build your own, up to 56 days (eight weeks):

  • Monday to Friday
  • 6 days a week
  • 2 days, 2 nights, 4 off
  • 4 on, 4 off
  • 2-2-3, over two weeks
  • Day and night weeks

Put people on it from a date, and to a date if it ends. For a rotation, put several people on the same pattern, each at a different day of the cycle (its phase), so the days and nights are always covered: four nurses on 2 days, 2 nights, 4 off, two days apart, cover every day and every night. A person is on one pattern at a time.

Agoo fills the roster from your patterns eight weeks ahead, and keeps it eight weeks ahead as time passes:

  • Days you changed by hand stay as you left them. A pattern never undoes a shift you moved, resized or removed.
  • Once you've published a pattern's shifts, the new days it makes as time passes are published as they're made, so staff always see eight weeks ahead. If you've changed the pattern since you last published, its new days wait as drafts until you publish again.
  • Changing a pattern or who's on it makes its future days again, as changes to publish.

Weekly fixed shifts

If your people already have a fixed weekly shift, such as Monday to Friday on the day shift, it keeps working: Agoo measures their days against it as before.

Once a day is on someone's published roster, the roster decides that day. Their weekly shift doesn't apply on it, and a rostered day with no shift is a rest day, never an absence. You can move people to the roster site by site, at your own pace.

Open shifts

An open shift is a shift with nobody on it yet: a gap in the week, an extra pair of hands for an event, cover for someone on a course. You post it, and the people who can work it claim it in Agoo Workspace.

Make it

Drag a template into the Open shifts row at the top of the planner, or select a shift that someone's on and choose Make it an open shift. Like any change, it's a draft until you publish.

Publish it

When you publish, everyone who can take it is told once, in Agoo Workspace: "Open shifts you can take", with how many and from when. This one comes only to the app, never by email or text.

Decide

Each claim waits for whoever approves claims (see Approving swaps and claims). Approving one gives the shift to that person at once, and the other claims are closed as taken, with everyone told. If you've chosen The first claim takes it, there's nothing to decide: the first person to claim it gets it straight away.

Who can take an open shift. People on attendance who work at the site, who aren't on leave that day, have no other shift at the same time, at any site, and only until it starts. If the shift has a label, such as "Ward 3", and anyone at the site has worked that label in the last 12 weeks or has a shift with it coming up, only those people can take it, so a ward's gap goes to the nurses who know the ward. Everyone else doesn't see it.

Claiming in the app. Open shifts are on Me → Your shifts → Open shifts, soonest first, up to eight weeks ahead, each with the site, the times, the label, the break and how many people have already asked. Tap one and Ask for this shift, with a note if you like (up to 280 characters). If it can't be yours, the app says why: you have another shift then, you're on leave, it has started, you don't work at the site, you've already claimed it, or your organisation has claims turned off. If taking it would break a rest rule, the app warns you first. You can withdraw a claim while it's waiting.

You can also turn an open shift back into someone's shift in the planner by putting a person on it, as with any change you publish.

Swaps

A swap lets someone hand one of their shifts to a colleague, with a manager's approval, without anyone ringing round.

Offer the shift

In Me → Your shifts, the person taps Offer a swap, chooses one of their published shifts still to come and offers it, either to a colleague, chosen from the people at the site with whether each one can take it, or to anyone who can take it. Offering it to a named colleague, they can also ask for one of that colleague's shifts at the site in the next four weeks in return: an exchange. A note is optional.

The colleague answers

A named colleague is told "Kwame Mensah offers you a shift" and finds it under Offers to you, to Take the shift or Say no. An offer to anyone goes to everyone who could take it, and the first to accept takes it. The person who offered it is told the answer, and can withdraw the offer until it's decided.

A manager approves

Once accepted, the swap waits for whoever approves swaps, who sees both people, the shifts and any warnings, and approves it or declines it with a reason. Approving changes the roster at once, with no publish needed: the shift (and, in an exchange, the shift in return) moves to the other person, and both are told. It shows as new in their Your shifts.

A swap doesn't need approving if your organisation chooses No approval for swaps, or lets swaps between people on the same shift template stand, such as two nurses on "Night ward".

A swap ends one of these ways:

StatusWhat happened
OfferedWaiting for the colleague, or for anyone who can take it
AcceptedTaken, waiting for approval
ApprovedThe roster changed: the shift is the colleague's
DeclinedA manager declined it, with a reason both people see
RefusedThe named colleague said no
WithdrawnThe person who offered it took it back
ExpiredThe shift started before it was decided
CancelledCalled off: a manager changed or removed the shift in the planner, or one of the two people left

Offering, accepting and claiming need a connection, because Agoo checks at that moment who can take what. With no signal, Your shifts shows the open shifts and offers the app last had, and says so.

Approving swaps and claims

Swaps and claims are approved the same way as leave, with the same choices, chosen separately for each in Attendance → Settings (Who approves swaps and Who approves claims for open shifts): Line manager (the default), Line manager, then HR, HR only, No approval, or a Custom chain on Enterprise. Deputies, requests that move up when nobody decides, and HR deciding any step all work as they do for leave. For a swap, the approver is the line manager of the person who offered it; for a claim, of the person who asked.

Approvers decide:

  • In Agoo Workspace, on Team → Approvals, beside leave: swipe right to approve, left to decline. The notification "Kofi Boateng and Nii Armah want to swap" has Approve on it.
  • In the Console, on Attendance → Rosters → Open shifts and swaps for the site: the claims and swaps waiting, offers still out, and what was decided lately.

Each one shows the warnings for whoever would take the shift, and in an exchange, for the person taking the shift in return. Declining needs a reason of 3 to 300 characters, which the people in it see. Approving is refused if the person taking it now has another shift at that time.

Labour Act warnings

Agoo checks each shift against the Labour Act, 2003 (Act 651), and shows what it finds on the shift in the planner, in the list before you publish, on open shifts and offers in the app (for the person who'd take them) and on every swap and claim waiting for approval. They're warnings, never blocks: you decide.

WarningWhen it shows
Under 12 hours' rest (Labour Act s.41)Less than 12 hours between this shift and one on another day. Section 41 gives every worker at least 12 continuous hours' rest between two working days
No 48 hours off in 7 days (s.42)No 48 hours in a row off in the seven days ending on this shift's day. Section 42 asks for 48 consecutive hours' rest in every seven days, Saturday to Sunday where possible. A public holiday isn't counted as rest (s.43)
Over their weekly hoursTheir rostered paid hours that week go over their weekly hours: 40 by default (s.33), or their contracted hours, or their work-rule set's, averaged over its weeks if it averages (s.34(b), s.36). In the app it reads Over your weekly hours
Night work needs her consent (s.55)Night work, any time between 22:00 and 07:00, for a woman whose maternity leave is approved or asked for and hasn't started, with no consent recorded
Overtime needs her consent (s.55)Overtime (a shift longer than the day's hours, or a week over its hours) for a woman whose maternity leave hasn't started yet, or started less than nine months ago, with no consent recorded
Two shifts at onceTwo of the person's shifts overlap, at any site. This one does stop a publish
On leaveThey're on approved leave that day
Public holiday or closed dayThe day is a public holiday you observe, or one of your closed days
No longer at this siteThey no longer work at the site, or aren't on attendance

Before you publish, Agoo lists how many shifts carry each warning, so nothing slips through.

Why they're only warnings

Warnings never stop you publishing: s.41 allows less rest in seasonal work, and the rest rules (ss.40 to 43) don't apply to task workers or domestic workers in private homes (s.44).

Section 55(1) of the Act says that, unless she consents, an employer shall not assign a pregnant worker to night work between 22:00 and 07:00, or engage a pregnant worker, or the mother of a child under eight months, for overtime.

Agoo never asks or keeps anything about a pregnancy. It works out these two warnings only from maternity leave already recorded: leave that's approved or asked for and hasn't started (night work and overtime), or that started less than nine months ago (overtime). If nothing is recorded yet, Agoo has nothing to go on and can't warn you.

The consent warnings show only to people who may see her private leave, such as HR, and to her when she's offered a shift, unless your maternity leave type isn't marked private. To everyone else the shift carries no consent warning.

Record her consent when she gives it: HR, or whoever plans the roster at her site, chooses She has agreed on the warning on her shift, or in her roster, then night work, overtime or both, the date it starts, an end date if there is one, and a note. While it runs, the shifts it covers show Consent recorded instead of the warning. End it as soon as she withdraws it. Recording and ending a consent are in the audit trail.

Import a roster from a spreadsheet

If you already plan in a spreadsheet, bring it in rather than retyping it. Go to Attendance → Rosters → Import, choose the site and the CSV file. Download the template gives you the headers with two example rows.

There are two kinds of file:

  • Shifts, one row per shift: for a roster you've already worked out.
  • People on patterns, one row per person and pattern: for putting people on the patterns you've set up at the site. A file whose header has a pattern column is this kind.
ColumnWhat to put
emailThe person's email in People, or use employee_number. Leave both blank for an open shift
employee_numberInstead of email
dateThe day, as YYYY-MM-DD or DD/MM/YYYY. A night shift belongs to the evening it starts
start, endHH:MM, in the site's time. Optional when template is given
templateThe name of one of the site's shift templates, such as Day ward
breaknone, paid or unpaid, if it differs from the template's
break_minutesThe break's length in minutes
labelUp to 40 characters, such as Ward 3
noteA note for the person

Check it

Agoo reads the file and shows every row before anything changes: OK, Error with what's wrong (such as "No one here has the email kwame.mensah@voltabank.example"), or Duplicate for a shift that's already on the roster, with the warnings each OK row would bring. Fix the file and check it again as often as you like.

Import

Import adds the OK rows as drafts, and skips errors and duplicates, so importing the same file twice adds nothing. People on patterns get their pattern's days as drafts too. Nobody is told yet.

Publish them

Look the drafts over on the planner and publish as usual.

A file can have up to 2,000 rows and be up to 1 MB. A shift row with times but no template, whose times match none of the site's templates, gets a new template named after its times, such as "08:00 to 14:00"; the check lists any it will make. Importing is recorded in the audit trail as Imported shifts into the roster. Roster import comes with Growth and above, with the rest of Agoo's CSV import.

For the notice board, choose Print on the planner. It lays out the site's roster for the week, fortnight or four weeks you're looking at on A4 landscape: your people down the side, the days across, open shifts in a row of their own, with your organisation's name and logo. Print it from the browser. To download the same grid as a PDF, choose Export → Printable roster (PDF).

A person's roster

On someone's page in People, the Roster panel shows their roster across every site: their shifts for the dates you choose (this week and the four after, by default, up to three months), the patterns they're on, their swaps and claims, any consent recorded, each shift's warnings and their rostered hours each week against their weekly hours. It's where to look before you approve a swap or move someone, and where HR records consent.

Your shift today on the kiosk

When someone identifies themselves at Agoo Kiosk, on an iPad, an iPhone or an Android tablet or phone, the screen that greets them, and the confirmation after they clock in, says Your shift today: 08:00 to 17:00, break 12:00 to 13:00. On a night shift that started the evening before, it says Your shift: 20:00 to 08:00. If they have no shift, it says nothing.

The kiosk apps keep the site's published shifts for yesterday, today and tomorrow, so this works with no network; a kiosk in a browser shows it while it's online. On days the roster doesn't cover, it shows the person's weekly fixed shift.

Swaps and open shifts settings

Choose how swaps and open shifts work for your whole organisation in Console → Attendance → Settings, under Swaps and open shifts (or Change the rules on Open shifts and swaps). Owners, Admins and HR can change them.

SettingWhat it doesDefault
Staff may swap shiftsPeople can offer their shifts to colleagues in Agoo WorkspaceOn
Staff may ask for open shiftsPeople can claim open shifts. Off, they don't see themOn
The first to ask gets it or A manager gives it outWhether the first claim takes an open shift at once, or a claim waits for approvalA manager gives it out
Swaps on the same shift stand without approvalA swap between two people on the same shift template needs no approvalOff
Who approves swaps, Who approves claims for open shiftsLine manager, line manager then HR, HR only, no approval, or a custom chain on EnterpriseLine manager

Changing them is recorded in the audit trail as Changed the rules for swaps and open shifts. Home's Set up staff time checklist, and the setup wizard's Staff time step, ask about Swaps and open shifts (Growth and above) until you save these settings or confirm them. See Attendance rules and setup.

Who hears what

What happensWho's toldHow
A roster is published with a change for themEach person whose shifts changed, onceThe app, or email without it
A roster with open shifts is publishedThe people at the site who can take them, once per publishThe app only
A shift is offeredThe colleague named, or everyone who could take itThe app, or email without it
The colleague takes the shift or says noThe person who offered itThe app, or email without it
A swap or a claim needs a decisionWhoever it's waiting with: the line manager, HR, a deputy or whoever it moved toThe app (with Approve), or email
A swap is approved, declined or called offBoth people in itThe app, or email without it
A claim is approved, declined or someone else got itThe person who claimed itThe app, or email without it

Each person can turn these on or off in Account → Notifications. See Notifications.

Set up rosters

The setup wizard's Staff time step asks Do you roster shifts?, and Home's Set up staff time checklist has Your first roster (Growth and above). It's ticked when you publish your first roster, or when you answer No. Both also ask about Swaps and open shifts, ticked when you save or confirm the settings. See Attendance rules and setup.

What staff see

  • In Agoo Workspace, on iPhone, iPad and Android, Your shifts shows their published shifts for this month and next, with the site, times, label, break and any note. New and changed shifts are highlighted until they've seen them, and a removed shift says so. It works offline. See the Workspace app.
  • Open shifts, Offers to you and Your swaps and claims, in Your shifts: the open shifts they can ask for, shifts colleagues offer them, and their own swaps and claims with where each stands.
  • The Next shift widget on their Home Screen shows their next shift at a glance, and Your shift today greets them at the kiosk.
  • One notification per publish: "Your new shifts are out" or "Your shifts have changed", with what changed and from when. Without the app, the same news comes by email. A shift that becomes theirs through a swap or a claim arrives the same way, highlighted.
  • Shift reminders come before rostered shifts as they do before fixed ones, if your organisation has them on. See Shifts and overtime.

Staff see only their own published shifts, never drafts, never a change you haven't published, and never anyone else's roster. The exceptions are what a swap needs: someone offering a shift sees which colleagues at the site could take it and, to ask for one in return, each colleague's published shifts there for the next four weeks; and an open shift or an offer to anyone shows who it's from.

Export a roster

Export the site's roster for a period of up to three months as CSV, Excel or PDF: each shift with the person, day, times, break and label. Printable roster (PDF) gives the notice-board grid instead. Each export is recorded in the audit trail.

Plans and data

  • Plans: rosters are part of shifts, on Growth, Pro and Enterprise, with open shifts, swaps, the warnings, printing and the kiosk's Your shift today. Importing a roster from a spreadsheet comes with Growth and above too, with the rest of Agoo's CSV import. Overtime is on every plan, and follows the published roster where there is one. On Free and Starter, Rosters shows a preview and which plan adds it.
  • Moving to a lower plan deletes nothing. Your rosters, swaps, claims and consents stay readable; you can't change or publish them, staff can't claim or swap, and patterns stop filling the roster ahead until you're back on Growth or above.
  • How long rosters are kept: as long as your attendance records, with their swaps, claims and records of consent, and a legal hold keeps them. The full organisation export includes your templates, patterns, the people on them, roster shifts, each publish, swaps, claims and consents.
  • Every change is in the audit trail: imports, settings, consents recorded and ended, claims made, withdrawn and decided, and swaps offered, withdrawn, accepted, refused, decided and called off.

From your own systems

Rosters are in the public API on Pro and Enterprise: read, create, change and remove roster shifts (open ones too), publish a site's roster, and read and decide swaps and claims. Webhooks on Growth and above tell your systems when a roster is published and when a swap or a claim is asked for, approved or declined. See webhook events.

On this page