Time zones and SchedulerScheduled jobs interact with the system time and time zones in multiple ways. This KB explains how the scheduler uses different parameters to execute jobs and calculate the next run time of these jobs. The KB talks about the following: Run Type: Defines which job run types are affected by timezone and daylight savings. Next Action: Defines how the next action field on sys_trigger is calculated using different parameters. Job execution Timezone: Defines how the job context can be configured. Glide Properties: Defines the important glide properties that can affect the timezone wrt schedulers. Run Type The run_type field is defined on the sysauto table. The following "run_types" are NOT affected by time zones or daylight savings. PERIODICALLY: This executes the job at a fixed interval based on the "Repeat Interval" and the "Starting" field values. Eg: If "Repeat Interval" is set to 2 hours for a job starting on 2024-05-01 00:00:00., then the job will run after every 2 hours regardless of day light savings or time zone. ONCE: This is a run once job and gets deleted after the job is executed the first time.ON DEMAND: Executed only on demand. STARTUP: Jobs are executed only at node startup. The following "run_types" are affected by time zones and daylight savings. DAILYWEEKLYMONTHLYBUSINESS_CALENDAR STARTBUSINESS_CALENDAR END Job Next Action The "Next Action" field on the sys_trigger table is used to determine the time at which the job should execute. For recurring run_type jobs the scheduler calculates the next_action field using the following parameters. Time(run_time): Used to determine the time the job is expected to run if NO Time Zone is defined.Time(entered_time): This specifies the time the job is expected to run if a time zone is selected. The actual "run_time" is calculated from this field using a Business Rule.Time Zone: Used to determine the Time zone in which the job is to run. If the time zone is "floating(Use System Time Zone)" the job uses the system's time zone. (Refer to the GlideProperties section below for more details.)If the time zone has a value, the job "Run Time" is calculated using the "Entered Time" field. On the scheduled job form, only one field between "run_time" and "entered_time" is shown depending on the "Timezone" field. If the "Timezone" field is not set, then "run_time" is displayed on the form. If the "Timezone" is set to any value, the "entered_time" is displayed on the form. Job Execution Timezone These fields define the context in which the job get executed. Run As: Determines the user which will run the job.Run as Tz: Determines the time zone in which the job will run. If both "Run As" and "Run as TZ" fields are set, the time zone defined in "Run as TZ" is used to set the job context. If both "Run As" and "Run as Tz" is set, "Run As Tz" will override the "Run As" timezone. NOTE: These field values DO NOT have any effect on the "next_action" or the "scheduling" of the job. They are simply used to set the context of the job runtime. NOTE: There is a known error regarding how "Run As" user timezone affects the next_action time. Please see KB0993431. When user creating the scheduled job is in a time zone that follows daylight time, and the "Run as" user is in a time zone without daylight time, one hour may get added to the next action when the job runs. Please see Example 3 below. Example 1: "Time zone" is set to EST and both "Entered Time and "Run Time" are displayed on the form. Note: the form is modified to show both run_time and entered_time for this example. Default behavior is only one of the field is shown at a time. Expected behavior: The job will execute in EST time zone at 8pm and follow all daylight saving changes. For a user looking at the sys_trigger record from a PST timezone the next action will be shown as "2024-07-10 17:00:00" (ie 20:00:00 EST) The job output will log the PST time. Assuming job executes exactly on 2024-07-10 20:00:00 (EST), the job output will be "Time is 2024-07-10 17:00:00" Example 2: "Timezone" is set to EST and both "Entered Time" and "Run Time" are displayed on the form."Run as" is set to System Administrator"Run As Tz" is set to JAPAN Expected behavior: The job will execute in EST timezone at 8pm and follow all daylight saving related changes. For a user looking at the sys_trigger record from a PST timezone the next action will be shown as "2024-07-10 17:00:00" (ie 20:00:00 EST) The job output will log JAPAN time. Assuming job executes exactly on 2024-07-10 20:00:00 (EST), the job output will be "Time is 2024-07-11 09:00:00" (Japan) Example 3 (PRB1509517): "Timezone" is set to None and both "Entered Time" and "Run Time" are displayed on the form."Run time" is set to 16:00:00 and trigger is set to daily. (i.e the job should run at 16:00:00 every day) "Run As" is set to Abel Tuter. The TimeZone for Abel Tuter is set to "GMT" (which does not follow Daylight savings)Also displayed the sys_trigger record for the same job with next action. Expected behavior: The job will execute initially at 16:00:00 PST (as set in the run_time). However the first time the job executes, the next_action will be set to 17:00:00 instead of 16:00:00. Notice in second image(sys_trigger record), the Run time is set to 16:00:00, but the next_Action is set to 17:00:00. This is the known defect documented in KB0993431. Root Cause: The timezone of the "Run As" user does not follow Daylight Savings, but the system timezone follows daylight savings. Workaround/Solution: Set the "Timezone" value to execute the job in a specific timezone. "Run As" user is intended only to be used in the job execution context. TZ Glide Properties These GlideProperties define the System time zone: glide.sys.default.tz: The "system" user uses this value to execute jobs. The jobs that run as the "system" user (i.e empty "run as" ) will consider this as the system time zone.If the "Timezone" field is set to floating, the jobs will run in the time zone defined in this property.If no value is set, the system uses the "US/Pacific" timezone. glide.sys.internal.tz: Default value is UTCThis defines the timezone used by GlideDateTime. Changing the value for this property will change the "next action" timezone as well. Related Links Creating a Scheduled JobKB0782227: Use of Run as TZKNOW ERROR (PRB1509517): KB0993431