3. Managing work schedules

3. Managing Work Schedules

Audience: Clinic directors, clinic administrators, members


Purpose

Systematically manage the work schedules, annual leave usage, and days off of the members in your organization. Shift management in StepNote follows a three-step process: Plan → Approve → Operate.

Process Overview

StepTabWhoDescription
Step 1PlanMemberEnter and submit next month's off/annual leave plan
Step 2PlanAdministratorReview the submitted plan and confirm or reject it
Step 3By MemberAdministratorView the confirmed schedule and switch to Edit Mode when changes are needed

Key principle: Whenever a confirmed schedule is modified, an edit reason must be entered, and every change is recorded in the history.


Shared Feature: Show Positions Toggle

Every screen that displays work schedules (Plan, By Date, Calendar View, and the per-member work hours in the Work Hours tab) has a "Show positions" checkbox next to the department filter.

  • When checked, each member's position appears in small text above their name.
  • Positions are set together with departments in Member Management → Edit member info.
  • The toggle state is saved automatically per organization and persists on your next visit.

This is handy when you want to see at a glance how many senior members are working on a given day.


3.1 Plan — Members Enter Their Plans

Click the "Plan" tab in the sidebar.

How to Enter a Plan

  1. Select a month

    • Use the ← / → buttons at the top to choose the month you want to plan
    • Members usually enter next month's plan in advance
  2. Enter offs and annual leave

    • Click a date on the calendar to enter it
    • Off: Marks the date as off (no annual leave deducted)
    • Annual leave: Marks the date as annual leave (deducted from the annual leave balance)
      • Morning only → morning half-day leave (0.5 days)
      • Afternoon only → afternoon half-day leave (0.5 days)
      • Both morning and afternoon → full-day annual leave (1.0 days)
    • Dates left blank are automatically treated as workdays
  3. Add a memo (optional)

    • Click the memo icon next to a date to leave a note of up to 200 characters
    • Examples: "Family event", "Hospital appointment"
  4. Auto-fill feature

    • Click the auto-fill (magic wand icon) button at the top
    • It automatically enters morning/afternoon shifts based on the member's preset personal weekly pattern
    • Annual leave that has already been entered is preserved
    • Night shifts are not auto-filled and must be entered manually

Date-specific custom indicator (New): If the clinic's business hours are temporarily changed for a specific date, a small orange dot appears next to the date number. This lets you see in advance that a day will run on different hours than usual, before you fill in your plan.

Submitting a Plan

  1. Once the plan is complete, click the "Submit" button
  2. After submission, the status changes to "Submitted" (blue)
  3. The plan cannot be edited after submission

Withdrawing a Submission

  • As long as the administrator has not yet confirmed it, you can withdraw the plan with the "Cancel Submission" button
  • After withdrawing, you can edit the plan and submit it again

Plan Statuses

StatusColorDescription
Not submittedGrayNot yet submitted; can be edited freely
SubmittedBlueSent to the administrator; cannot be edited
ConfirmedGreenApproved and confirmed by the administrator; read-only
RejectedRedRejected by the administrator; check the reason, revise, and resubmit

Viewing Other Members' Status (Member Mode)

Expand "View other members' status" at the bottom of the Plan tab to see the plan status of other members in your organization.

  • It is collapsed by default — the list only appears when you expand it explicitly, so the checkboxes are not mistaken for something that affects your own plan entry
  • It is view-only; selecting another member here has no effect on your own plan entry

Member mode — View other members' status expanded


3.2 Plan — Administrators Approve Plans

Administrators click the "Admin Mode" button to see the submission status of all members.

Plan admin screen

Screen Layout

  • Left calendar: Shows the off/annual leave status of all members at a glance
  • Right member list: Split into two sections, auto-fill members / explicit-entry members
    • The grouping is based on the auto-fill mode (auto_schedule_mode) — the criterion is "how the schedule is filled on confirmation", not whether the member has an account
    • Each section header shows the member count and a note explaining what happens on confirmation
    • Members without accounts show a gray "No account" badge on their row for easy identification (independent of the mode)
  • Top: Progress summary (Confirmed N / Submitted N / Rejected N / Not submitted N)
  • Department filter: Use the checkboxes to filter by specific departments
  • Show positions toggle: Located next to the department filter — when checked, positions appear above names
  • Member row badges: A status badge appears next to each name. Confirmed members show "Confirmed N days" (the actual number of confirmed dates); before confirmation, the submission status (Not entered / Requested / Submitted / Rejected) is shown
    • If some dates exist in the plan but are not yet confirmed, an orange "Unconfirmed N days" badge appears next to "Confirmed N days" — this prevents the misunderstanding of "I confirmed, but it looks incomplete"
  • Member row buttons: Below each row are Delete Plan / Unconfirm buttons, plus a Confirm button that appears only while unconfirmed dates remain (Unconfirm appears only when confirmed dates exist). When confirming the remaining dates of a member who is already partially confirmed, the button label changes to "Confirm More". When the number of unconfirmed dates reaches zero (fully confirmed), the Confirm button disappears entirely
  • Unconfirmed badges on the left calendar: In a month where confirmation has started at least once, each calendar date shows an "Unconfirmed N" badge with the number of members still unconfirmed for that date
  • Date-specific custom indicator (New): If a date has temporarily changed clinic-wide business hours (Work Hours tab → Temporary Closures & Hour Changes → "Clinic"), a small orange dot appears next to the date number — so you can spot days that run on different hours at a glance

