diff --git a/sysutils/puppet-agent/pkg-descr b/sysutils/puppet-agent/pkg-descr
index b525dbc6e..6ea5ec8e0 100644
--- a/sysutils/puppet-agent/pkg-descr
+++ b/sysutils/puppet-agent/pkg-descr
@@ -9,6 +9,9 @@ WWW: https://puppet.com/docs/puppet/latest/man/agent.html
Plugin Changelog
================
+Added:
+* add new options runinterval and runtimeout
+
Changed:
* add default values for Puppet Server + Environment
diff --git a/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml b/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
index 6713c5ec4..6e5e408fe 100644
--- a/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
+++ b/sysutils/puppet-agent/src/opnsense/mvc/app/controllers/OPNsense/PuppetAgent/forms/general.xml
@@ -17,4 +17,16 @@
textChange Puppet Agent Environment
+
+ puppetagent.general.RunInterval
+
+ text
+ How often Puppet Agent applies the catalog. Enter a number followed by one of the supported suffixes: "y" (years), "d" (days), "h" (hours), "m" (minutes), "s" (seconds).
+
+
+ puppetagent.general.RunTimeout
+
+ text
+ The maximum amount of time an agent run is allowed to take. Enter a number followed by one of the supported suffixes: "y" (years), "d" (days), "h" (hours), "m" (minutes), "s" (seconds).
+
diff --git a/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml b/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
index 854add779..637901373 100644
--- a/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
+++ b/sysutils/puppet-agent/src/opnsense/mvc/app/models/OPNsense/PuppetAgent/PuppetAgent.xml
@@ -18,6 +18,18 @@
/^.{1,100}$/uShould be a string between 1 and 100 characters.
+
+ 30m
+ /^([0-9]{1,8}(?:s|m|h|d|y)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "y", "d", "h", "m" or "s".
+ Y
+
+
+ 1h
+ /^([0-9]{1,8}(?:s|m|h|d|y)?)/u
+ Should be a number between 1 and 8 characters, optionally followed by either "y", "d", "h", "m" or "s".
+ Y
+
diff --git a/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf b/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
index c375941a9..86fb47632 100644
--- a/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
+++ b/sysutils/puppet-agent/src/opnsense/service/templates/OPNsense/PuppetAgent/puppetagent.conf
@@ -3,6 +3,12 @@
certname = {{ system.hostname|lower }}.{{ system.domain|lower }}
server = {{ OPNsense.puppetagent.general.FQDN|default("") }}
logdest = /var/log/puppet-agent.log
+{% if OPNsense.puppetagent.general.RunInterval|default("") != "" %}
+runinterval = {{ OPNsense.puppetagent.general.RunInterval }}
+{% endif %}
+{% if OPNsense.puppetagent.general.RunTimeout|default("") != "" %}
+runtimeout = {{ OPNsense.puppetagent.general.RunTimeout}}
+{% endif %}
{% if helpers.exists('OPNsense.puppetagent.general') and not helpers.empty('OPNsense.puppetagent.general.Environment') %}
[agent]
environment = {{ OPNsense.puppetagent.general.Environment|default("") }}