# import_scheduling_header

```lua
message:import_scheduling_header(HEADER_NAME, REMOVE)
```

Reads the header specified and attempts to parse it as JSON-encoded version of
the [message:set_scheduling()](set_scheduling.md) parameters. If successful, it
will call [message:set_scheduling()](set_scheduling.md) with that value, and if
*REMOVE* is set to true, will remove the header from the message.

The return value of `message:import_scheduling_header` is:

* A lua table representation of the scheduling parameters, or nil if the specified header was not present. {{since('2025.03.19-1d3f1f67', inline=True)}}
* `nil` in prior versions of KumoMTA.

If the header is present, but has invalid contents the behavior will be:

* An error will be raised explaining the issue. {{since('2025.03.19-1d3f1f67', inline=True)}}
* No error indication will be given and no errors will be logged in prior versions of KumoMTA.

For example, given this message:

```
X-Schedule: {"dow":"Mon,Wed","tz":"America/Phoenix","start":"09:00:00","end":"17:00:00"}
Subject: hello

This message should only be delivered during working hours
in Phoenix on Mondays or Wednesdays.
```

this policy script will parse and remove that header, and apply the scheduling
constraints:

```lua
kumo.on('smtp_server_message_received', function(msg)
  msg:import_scheduling_header('X-Schedule', true)
end)
```