Plan calendar — date-specific custom indicator (orange dot)

Plan screen - Show positions ON

Confirmation Differences: Auto-Fill vs. Explicit Entry

ItemAuto-fill membersExplicit-entry members
Weekday shifts auto-filledYes — filled automatically per patternNo
Entered offs and annual leaveAppliedApplied
Dates without entriesFilled with pattern shiftsLeft blank

Regular members are always auto-fill. Members without accounts default to explicit entry, but can be switched to auto-fill in the user info edit modal (see 2.6 for details).

→ Even if you confirm both groups at once, the confirmation results differ. To prevent explicit-entry members from ending up with empty schedules, assign their workdays in advance with explicit entries such as "single-day shift".

Individual Approval/Rejection

  1. Click a member's name → view that member's plan details
  2. "Confirm" button → confirm the plan (status: Confirmed)
  3. "Reject" button → select a rejection reason, enter any notes, and reject

Example rejection reasons:

  • Schedule coordination needed
  • Too many off days
  • Does not match the pattern
  • Other (free text)

Single Confirmation — Explicit-Entry Count Preview

When you confirm a single explicit-entry member, the dialog previews the number of explicitly entered shift, off, and annual leave days.

  • If there are zero explicit entries, a ⚠️ warning appears — confirming as-is will leave that member's schedule empty
  • For auto-fill members, no preview is shown; only a "weekdays will be auto-filled" note appears

Batch Confirmation of Selected Members — Per-Group Preview

Select multiple members with the checkboxes and click "Confirm Selected"; the dialog previews the selected members split again into two sections, auto-fill members / explicit-entry members.

  • Auto-fill members section: shown as name badges (with a gray no-account badge next to members without accounts)
  • Explicit-entry members section: shows per-member counts of Shifts N · Offs N · Annual leave N; members with zero explicit entries are highlighted with an amber background + ⚠️ AlertTriangle
  • A total warning appears at the bottom: "N members have zero explicit entries"

→ Before batch confirming, you can see at a glance who would be confirmed with an empty schedule.

Confirm All

  • The "Confirm all N submitted" button confirms every currently submitted plan at once
  • Confirmed plans are automatically reflected in the By Member tab

Confirmation Dialog — Specify a Period (Optional)

The individual and batch confirmation dialogs include a "Specify Period" button.

  • It is collapsed by default, in which case the entire month is confirmed
  • Expand "Specify Period" to reveal a calendar where you can confirm only the range you want (e.g., confirm only through this week first)
  • Even when confirming in split periods, the member status badge shows the actual number of confirmed dates as "Confirmed N days"

Plan confirmation — Specify Period expanded

Unconfirming — Cancel Confirmation for a Chosen Period

Administrators can also unconfirm a confirmed schedule for just the period they choose. Past dates can also be selected for unconfirming.

  1. Click the "Unconfirm" button on a confirmed member (you can also select multiple members and use "Unconfirm Selected" — the "All confirmed" checkbox at the bottom selects all confirmed members at once)
  2. The Unconfirm dialog opens, and confirmable dates are shown in bold on the calendar
  3. Clicking a start date on the calendar automatically selects through the end of that month. Clicking another date afterwards narrows the range to that end date
    • Use the "Through end of month" / "To the end (all)" chips to select a range quickly
  4. To delete the plan as well, turn on the "Also delete plan" checkbox — if enabled, the plan must be re-entered before re-confirming
  5. Click the "Unconfirm" button to delete the confirmed schedule for the selected period

Attendance records that already exist (clock-ins and absences) are not deleted. Unconfirming only cancels scheduled shifts. Selecting past dates shows a ⚠️ warning — canceling past shifts may change attendance and no-show statistics.

Unconfirm — period selection calendar

Deleting Plans — Bulk-Delete Plans Entered by Members

Administrators can bulk-delete plans entered by members (off, annual leave, and shift entries) for a specified period. Because this deletes the plan itself, it can be used at any time, regardless of confirmation status.

  1. Click the "Delete Plan" button in the member list (you can also select multiple members and use "Delete Selected Plans")
  2. Select the period to delete on the calendar (the controls work the same as Unconfirm)
  3. Click the "Delete Plan" button to delete the plans for the selected period
  4. If no plans remain for that month after deletion, the member's status automatically reverts to "Not entered"

Plans on confirmed dates are not deleted. You must first unconfirm those dates (see above) before their plans can be deleted.

