Skip to main content

Report Schedules

Report Schedules allow you to automatically generate and send attendance reports at defined intervals.

Currently, reports are attendance-based.


  • Go to Reports from the main menu.
  • Click on Schedules to open the Report Schedules listing page.
Listing Page

Listing Page

The listing page displays all created report schedules.

Columns​

  • Name
  • Run Time
  • Frequency
  • Status Badge
    • Shows Inactive badge if disabled
    • No badge if active
Listing Page
  • Actions
    • Execute
    • Edit
    • Delete

Top Right​

  • Add Schedule button

Add / Edit Schedule

Click Add or Edit to open the schedule form.

All fields are displayed in a single page form.

Add icon

General Configuration​

Fields​

  • Name (required)
  • Report Type (currently Attendance)
  • Frequency
    • Daily
    • Weekly
    • Monthly
  • Frequency Day
    • Required only for:
      • Weekly → Select weekday (Monday–Sunday)
      • Monthly → First Day / Last Day
  • Run Time (required)
  • Timezone (required, default: Asia/Kolkata)
  • Active Toggle
general section

Frequency Logic​

Daily​

  • Default run time: 12:30 AM
  • If left as 12:30 AM:
    • Sends previous day's attendance
  • If changed (allowed between 5:30 PM – 12:00 AM):
    • Sends today’s attendance up to selected time

Example:

  • Run Time = 6:00 PM
    → Sends today’s attendance till 6:00 PM

Weekly​

  • Requires selecting a weekday.

If set to Monday:

  • On scheduled Monday:
    • Fetches attendance from:
      • Current week Monday → Sunday
      • Monday is inclusive
      • Current date is excluded
  • If created mid-week:
    • First run waits until next configured weekday.

Execute Behavior (Weekly)​

If today is NOT the configured weekday:

  • It fetches previous week's full data
  • Example:
    • Today: Wednesday (20th)
    • Configured: Monday
    • Execute:
      • Fetches previous Monday → Sunday

Monthly​

Two options:

First Day​

  • Sends previous month's full data
  • Example:
    • 1st March → Fetches Feb 1–28

Last Day​

  • Sends current month's data
  • If run on actual last day:
    • Sends complete month
  • If manually executed before last day:
    • Sends full current month
    • Future dates marked as Absent

Example:

  • Today = 15th
  • Execute
  • Sends 1st → 30/31
  • Remaining future days marked Absent
TIP

For better accuracy, it is recommended to schedule reports late at night, after most employee shifts are completed.

2️Report Target​

Define whose attendance will be included.

Options:

  • Employees (multi-select)
  • Departments (multi-select)

You can select:

  • Only employees
  • Only departments
  • Both

If both selected:

  • System unions results
  • Duplicate users automatically removed

Only active employees are considered. Exited employees automatically excluded.

general section

Report Recipients​

Define who receives the email.

Supports:

  • Employees
  • Roles
  • Custom Email Addresses

Sections​

TO (Always Visible)​

  • Employee dropdown (multi-select)
  • Role dropdown (multi-select)
  • Custom email input (multiple allowed)

CC / BCC​

general section

Top-right toggle button inside Recipients section.

When enabled:

  • CC and BCC sections appear
  • Each supports:
    • Employees
    • Roles
    • Custom emails

Duplicate recipients are automatically handled.

If an employee exits and becomes inactive, they will no longer receive reports.

general section

Attachment Format​

Choose one:

  • PDF
  • Excel (.xlsx)
  • CSV
  • In Mail

Only one format can be selected.

general section

In Mail​

  • Report table is appended at the bottom of the email body.
  • No file attachment is sent.

Other formats:

  • Sent as downloadable file attachment.

Mail Content​

Subject (required)​

Plain text input.

Body (required)​

Rich text editor (TinyMCE).

If In Mail is selected:

  • The report table will automatically be appended below the body content.

Execute Action

Clicking Execute:

  • Immediately generates report
  • Sends email to configured recipients
  • Uses same logic as scheduled frequency

If schedule is inactive:

  • Execute still works
  • But cron will not process it automatically
general section

Delete

  • Can be deleted anytime.
  • No restriction.

Status Handling

  • Active → Cron processes at scheduled time
  • Inactive → Not processed automatically

Time Rules Summary

  • Daily:
    • Default 12:30 AM → Sends previous day
    • Custom time (5:30 PM – 12:00 AM) → Sends same day till selected time
  • Weekly:
    • Fetches full completed week
  • Monthly:
    • First Day → Previous month
    • Last Day → Current month (future days absent if executed early)
NOTE

When manually executing Monthly (Last Day) before month ends, future dates are marked as Absent.