> For the complete documentation index, see [llms.txt](https://kb.logicerp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/roster-calendar.md).

# Roster Calendar

**Available on:** Desktop · Web · Phone

Navigate to **Payroll Entry** and click on "Roster Calendar".

**Roster Calendar** shows each employee's days for a payroll period, and lets you change days by hand — for example to swap a shift or move a week-off. A hand change stays even when the roster is generated again.

## Load the calendar

1. Choose the **Year** and the **Period**. The list holds the payroll years and the last, current and next calendar years; the year and period covering today are picked for you. A payroll year with no periods set up shows its calendar months instead, with a note.
2. Choose the employees with **Select Employees** (working employees) or **All Rostered Employees** (everyone with a roster line who has not left).
3. Press **Refresh**. Nothing is shown until you press it. Employees are listed by name.

## What the cells show

| Cell                                                    | Meaning                                                                                                                                            |
| ------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| a shift name                                            | a working day on that shift                                                                                                                        |
| **WO**                                                  | week-off                                                                                                                                           |
| **HD** after the shift name, for example *DAY SHIFT HD* | half-day off                                                                                                                                       |
| **H**                                                   | holiday                                                                                                                                            |
| **(ROSTER)**                                            | a hand change you have set back with **As Rostered**, not saved yet                                                                                |
| green                                                   | changed, not saved yet                                                                                                                             |
| light blue                                              | changed by hand (saved)                                                                                                                            |
| grey                                                    | locked: a past day, a payroll period already processed, before joining or after leaving, or an employee with no roster lines. Today is not locked. |

## Change days

### **Step 1: Select the days**

* Click a day, or drag across several employees and days.

### **Step 2: Choose the change**

* In the **Change to** bar, pick a shift, or tick **Week-off** or **Half-day off**, then press **Apply**. The cells turn green: not saved yet.
  * The shift list starts with **(DAY'S OWN SHIFT)**; only active shifts are listed.
  * **Half-day off** with (DAY'S OWN SHIFT) keeps each day's shift and marks half the day off; with a shift picked, that shift is used.
* Locked days in a selection are skipped; the line under the grid says how many days were changed and how many locked ones were skipped.
* **As Rostered** undoes a hand change: an unsaved change is simply dropped; a saved one shows **(ROSTER)** and goes back to what the roster lines give when you save.
* **Right-click** the grid for the same choices: **Shift** (then the shift), **Week-off**, **Half-day off (day's own shift)** and **As Rostered**. It works on the days already selected, so select first.

### **Step 3: Save**

* Press **Save** and confirm. Each employee's changed days are saved, and their holidays and week-offs brought up to date.
* Each employee is saved on their own: if one fails, their days stay as they were and the others are still saved. The message lists who was not saved and why.

The screen closes without asking if day changes are not saved — save first.

> **Example —** Sunil and Kiran swap shifts on Saturday 14 November. HR loads November, clicks Sunil's 14 November cell, picks NIGHT SHIFT in **Change to** and presses **Apply**; then clicks Kiran's cell, picks DAY SHIFT and presses **Apply**. Both cells turn green. After **Save** they turn light blue, and they stay as set even when the roster is generated again.

Every saved change appears in the [Change Log Viewer](/logic-erp-learning-hub-tutorials-and-best-practices/user-access/change-log-viewer.md) as a Roster Day Change, with each day's old and new value — for example *NIGHT SHIFT (BY HAND)*.

## Messages you may see

| Message                                                                                  | Why                                                                                             | What to do                              |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | --------------------------------------- |
| Choose the employees first: Select Employees, or All Rostered Employees                  | **Refresh** with no employees chosen                                                            | Choose the employees                    |
| Choose the period                                                                        | **Refresh** with no period chosen                                                               | Choose the period                       |
| No employee has a roster line yet. Give employees their roster in Allocate Roster first. | **All Rostered Employees** found nobody                                                         | Allocate rosters first                  |
| … day change(s) are not saved yet. Discard them and reload?                              | **Refresh** with changes not saved                                                              | **No** goes back so you can Save        |
| Choose a shift, Week-off or Half-day off to apply.                                       | **Apply** with nothing chosen                                                                   | Choose a change                         |
| A day is either a week-off or a half-day off, not both.                                  | Both ticked                                                                                     | Tick one                                |
| Load the calendar first: choose the employees and the period, then press Refresh.        | A change before the calendar is loaded                                                          | Load the calendar                       |
| Nothing to save: change some days with Apply or As rostered first.                       | **Save** with no changes                                                                        | —                                       |
| Save … day change(s)? The changed days are regenerated for each employee.                | The confirmation                                                                                | **Yes** to save                         |
| … day(s) saved for … employee(s). Not saved (nothing changed for these employees): …     | The result; employees that failed are listed with the reason, for example a past day            | Fix the reason, change those days again |
| Modification rights not available.....                                                   | **Apply**, **As Rostered**, a right-click choice or **Save**: your user may only view this menu | Ask for modify rights in User Access    |

## On the web

The same screen is on the web, but choosing a block and the right-click menu work differently — see **Roster Calendar on the web** in [Using These Screens on the Web and Phone](/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-setups/shift-roster/using-these-screens-on-the-web-and-phone.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://kb.logicerp.com/logic-erp-learning-hub-tutorials-and-best-practices/payroll/payroll-entry/roster-calendar.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