Delete Plan — period selection calendar


3.3 By Member — Viewing Confirmed Schedules

Click the "By Member" tab in the sidebar.

By Member screen - read-only

Screen Layout

  • Left: Member list (color-coded by department, with remaining annual leave shown)
  • Center: Monthly schedule grid
    • Each member × date is divided into three cells: Morning / Afternoon / Night
    • Blue: shift / Green: annual leave / Orange: off / Gray: not set
    • Colors follow the organization design system (semantic tokens) and keep the same meaning in dark mode
  • Top: Month navigation (← →), department filter, sort options
  • Legend: Color meanings shown at the top right

Read-Only by Default

  • The By Member tab is read-only by default
  • Clicking a cell does nothing
  • This prevents confirmed schedules from being changed by accident

Holiday Labels on Date Cells

  • Holiday names appear in small red text below the date cell (e.g., Lunar New Year below 20 (Mon))
  • Holidays are set in Work Hours tab → Temporary Closures & Hour Changes (clicking a date cell no longer sets them)

Date-Specific Custom Hours Indicator (New)

When a specific date has custom hours set via Temporary Closures & Hour Changes — either clinic-wide or for an individual — a small orange dot appears.

  • Dot on the date header: clinic-wide business hours are temporarily changed for that date
  • Dot on the top-right of an individual cell: that member has custom hours set for that specific date only

Hover over a dot to see a tooltip explaining which custom setting applies.

By Member view — date-specific custom indicator (orange dots)


3.4 By Member — Changing Schedules in Edit Mode

When a confirmed schedule needs to be changed, only administrators can activate Edit Mode.

Activating Edit Mode

  1. Click the "Edit Mode" button at the top
  2. The button changes to "Edit Mode ON" (orange)
  3. A warning banner appears: "Edit Mode — changes are recorded together with a reason"
  4. Input mode buttons appear: Shift / Annual Leave / Off

How to Edit a Schedule

  1. Select an input mode — choose Shift, Annual Leave, or Off
  2. Click a cell — click the date/time-slot cell of the member you want to change
  3. Enter an edit reason — a dialog appears:
    • Member: the member being changed
    • Date: the date being changed
    • Change: a create/delete summary
    • Edit reason (required, at least 2 characters): enter why you are making the change
  4. Click the "Confirm" button → the change is applied and recorded in the history

If no reason is entered, the Confirm button stays disabled and the edit cannot be made.

Bulk Actions

You can also change multiple cells at once:

  1. Select the checkboxes next to member names to choose the target members
  2. Click the "Actions" button at the top
  3. Choose an action type:
    • Bulk Shift Planner: enter shifts for the selected members in bulk
    • Bulk Delete: delete the selected members' schedules in bulk
  4. An edit reason is also required for bulk actions

Exiting Edit Mode

  • Click the "Edit Mode ON" button again to return to read-only

3.5 Checking the Edit History

You can trace when, by whom, and why a schedule was changed.

Opening the History

  1. Click the "Edit History" button at the top
  2. The schedule edit history panel slides open on the right

History Details

Information shown for each history entry:

FieldDescription
Edit typeShown as a badge: Created (green), Edited (blue), Deleted (red)
MemberThe member whose schedule was changed
Schedule dateThe date of the changed schedule
ChangeComparison of previous value → new value
ReasonThe reason entered at the time of the edit
Edited byThe administrator who made the change
Edited atWhen the change was made

3.6 Entry Rules

Shift Time Slots

Time slotIconTypical hoursNotes
Morning☀️09:00 - 13:00Morning practice
Afternoon🌅14:00 - 18:00Afternoon practice
Night🌙18:00 - 22:00Night practice

Note: Actual working hours can be changed in the organization settings.

Organization settings - business hours

Annual Leave Deduction Rules

Entry typeDays deductedNotes
Morning half-day leave0.5 daysMorning off only
Afternoon half-day leave0.5 daysAfternoon off only
Full-day annual leave1.0 daysEntire day off
  • The remaining annual leave balance is deducted automatically when annual leave is entered
  • If the remaining balance is insufficient, a warning appears and the entry is blocked

Off vs. Annual Leave

ItemOffAnnual leave
Annual leave deductedNoYes
NatureA simple day offPaid leave
Typical usesWeekends, public holidays, regular closuresPersonal vacation, sick leave

Preventing Duplicate Entries

  • A shift and annual leave cannot be entered for the same date/time slot at the same time
  • Changing to a different schedule type automatically replaces the existing entry

3.7 Shift Time Adjustments — Request · Approve · Notify

This feature records extra work (overtime) or reduced hours. An approval workflow applies: members submit requests themselves and administrators approve them. At every request, approval, and rejection, a push notification + AlimTalk (or SMS) is sent automatically.

Process Overview

StepWhoScreenResult
Step 1 — RequestMember[Request Adjustment] in the My Schedule tabA "Pending" badge appears on the member's row; all administrators are notified
Step 2 — ReviewAdministrator"Shift Adjustments" section in the By Member tab, Pending tabApprove or reject
Step 3 — NotifySystemPush + AlimTalk/SMSThe requester is notified of the result

