Job Card: is Time Log restricted by Scheduled Time, Working Hours or Holiday List? (v16)

Hi everyone,

I’m using ERPNext v16.52.1 and want to confirm whether ERPNext is supposed to validate actual time entry against the planned schedule.

Setup

  • BOM with 8 outsourced operations, Produce an Item at Each Operation enabled (track_semi_finished_goods = 1), so one Work Order creates 8 Job Cards
  • Workstation Working Hours: 08:00–18:00
  • Holiday List: Wednesday weekly off, plus festivals
  • Manufacturing Settings: Allow Overtime = 0
  • Workstation Production Capacity = 24

Scheduled Time (correct)
Job Card PO-JOB00507, Expected Time Required = 1000 mins

  • 07-11-2026 13:17 → 18:00
  • 12-11-2026 08:00 → 18:00
  • 13-11-2026 08:00 → 09:57

The scheduler correctly skips the holidays and stays within working hours.

Actual Time Log (no restriction)
All of these were accepted with no error:

Actual time logged Accepted
Before the scheduled start (today, 28-10-2026, a Wednesday holiday) Yes
Inside the holiday gap (08-11 to 11-11) Yes
05:00, before working hours Yes
01-06-2027, 7 months after the scheduled end Yes

From the code, the only time log validations I can find are from_time < to_time, workstation overlap (up to production capacity), and employee overlap. There’s no check against Scheduled Time, Working Hours, or the Holiday List.

Questions

  1. Is this the intended behavior, i.e. is Scheduled Time only a plan and the Time Log free entry?
  2. Is there any standard setting to stop a job from starting before its scheduled date or on a holiday?
  3. If not, is a Server Script on Job Card (Before Save) the recommended way to add this?

Two related observations

  • On the Work Order Operations grid, planned_start_time appears to be set from the last scheduled slot (scheduled_time_logs[-1]), so multi-day operations show a later start date than the real one.
  • On my Job Card, Actual Start/End Date shows 12-11-2026 even though the Time Logs table is empty and Total Time = 0. It looks like a stale value left from a deleted row.

Thanks!

Attach your screenshot of the Job Card when you post it; it’ll help people follow. If you’d rather keep the forum question short, the two related observations could go in a separate GitHub issue instead.