Calendar
The Calendar is the working year. It says which set of working times applies over which span of dates, how far back an attendance correction may be dated, whether a weekend sandwiched between two absences is charged, and whether the company pays an attendance allowance to people who were never away. If the client does not want that allowance to be all or nothing, criteria slabs on this same screen pay a percentage of it instead. Everything the attendance engine knows about a date, it gets from here.
What it is for
A Time Template holds times but knows nothing about dates. The Calendar is what puts those times on the actual year: from 1 January to 31 December these are the hours, and from the start of Ramadan to its end these other hours.
Every employee reaches a calendar through their Employee Policy Profile. When attendance is read for a person on a date, the system finds their calendar, finds the working time line whose span covers that date, and takes the Time Template named on that line. From the template it takes the line for that weekday, and from that line the start time, the finish time, the hours owed and the late and absence windows. Without a line covering the date, there is nothing to compare a punch against and the day cannot be judged.
The Calendar also carries the Public Holiday list for the year, which is entered on its own screen but belongs to one calendar.
Two rules on the Policy tab reach into pay directly, and they are the reason this screen is often the last thing a client argues about. They are documented in full below.
One calendar, the whole installation
A calendar is not owned by a legal entity. It is one shared record, and the same calendar can be sitting on the policy profiles of people in several companies at once. If you change a working time line or an allowance amount, it changes for everybody on that calendar, in every legal entity.
Where two companies in the group genuinely keep different years or different allowance rules, build them separate calendars - CL2026-OFFICE and CL2026-FACTORY - rather than editing one and hoping.
Every field, in plain words
Header
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Calendar | The short code. | CL2026 | Required. Name it by the year, you will build one a year. |
| Name | The readable name. | Working Year 2026 | Required. |
| Block | Stops the calendar being picked on any new record. Existing records keep it. | Leave clear | Tick it on last year's calendar once the new one is live, so nobody attaches a new joiner to it by mistake. |
Calendar Working Time - which times apply over which dates
One line per span of dates. The lines are read as date ranges, so they must not overlap: two lines both claiming 1 March would leave the system with two answers for the same day, and the screen refuses to save that.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Calendar Date | A reference date for the line. | 01/01/2026 | Informational. The span is decided by Date From and Date To. |
| Day | The weekday of that reference date. | Thursday | Informational. |
| Control | A marker on the line for your own grouping of it. | Leave blank | Informational. The attendance read does not use it. |
| Date From | The day the span opens. | 01/01/2026 | Must not be later than Date To. |
| Date To | The day the span closes. | 31/12/2026 | Must not be earlier than Date From, and the span must not overlap another line. |
| Working Day | A marker that the span is working time. | Ticked | Informational. Whether a given weekday inside the span is worked comes from the Time Template line for that weekday. |
| Weekend | A marker on the line. | Leave clear | Informational. The weekend is decided on the Time Template, line by weekday, not here. |
| Time Template | The set of times that applies across this span. This is the field that does the work. | TT-0001 | Pick it from the list. Only templates that are not blocked appear. |
| Holiday | A marker on the line. | Leave clear | Informational. Holidays are entered on the Public Holiday screen against this calendar, not here. |
Of the columns above, three decide behaviour: Date From, Date To and Time Template. The rest are markers for the person reading the grid.
Policy - corrections, sandwich absence, and the two allowances
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Attendance Correction Backdate Limit (Days) | How many days into the past an attendance correction may be dated. | 7 | 0 means no limit. A request dated further back than this is refused on the Employee Attendance Request screen, with the number of days quoted back. |
| Sandwich Absent | A weekend or holiday is charged as an absence when the nearest working day before it and the nearest working day after it were both unexcused absences. | Ticked for the factory calendar | A day absent on one side only does not trigger it, both sides must be absent. A day covered by a released exemption or on-duty request is not an absence for this purpose. |
| Attendance Allowance | Switches on the fixed allowance for people who were present for the whole period. | Ticked | Off by default. With it off, the amount and wage type below are ignored. |
| Attendance Allowance Amount | The rupee amount one qualifying employee receives for the period. | 2,000 | Must be greater than zero or nothing is paid, whatever the tick says. |
| Attendance Allowance Wage Type | The earning the money is paid through. | ATTALW | This is the field that carries the money out. Pick it from the list, which shows earning wage types only. If it is blank, or the wage type is blocked, the allowance pays nothing. |
| Perfect Attendance Allowance | Switches on the stricter allowance for people with nothing at all against them. | Ticked, on a calendar with no slab lines | Only for an unslabbed calendar. An employee can qualify for both and receives both. Where the calendar carries Allowance Slabs this must be off, and a clean period is a slab line with every count 0 instead - the screen refuses to save the two together. |
| Perfect Attendance Amount | The rupee amount one qualifying employee receives. | 3,000 | Must be greater than zero or nothing is paid. |
| Perfect Attendance Wage Type | The earning the perfect attendance money is paid through. | PERFATT | This is the field that carries the money out. It is separate from the field above, so the two amounts can be seen separately on the payslip. Earning wage types only. |
Attendance Allowance Slabs - paying a part of the allowance
Leave this grid empty and the Attendance Allowance is all or nothing: a clean period pays the full amount, one absence or one leave day pays nothing at all. Put lines in it and the lines decide the allowance instead.
Each line is a set of ceilings and a percentage. A man whose period stayed inside every ceiling on the line earns that percentage of the Attendance Allowance Amount.
A line may also name its own Wage Type and its own Amount. Left blank - which is how every calendar written before this existed reads - the line takes the allowance set above it and behaves exactly as it always did. Filled in, the line pays its own component instead, which is what a client with several differently named allowances needs in order to express them against one set of ceilings.
| Field | What it means | What to put in it | Notes |
|---|---|---|---|
| Line # | The line number. | Fills itself | Leave it. |
| Slab | A name for the line, so the grid reads as policy rather than as numbers. | Clean month, Up to two lates | For whoever reads the screen. Nothing calculates from it. |
| Half Days Allowed | The most half days the period may contain and still earn this line. | 0 | A ceiling, not a target. 0 means none at all. Cannot be negative. |
| Late Days Allowed | The most late days allowed. | 2 | |
| Early Outs Allowed | The most early departures allowed. | 0 | |
| Absent Days Allowed | The most absent days allowed. | 0 | A day covered by a released exemption or on duty request is not an absence here. |
| Leave Days Allowed | The most leave days of any kind allowed. | 1 | Leave is not absence, but it is still not an attended day. |
| Payable % | How much of the Attendance Allowance Amount this line pays. | 100, 75, 50 | Must be more than 0 and not more than 100. |
| Wage Type | The earning this particular line pays through, where it is not the one set above. | Leave it empty, or ATTALW75 | Optional. Empty means the Attendance Allowance Wage Type above. Pick it from the list, which shows earning wage types only. |
| Amount | The amount this particular line takes its percentage of, where it is not the one set above. | Leave it empty, or 2,500 | Optional. Empty or zero means the Attendance Allowance Amount above. Cannot be negative. |
Five rules the screen enforces:
- Payable % must be above zero and at most 100. A line paying nothing would only confuse whoever reads the screen next.
- No ceiling may be negative, and nor may an Amount.
- Two lines may not carry identical ceilings. Only the better paying one could ever apply and the other would be dead, which is somebody's unfinished edit rather than a policy. The message names both line numbers.
- Every line has to resolve to a wage type and to an amount, either its own or the allowance's above it. A line where neither holds one is refused by line number - "give the line a Wage Type, or set one on the Attendance Allowance above" - because that line would quietly pay nothing.
- Slabs need an allowance to divide. Slab lines with the Attendance Allowance switched off are refused: "Attendance Allowance Slabs are set, so switch the Attendance Allowance on". The amount and the wage type are no longer required up there, because a line may now carry its own - but then every line must.
The two allowances, exactly as they are enforced
Both are worked out by Payroll Attendance when it is run for a pay period. Both use the calendar on the employee's Employee Policy Profile.
Attendance Allowance pays the Attendance Allowance Amount, through the Attendance Allowance Wage Type, to an employee who, across the whole pay period, has:
- no absent day,
- no leave day of any kind,
- and was employed for the whole period, not joining or leaving part way through it.
Being late does not disqualify a person from this one. Nor does leaving early, nor a half day. It is an allowance for turning up every day, not for turning up on time.
With slabs on the calendar, the allowance becomes a percentage
The all-or-nothing rule above is what a calendar carrying no slab lines does. Put slabs on it and they govern the Attendance Allowance entirely:
- A man whose period stayed inside every ceiling on a line earns that line's percentage of its own Amount, or of the Attendance Allowance Amount where the line carries none. An allowance of
2,000on a line paying75pays1,500. - Where two lines both fit him, the one that pays him the most money wins - not the one with the higher percentage. The two were the same thing while every line shared one amount; they are not once a line carries its own, and
50percent of4,000beats100percent of1,500. The order the lines were typed in cannot change the answer, so you can add a line later without re-reading the whole grid. - He is paid through the winning line's Wage Type, or through the Attendance Allowance Wage Type where that line names none. One employee earns one line, so one allowance line on his payslip - a man does not collect two slabs.
- A line that works out to nothing pays nothing and writes no line at all, rather than putting a zero on the payslip.
- A man who fits no line at all earns nothing. A slabbed calendar does not fall back on the old rule for the people its slabs do not cover.
- Perfect attendance becomes one of the lines. A slabbed calendar is the single place every condition is written, so a clean period is a line with every count set to
0, carrying its own Wage Type and Amount. The two Perfect Attendance fields above must be switched off, and the screen will not save while they are on - left on, a clean month would be paid twice. - A joiner or a leaver is still excluded outright, slabs or no slabs. There is no pro-rating for a part period, because an allowance for coming every day of a month cannot be earned by a man the month did not cover.
Perfect Attendance Allowance pays the Perfect Attendance Amount, through the Perfect Attendance Wage Type, to an employee who has all of the above and additionally:
- no late day,
- no early leaving day,
- and no half day.
So perfect attendance is the stricter test, and it is the same test plus three more conditions. The two are not alternatives. On a calendar with no slab lines an employee with a genuinely clean period satisfies both and is paid both amounts, each on its own wage type line.
These two fields belong to the unslabbed calendar only. Put lines in the Allowance Slabs grid and the grid is the single place every condition is written, perfect included: a clean period is a slab line with every count set to 0, carrying its own Wage Type and its own Amount. The screen will not save a calendar that has slab lines and Perfect Attendance Allowance ticked, because the two together would pay a clean month twice.
For either to pay, four things must all be true: the tick is on, the amount is greater than zero, a wage type is named, and that wage type is live, neither blocked nor removed. Three of the four being right pays nothing, and says nothing.
What the payroll run then produces is an Employee Additional Payment Or Deduction document, one line per qualifying employee, dated at the end of the pay period. If nobody qualifies in a period, a document created for an earlier run of that same period is removed.
A day covered by a released Exemption Request or On Duty Request is paid as a present day and does not count against any of the conditions above. That is how a man sent to a customer site keeps his allowance.
How to configure it
- Build the Time Templates first. The Calendar cannot do anything useful without one to name.
- If you intend to pay either allowance, create the earning Wage Types first, for example
ATTALWAttendance Allowance andPERFATTPerfect Attendance Allowance. - Open Calendar and enter the code and name, for example
CL2026andWorking Year 2026. - On the Calendar Working Time tab add one line: Date From
01/01/2026, Date To31/12/2026, Time TemplateTT-0001. For most companies this single line is the whole year. - If a span of the year runs on different hours, split it. Close the first line the day before, add a line for the span with the other template, then add a third line for the remainder of the year. Check that no two lines share a date, the screen will refuse the save and name the two lines if they do.
- Go to the Policy tab. Set Attendance Correction Backdate Limit (Days) to
7if HR wants corrections closed off after a week, or0to allow any date. - Tick Sandwich Absent only if the company genuinely charges the weekend between two absences. It is a harsh rule and should be a decision, not a default.
- If the company pays an attendance allowance: tick Attendance Allowance, enter Attendance Allowance Amount
2,000, and pick Attendance Allowance Wage TypeATTALW. - If the client wants the allowance reduced rather than lost for a slightly imperfect month, open the Allowance Slabs tab and add one line per band. Start with the full one - every ceiling
0, Payable %100- then the softer bands under it. Leave the tab empty if the allowance really is all or nothing. - If it also pays for a spotless period, it depends on the step above. On a calendar with no slab lines: tick Perfect Attendance Allowance, enter Perfect Attendance Amount
3,000, pick Perfect Attendance Wage TypePERFATT, and remember a clean employee gets both so the two amounts together are what he will see. On a slabbed calendar leave those three alone and add the clean period as a slab line instead - every ceiling0, Payable %100, withPERFATTas the line's own Wage Type and3,000as its own Amount. - Save, then enter the year's holidays on the Public Holiday screen against this calendar.
- Finally, put the calendar on the Employee Policy Profile of the people it governs. Until that is done the calendar is not reaching anybody.
Scenarios
We pay two thousand rupees to anyone who did not miss a day
Tick Attendance Allowance, amount 2,000, wage type ATTALW. Leave perfect attendance off. A man who was late four times but never absent still gets his two thousand, which is usually what the client means by this sentence. If they mean the stricter thing, they want the perfect attendance allowance instead.
We pay two thousand for full attendance and three thousand more for a spotless month
Tick both, on a calendar you are not slabbing. Amounts 2,000 and 3,000, on two different wage types. A spotless employee receives both lines, five thousand in total. If the client means three thousand in total for a spotless month and nothing otherwise, do not tick the first allowance at all. If this calendar is going to carry slab lines, the two tiers become two lines in the grid instead, each with its own Wage Type and Amount.
Two lates and one half day should still pay something
This is what the slabs are for. Three lines on the Allowance Slabs tab:
| Slab | Half Days | Lates | Early Outs | Absents | Leaves | Payable % |
|---|---|---|---|---|---|---|
| Clean month | 0 | 0 | 0 | 0 | 0 | 100 |
| Up to two lates | 0 | 2 | 0 | 0 | 0 | 75 |
| Two lates and a half day | 1 | 2 | 1 | 0 | 0 | 50 |
A man with two lates and nothing else fits the second line and the third, so he is paid 75 percent, the better of the two. A man with one absence fits none of them and is paid nothing. If the client wants one absence tolerated as well, raise Absent Days Allowed on the lowest line - do not try to express it by leaving a line out.
Nobody got the allowance although attendance looks fine
Work through the four conditions in order: the tick, an amount above zero, a wage type named, and that wage type not blocked. After that, check the period. Anyone who joined or resigned inside the period is excluded by design, and so is anyone who took a single day of approved leave. Leave is not absence, but it still disqualifies.
Ramadan hours
Three working time lines on one calendar. 01/01/2026 to 17/02/2026 on TT-0001, 18/02/2026 to 19/03/2026 on RAMZAN, 20/03/2026 to 31/12/2026 back on TT-0001. Nothing else changes, and last year's attendance keeps its original meaning because you added lines instead of editing times.
The office and the factory keep different years
Two calendars. The office keeps a five day week with a Monday to Friday template and a seven day correction window. The factory keeps a six day week, has Sandwich Absent ticked and pays the attendance allowance. Each group's Employee Policy Profile points at its own calendar. Do not try to serve both from one calendar by adding more lines, the lines are about dates, not about people.
We want corrections closed once the payroll is run
Set Attendance Correction Backdate Limit (Days) to the number of days between the period end and the payroll run, commonly 7. A supervisor dating a correction earlier than that is told how many days back he is allowed to go.
What it is connected to
- A Time Template must exist before a working time line can name one.
- A Wage Type must exist before either allowance can pay.
- Public Holiday is entered per calendar. One holiday list belongs to one calendar, so two calendars need two holiday documents.
- The Employee Policy Profile is what attaches a calendar to a person. It is the only route in.
- Employee Attendance reads the calendar for every date it reports.
- Employee Attendance Request enforces the backdate limit set here.
- Payroll Attendance applies the sandwich rule, reads the allowance slabs, and pays the two allowances into an Employee Additional Payment Or Deduction document.
- The Shift Roster overrides the calendar's template for the people and days it covers.
- One calendar is shared by every legal entity whose people point at it. Treat an edit as a change to all of them.
If something looks wrong
- "It will not save, it says a line overlaps another line" - two working time lines claim the same date. The screen names both lines. Close the earlier one the day before the later one begins.
- "It will not save, Date From cannot be greater than Date To" - a line has its dates the wrong way round.
- "Attendance is blank for the whole of next January" - the calendar has no working time line covering those dates. Open the new year's span.
- "The allowance did not pay" - check in order: the tick is on, the amount is above zero, a wage type is named, and the wage type is not blocked. Then check the employee did not join or leave inside the period, and took no leave.
- "A man who was late every day still got the allowance" - that is correct for the Attendance Allowance on a calendar with no slabs, which only tests absence and leave. The stricter test is the Perfect Attendance Allowance, and the middle ground is the slabs.
- "The allowance paid a part amount and nobody expected that" - the calendar carries Allowance Slabs, and slabs decide the allowance entirely once there is one. Read the grid before you read the attendance.
- "Nothing paid although the man was only late twice" - the calendar is slabbed and no line tolerates two lates. A slabbed calendar does not fall back on the all-or-nothing rule for the people its lines do not cover.
- "It will not save, it says two slab lines have the same limits" - only the better paying one could ever apply. Delete one, or change its ceilings.
- "It will not save, it asks me to switch the Attendance Allowance on" - there are slab lines but the allowance above them is off. Tick it, or remove the slab lines.
- "It says to give the line a Wage Type or set one above" - that line names none and neither does the allowance above it, so the line could only pay nothing. Either fill the line's own Wage Type, or fill the Attendance Allowance Wage Type for every line to fall back on. The same sentence appears for the Amount.
- "Two slab lines, and the one with the bigger percentage did not win" - read the Amounts. The winner is decided in money. A line at
50percent of its own4,000pays more than a line at100percent of1,500, and that is the intended answer. - "It will not save, it says every condition belongs in the slab grid" - the calendar has slab lines and Perfect Attendance Allowance is still ticked. Switch the tick off and add the clean period as a slab line: every count
0, Payable %100, with the perfect attendance wage type and amount on the line itself. - "Perfect attendance stopped paying when we added slabs" - that is the change. The grid is now the only place conditions are written, and a clean period has to be one of its lines.
- "A supervisor cannot correct last month's punch" - the Attendance Correction Backdate Limit is shorter than the gap. Either widen it or have HR correct it another way.
- "We changed one company's hours and another company's attendance moved" - the two are on the same calendar. Split them into two calendars and repoint one group's policy profiles.
- "Saturday comes through as a weekend although the calendar line says Working Day" - the weekend is set on the Time Template's Saturday line, not on the calendar line. Correct it there.