When an administrator enters an adjustment directly: Adjustments entered by an administrator via the "Add Shift Adjustment" button are saved as immediately confirmed (no approval step). The approval flow in this section applies only to requests submitted by members via [Request Adjustment].


3.7.1 Members: Requesting an Adjustment

Members can request adjustments only for their own schedule.

  1. Open the My Schedule tab

    • Go to "My Schedule" in the sidebar, or to your own schedule screen.
  2. Open the request form

    • Click the [+ Request Adjustment] button at the top of the "Shift Adjustments" section.
    • The request form expands. Since requests are made in your own name only, no member selection dropdown is shown.
  3. Enter the adjustment details

    FieldDescription
    DateThe date to adjust (selectable only within the month currently displayed)
    Time (minutes)1–600 minutes (in 1-minute increments)
    Adjustment typeExtended shift / Reduced shift
    MemoReason (optional — recommended) — e.g., "Handled an emergency patient"
  4. Click [Create]

    • The request is submitted immediately.
    • A gray "Pending" badge appears on your row.
    • At the same moment, all administrators are notified (see 3.7.4 below).
  5. Status changes

    • When an administrator approves → the badge disappears and it becomes an official adjustment.
    • When an administrator rejects → the badge changes to a red "Rejected" badge.

To cancel your own request, you can delete the row while it is still Pending. Once approved, only administrators can edit or delete it.


3.7.2 Administrators: Reviewing, Approving, and Rejecting Requests

Administrators (clinic directors / clinic administrators) review requests in the "Shift Adjustments" section of the By Member tab, or in that section's Pending tab.

Screen Layout

  • Status filter tabs: 4 tabs — All / Pending / Approved / Rejected
  • Group by member checkbox: ON by default — rows are grouped into one summary row per member
  • In the Pending tab, grouping is automatically disabled and a flat table is shown (to help you find items to approve quickly)

Group-by-member view — extension and reduction shown separately (Updated 2026-08)

When Group by member is on, each member is summarized in a table with the following columns.

ColumnDescription
StaffMember name
CountNumber of adjustment requests for this member
ExtensionTotal extra work minutes (orange)
ReductionTotal reduced work minutes (blue)
TotalExtension − Reduction (shown in orange if positive, blue if negative)
DetailsClick to expand this member's individual adjustments below
  • Click a column header to sort by that column
  • Previously extension and reduction were combined into a single total; now you can see them separately, making it easy to tell at a glance whether someone actually worked more or less overall

Schedule adjustments — group-by-member table

Approving

  1. Switch to the Pending tab.
  2. Click the [Approve] button on the row you want to review.
  3. It is processed immediately:
    • The row moves to the Approved tab
    • An automatic notification is sent to the requester (see 3.7.4 below)
    • The adjustment is officially applied to that member's schedule

Rejecting

  1. Click the [Reject] button on a row in the Pending tab.
  2. The row moves to the Rejected tab.
  3. A rejection notification is sent to the requester.

Administrators are users with system administrator (systemAdmin) / clinic director (owner) / clinic administrator (admin) permissions. Regular members do not see the [Approve] / [Reject] buttons.

Badge Colors by Status

StatusBadgeColor
Pending"Pending"Gray
Approved(no badge)— shown as an official adjustment
Rejected"Rejected"Red

3.7.3 Adjustment Examples

SituationAdjustment typeTimeMemo
OvertimeExtended120 min"Assisted with an emergency surgery"
Leaving earlyReduced60 min"Personal reasons"
Extra workExtended180 min"Inventory count"
Shortened lunch breakReduced30 min"Morning practice ran long"

3.7.4 Automatic Notifications — Push · AlimTalk · SMS

The system sends notifications automatically at each request, approval, and rejection. Administrators do not need to send messages separately.

Who receives them?

EventRecipientsWhen
Request (submitted)The organization's clinic director + all clinic administrators (excluding the requester)The moment the member clicks [Create]
Approval (approved)The one member who made the requestThe moment the administrator clicks [Approve]
Rejection (rejected)The one member who made the requestThe moment the administrator clicks [Reject]

Even if the requester is an administrator (admin/owner), they do not receive notifications about their own requests.

Which channels are used?

Notifications go out through two parallel tracks.

① App push (FCM) — always sent

  • A push notification arrives on the mobile app (iOS / Android)
  • Only possible for users with a registered push token (requires at least one mobile app login)
  • Tapping the push takes you straight to the relevant adjustment screen

② Message channel fallback chain — sent independently of push

  • The following channels are tried in order, stopping at the first success:
    1. AlimTalk — Kakao business message (requires a registered phone number + Kakao AlimTalk consent)
    2. KakaoTalk — FriendTalk
    3. SMS — text message to the phone number
    4. Email — the sign-up email address

In short: push is always sent, and in addition one of AlimTalk/SMS/email will reach the recipient.

Example Notification Messages

EventTitleBody
RequestShift adjustment requestedMinsu Kim requested a 60-min extension on May 13
ApprovalShift adjustment approvedYour 60-min extension request for May 13 was approved
RejectionShift adjustment rejectedYour 60-min extension request for May 13 was rejected

Not receiving notifications?

  1. Check mobile app push permissions — Device Settings → Notifications → make sure notifications are allowed for StepNote
  2. Check the phone number — in Member Management, confirm that your (or the recipient's) phone number is registered
  3. Email is the final fallback — if none of the above work, the notification arrives at the sign-up email (check the spam folder too)
  4. Retry policy — temporary delivery failures are retried automatically up to 5 times (at intervals of 30 sec → 2 min → 10 min → 30 min → 1 hour)

Notifications are enqueued at the same time as the request transaction, and a separate delivery worker processes the queue every minute. Delivery may therefore be delayed by up to about one minute.

3.7.5 Notification Center — Header Bell Icon

Even if you missed a push, AlimTalk, or SMS, or push permission is turned off, you can review your notifications at a glance via the bell icon on the right side of the web/app header.

Where is it?

  • Desktop: right side of the header, next to the KakaoTalk inquiry button
  • Mobile: right side of the header, next to the QR clock in/out icon

Notification center bell icon — a red badge shows the count when there are unread notifications

How does it work?

  1. Red badge — the number of unread notifications is shown at the top right of the bell icon (99+ when there are more than 99).
  2. Real-time updates — when a new notification arrives, the badge count increases immediately without a page refresh (Supabase Realtime).
  3. Click → dropdown — clicking the bell shows up to 50 notifications from the last 30 days, newest first.
  4. Auto-read on open — the moment the dropdown opens, the unread notifications visible on screen are marked as read in bulk and the badge resets to 0.
  5. Just-read highlighting — while the dropdown is open, notifications you have "just seen for the first time" are highlighted with a light blue background + a blue bar on the left + a blue dot on the right, so you can visually tell which notifications are new.
  6. Click an item → go to details — clicking a notification takes you to the Shift Adjustment tab where that request is shown.
  7. Mark all as read — the [Mark All as Read] button at the top right of the dropdown marks everything as read at once.

Notification center dropdown — just-read notifications are highlighted with a light blue background + a blue bar on the left + a blue dot on the right

Relationship to Push Notifications

ItemPush notificationNotification center (bell)
When sentImmediately on request/approval/rejection (worker runs every minute)Stored immediately, at the same time as the request/approval/rejection
Who receives itSame as 3.7.4 above (request → all administrators, approval/rejection → requester)The same recipients as push
RetentionKept temporarily in the device notification center (OS policy)Kept for the last 30 days, up to 50 shown
Permissions requiredMobile app push permission + token registrationJust being logged in is enough
Read handlingNoneAutomatic when the dropdown opens

Notifications land in the bell icon even if the push never arrives, so users who keep push permission off will not miss anything.


3.8 Work Hours Settings Tab

Click the "Work Hours" tab in the sidebar to manage all clinic work-hour settings in one place. The screen is divided into three sub-tabs at the top.

Work Hours tab

Sub-Tabs

Sub-tabDescription
Clinic HoursThe clinic's practice/working hours per weekday (Mon–Sun) — applied to all members by default
Member HoursRegister only members who work different hours from the clinic default (shown in a member × weekday grid)
Temporary Closures & Hour ChangesHolidays / clinic-wide / per-member customizations that apply to specific dates only

Clinic Hours — Editing Weekday Working Hours

The weekday working hours table is the baseline for clinic hours. There is no separate "default working hours" setting; you manage the morning, afternoon, and night hours of each weekday (Mon–Sun) directly in this table.

Click the Edit button to switch to edit mode.

  • Use the checkbox in front of each time slot (Morning / Afternoon / Night) to decide whether that slot is used on that weekday. Turning on the checkbox auto-fills the times.
  • Checked time slots require both start and end times. If they are left blank, saving is blocked and a message shows which weekday/slot is missing.
  • Click the copy button at the end of a weekday row (tooltip: "Copy to all checked weekdays") to copy that weekday's times to every weekday that is not a holiday and has the time slot checked. This is handy for setting one weekday and then spreading it to the rest at once.
  • For weekdays that are fully closed, check Holiday.

Managing Temporary Closures & Hour Changes

The Temporary Closures & Hour Changes sub-tab manages exceptions that apply to specific dates only, in three types: Holiday · Clinic hour change · Personal customization.

Temporary Closures & Hour Changes — list view

Exception Types

TypeBadge colorPurpose
HolidayRedFull days off, such as public holidays and clinic closures
ClinicOrangeClinic-wide working hours applied to a specific date only
MemberBlueA specific member's working hours on a specific date

Filters and View Switching

  • Use the Holiday / Clinic / Member checkboxes at the top to view only the types you want.
  • Switch the view mode with the List / Calendar tabs.
  • Use the year selector at the top right of the card (e.g., 2026) to change the year being viewed.

Temporary Closures & Hour Changes — calendar view

  • In the calendar, click a badge shown on a date to open the edit dialog for that exception directly.

Adding an Exception

Use the + Holiday, + Clinic Hour Change, and + Personal Customization buttons at the top right of the card to add a new exception of each type.

  • + Holiday: enter a name (e.g., "Lunar New Year holidays"), the date, and a description (optional).
  • + Clinic Hour Change: specify the working hours (Morning / Afternoon / Night) applied clinic-wide. Each time slot has a No shift checkbox and an optional description field.
  • + Personal Customization: select the target member, then specify that member's working hours for that day. A description (optional) can be entered.

Working hours settings dialog

Editing / Deleting Exceptions

  • Click an item in the list or calendar to open the edit dialog for its type.
  • The Holiday, Clinic, and Member edit dialogs each have a Delete button, which removes the exception after a confirmation prompt.

Priority Order

Working hours are applied in the following order (highest first):

  1. Personal, per-date — a specific member's setting for a specific date (the "Member" type in Temporary Closures & Hour Changes)
  2. Clinic, per-date — a clinic-wide setting for a specific date (the "Clinic" type in Temporary Closures & Hour Changes)
  3. Personal, per-weekday — the member's per-weekday hours set in Member Hours
  4. Clinic, per-weekday — the weekday working hours in the Clinic Hours sub-tab

Note: For a member with a personal weekday pattern, the personal pattern takes precedence over clinic per-date changes. To change that member's hours as well, set a personal per-date entry separately.


Member Hours Grid

The Member Hours sub-tab is displayed as a member × weekday grid, so you can see at a glance who has personal settings. Register only members who work different hours from the clinic default; unregistered members follow the clinic hours.

DisplayMeaning
Bold time (e.g., 10:00~15:00)Custom hours are set for that member/weekday
Red badge OffThat weekday is set as a personal day off
Gray timeNo customization — the clinic's weekday hours apply
  • Click a row (member) to open the edit dialog (administrators only)
  • Use the "+ Add Member" button to add members who have not been registered yet
  • Turn on the "Show positions" checkbox at the top right of the section to display positions next to member names, making it easy to distinguish senior/junior members at a glance

Member Hours — Show positions ON


3.9 Monthly Shift Overview (By Date)

Viewing the Monthly Work Schedule

  1. Click the "By Date" tab in the sidebar

Monthly shift overview

  1. What is shown

    • All members' monthly schedules at a glance
    • Color-coded by department
    • Shift/annual leave/off statistics
  2. Filter options

    • Filter by department
    • View specific members only
    • Show positions toggle — when checked, positions appear in small text above names

By Date — Show positions ON

Printing

Click the printer icon button on the right side of the header to switch to the inline print preview.

By Date — print preview

  • Paper size: enter width × height in mm directly
  • Page mode:
    • Shrink to one page: automatically scales everything to fit on a single page (default)
    • Print across multiple pages: automatically splits onto additional pages when there are many members
  • After checking the preview, click the "Print" button
  • To close the preview, click the "Close" button

3.10 Calendar View Tab

Click the "Calendar View" tab in the sidebar to see shift status in a monthly calendar format.

Sub-Tabs: Overview / Detailed

The Calendar View tab has two sub-tabs.

Sub-tabDescription
OverviewShows shift status visually in a calendar format (formerly "Graphic")
DetailedShows the list of morning/afternoon/night workers per date as text (formerly "Text")

Detailed tab highlights:

  • See the list of workers per time slot (morning/afternoon/night) for each date at a glance
  • Partial off/annual leave statuses are also clearly labeled

The selected sub-tab is remembered automatically. The last sub-tab you viewed opens again on your next visit.

Calendar View — Detailed, Show positions ON

Calendar View — Overview, Show positions ON

Screen Layout (Overview Tab)

  • Built-in month navigation: move between months with the ← → buttons
  • Department filter sync: the department filter is automatically synced with the By Date tab
  • Show positions toggle: located next to the department filter — applies to both Overview and Detailed
  • Legend: Shift (blue) · Annual leave (green) · Off (orange) · Not set (gray) · (Night) night-shift weekdays — shown as a collapsible legend on mobile, and printed identically in the print preview

Night Labels in Weekday Headers

Weekdays with night shifts configured automatically show (Night) in the calendar's weekday header.

Example: Tue (Night) — when Tuesday is a night-shift weekday

Night-shift weekdays are configured in Work Hours tab → weekday working hours.

Shift Filters

You can filter which members appear on the calendar by time slot.

FilterDescription
Has shift (all)Members with a shift in any time slot
MorningShow morning workers only
AfternoonShow afternoon workers only
NightShow night workers only
No shiftShow members with no shift on that date
  • Clicking the Has shift checkbox turns the Morning/Afternoon/Night sub-items on and off together
  • If only some sub-items are selected, the parent checkbox shows a partially selected (indeterminate) state

Printing the Calendar

  1. Click the print icon button at the top right

  2. The screen switches to an inline preview

    Overview tab print options:

    • Adjust the paper size (width × height in mm)
    • Choose Shrink to one page / Print across multiple pages

    Detailed tab print options:

    • Choose whether to show the memo area in each date cell
    • Font size adjustment — use the stepper buttons to increase or decrease the printout's font size step by step
    • Week-based page breaks — pages break on calendar week (Mon–Sat) rows rather than in the middle of date cells, so a week is never split across pages
    • The preview width matches A4, so it corresponds to the actual number of printed pages
    • Dates with night shifts show (Night shift) alongside the date/weekday label
  3. Click the "Print" button


3.11 Cautions and Tips

Cautions

  1. Check remaining annual leave

    • Always check the remaining balance before entering annual leave
    • If it is insufficient, grant annual leave in Member Management first
  2. Be careful with Edit Mode

    • Edits to confirmed schedules are always recorded with a reason
    • Turn Edit Mode off when you are done to prevent mistakes
    • Edit history cannot be deleted, so make changes carefully
  3. Plan submission deadline

    • Please submit next month's plan by the end of the month whenever possible
    • Plans appear in the By Member tab only after the administrator confirms them

Tips for Efficient Use

  1. Use auto-fill

    • Setting up weekly patterns in advance lets you enter plans quickly with auto-fill
    • Pattern setup: Member Management → select a member → Weekly Pattern
  2. Administrator bulk confirmation

    • Once every member has submitted, process everything at once with the "Confirm All" button
  3. Manage by department

    • Use the department filter to review and manage schedules per department
    • You can grasp each department's shift status at a glance
  4. Use the edit history

    • Manage changes transparently through the edit history
    • In case of a dispute, the edit history serves as supporting evidence

3.12 Attendance & Calendar UX Improvements (Updated 2026-05)

All shift-related screens (Plan, By Member, By Date, Calendar View, and the Work Hours tab) have been aligned to the organization design system (semantic tokens).

  • Consistent status colors: The standard shift = blue / off = orange / annual leave = green / not set = gray is applied identically across all screens, including Plan, By Member, By Date, Calendar View, and My Schedule. (Updated 2026-06 — the annual leave color, previously different per screen, has been unified to green)
  • Dark mode support: When switching between light/dark themes, all badges, cells, legends, and toggle buttons keep the same meaning and display with appropriate brightness.
  • Unified focus/hover states: Focus rings on input fields, checkboxes, radio buttons, and toggle buttons match the organization's primary color, improving keyboard accessibility.
  • Print output: Legends, cards, and badges in the graphic/text print previews use the same semantic colors, providing a consistent look even when saved as PDF.

Clock In/Out Records Tab — Status Visual Language (Updated 2026-05-29)

Status indicators on the clock in/out records screen have been improved to combine color + icon + text.

StatusHow it is shown
On timeCalm default text (following the principle of highlighting exceptions only)
Late↑ arrow icon + yellow text + "Late N min" accessibility label
Left early↓ arrow icon + yellow text
Not recordedItalic type + scheduled time shown as (09:00) — clearly distinguishing absence (not recorded) from days off
Off / Annual leaveGray — no shift on that date

Added features:

  • Today strip: The number of members clocked in / not clocked in / late today is shown at the top of the administrator screen.
  • Legend on mobile: The legends for clock in/out records and Calendar View are now shown on mobile too (previously desktop-only).
  • Night labels on the calendar: Night-shift weekdays are shown as (Night) in the weekday header at the top of the Calendar View tab.

Late arrivals and early departures are distinguished by icons as well as color, so they remain identifiable in color-blind and black-and-white environments.


3.13 Mobile Readability Improvements (Updated 2026-06)

In response to feedback that work schedules were hard to read on mobile, the mobile layouts of key screens have been improved.

My Schedule Calendar (Member Mode)

  • Icon-only cells: Instead of truncated text in narrow mobile cells, only the time-slot icons (☀️ morning / 🌅 afternoon / 🌙 night) are shown. Long-press a cell, or view on desktop, to see the text labels as well.
  • Collapsible legend at the top: A legend has been added above the calendar so you can immediately check the meaning of colors (shift / off / annual leave) and time-slot icons. Tap to collapse and expand.

Administrator Calendar and Other Screens

  • The administrator Calendar View → Overview calendar also shows a collapsible legend on mobile.
  • The mobile layouts (font sizes, spacing, horizontal table scrolling) of the clock in/out records, schedule, statistics, business analytics entry, work board, messenger, reservations, and settings screens have been tidied up across the board.

Unified Annual Leave Color

Annual leave used to be shown in a different color on each screen (personal calendar = green, administrator Overview calendar = red, By Date = orange), but it is now unified to green on all screens. Orange always means off, and blue always means shift.


3.14 Statistics Tab — Analyzing Attendance

Audience: Clinic directors, clinic administrators

Click the "Statistics" tab in the sidebar to analyze your organization's attendance data from multiple angles.

Shared Period Filter Bar

A period filter bar appears at the top of every statistics sub-tab.

ControlDescription
This monthAutomatically sets the 1st through the last day of this month
Last monthAutomatically sets the full period of last month
This yearAutomatically sets January 1 through December 31
Start date / End dateEnter the dates you want directly
Apply buttonApplies the manually entered dates
  • Pressing a preset button (This month/Last month/This year) also syncs the date input fields.
  • The preset button matching the currently applied period is highlighted in a darker color.
  • When entering dates manually, enter both the start and end dates, then press the "Apply" button.

Changing the period automatically reloads that tab's data.


3.14.1 Dashboard Tab

Check your organization's key attendance metrics at a glance.

KPI Cards

CardDescription
Late daysTotal number of late days across all members in the selected period
Late minutesTotal late time (minutes) across all members
Extended shiftsTotal extended-shift time across all members
Members to watchNumber of members with frequent lateness or early departures

Lateness Trend Chart

Shows the lateness rate over the last 6 months as a line chart. You can see whether lateness spiked in a particular month or is improving.

Members-to-Watch Table

Lists members with frequent lateness. Click a member's name to jump straight to the Individual Attendance Analysis tab.

Overtime Analysis (New)

Below the KPI cards and the members-to-watch table, a "⏱ Overtime Analysis" section follows. It lets you break the "Extended shifts" number from the KPI cards above down further by weekday, date, and member.

Dashboard — overtime analysis

ComponentDetails
4 KPI cardsTotal overtime (occurrence count) · members with overtime (/total members) · frequency (occurrences per member per week) · average (per case, per member)
Overtime-by-weekday chartThe bars show the average per weekday occurrence — this compares weekdays fairly, since a Monday that occurred 5 times in the period shouldn't outweigh a Wednesday that only occurred twice by using totals. The table below also shows the total, count, member count, and number of working days per weekday
Overtime-by-date chartDays with no occurrences are filled in as 0, so you can see at a glance whether overtime clustered on specific dates
Top overtime members tableRanks members by occurrence count, total time, and average time. Click a row to jump to that member's Individual Attendance Analysis tab

💡 This section only counts approved overtime (from approved work adjustments). Pending or rejected overtime requests are not included.

💡 The "Members to Watch" table is based on lateness, so members with heavy overtime don't show up there — lateness is something to fix, while overtime is a workload-distribution issue, which is why they're tracked in separate tables.


3.14.2 Attendance Summary Tab

Summarizes attendance for the selected period by person or by date.

Shared Filters

ControlDescription
By person / By date tabsSwitch the view mode
Exclude former/inactive checkboxWhen checked, former members and inactive members are excluded from the totals (default: excluded)
Department filterView specific departments only

By-Person View

Each member is shown as a row.

ColumnDescription
NameMember name
Late daysNumber of late days in the period
Late minutesTotal late time in the period (minutes)
Extended timeTotal extended-shift time
Reduced timeTotal early-departure/reduced-shift time
Leave grantedAnnual leave days granted in the period
Leave usedAnnual leave days used in the period
Leave remainingCurrent remaining annual leave
  • Click a column header to sort by that column in ascending/descending order.

By-Date View

Shows dates as rows and each member's attendance status (late, extended, off, annual leave) as columns. Useful for spotting whether issues cluster on particular dates.


3.14.3 Time-Off Patterns Tab

Analyzes members' off and annual leave usage patterns.

View Modes

TabDescription
Compare membersCompare each member's off/annual leave days side by side
By weekdayShows how offs/annual leave are distributed across weekdays
  • The default period is set to the entire current year.
  • You can freely change the period with the period filter bar.

3.14.4 Individual Attendance Analysis Tab

Select members one at a time to analyze detailed monthly and yearly attendance patterns.

  • Clicking a member to watch in the Dashboard tab navigates here with that member preselected.
  • You can review monthly lateness, working-hour patterns, and annual leave usage trends per member.

3.15 Chart Program Paste Memo (Not in the Sidebar)

This feature is for clinics that manually copy the day's workers and members on leave into their own chart program (EMR) every day. It does not appear in the sidebar menu; you must enter the URL directly in the address bar: your-stepnote-url/organization/{organizationId}/chart-memo

  • Choose the month and the departments and their order (drag to rearrange), and cards are generated per date with a line of that day's workers (separated by / in department order) and a line of members off for the full day
  • Use the copy button next to each line to copy that line only — because line breaks get lost when pasting into chart programs, copying is deliberately done line by line
  • The department selection and order are saved on this device only (not on the server)
  • Only organization members can access it, so knowing the URL does not expose another organization's data

Tip: This manual is a guide for people using the clinic management system for the first time. Take each step at your own pace and you will find it easy to follow.