Friday Fact: You can parameterize your Recurrence trigger using App Settings

  • Luis Rigueira
  • Feb 20, 2026
  • 4 min read

Ever needed to change a Logic App execution time from 11:30 to 14:00 and thought: Wait… do I really need to open Visual Studio, change the JSON, and/or run a full CI/CD pipeline just to adjust a clock?

Good news, now you don’t. 

By moving your Recurrence Trigger settings (Frequency, Interval, Hour, Minute, TimeZone) into Environment Variables (App Settings), you gain total operational control without touching a single line of code.

That means more flexibility, cleaner architecture, and zero unnecessary deployments, just smart configuration.  

Step-by-Step

The goal is straightforward: to allow us to change the frequency, hour, or day of a workflow execution directly through Environment Variables, without needing to edit the Logic App code or redeploy just to change a time slot.

Here is the step-by-step breakdown of the procedure: 

Configuring Environment Variables 

The first step was removing the fixed values from the Logic App and moving them into the Environment  Variables. For example:

  • RECURRENCE_MINUTE (e.g., 30)
  • RECURRENCE_FREQUENCY (e.g., “Week”)
  • RECURRENCE_INTERVAL (e.g., 1)
  • RECURRENCE_HOUR (e.g., 11)
Environment Variables 

As shown above, we created specific variables for each component of the schedule: Frequency, Interval, Hour, Minute, TimeZone, etc. This centralizes the configuration outside of the code flow. 

Implementation in Code View

To make the Logic App consume these variables, we had to modify the trigger’s Code View. This is where the most important technical detail of this procedure lies.

Recurrence code

Sample JSON Recurrence configuration:

"triggers": {
    "Recurrence": {
        "type": "Recurrence",
        "recurrence": {
            "frequency": "@appsetting('RECURRENCE_FREQ')",
            "interval": "@int(appsetting('RECURRENCE_INT'))",
            "schedule": {
                "hours": [
                    "@int(appsetting('RECURRENCE_HOURS'))"
                ],
                "minutes": [
                    "@int(appsetting('RECURRENCE_MINS'))"
                ]
            },
            "timeZone": "GMT Standard Time"
        }
    }
}

The Recurrence Trigger requires fields like “interval”, “hours”, and “minutes” to be integers. However, App Settings are read as strings by default.

Therefore, as seen in the image, we used the expression @int(appsetting(‘…’)). This function converts the environment variable value into a valid integer, ensuring the trigger doesn’t fail. For text fields (like “frequency”), we can call appsettings directly.

Validation in the Designer

After configuring the JSON code, the Logic App Designer visually reflects these changes.

appsettings in logic app

Instead of fixed numbers, the fields are now populated with dynamic parameters. This confirms that the Logic App is correctly fetching the definitions from the environment variables we configured in Step 1.

Expected Behavior

The final goal is to replicate the exact behavior of a manually configured trigger while retaining the flexibility of dependency injection.

Recurrence

At runtime, the behavior will be exactly like this standard configuration (in this example, Tuesdays and Wednesdays at 11:30). However, we now have the massive advantage that if we want to change it to 14:00, we simply update the RECURRENCE_HOUR variable in the portal, without touching a single line of code.

The Game-Changer

In the end, the Logic App behaves exactly the same as a manually configured trigger: the same schedule, the same reliability, the same results.

  • The difference? Total flexibility.
  • Need to change the hour? Update an Environment Variable.
  • Want to adjust the frequency? No problem.
  • Redeploy the Logic App? Not necessary.

Small architectural tweak, massive operational win.

And that’s how we turn a simple schedule into a smart, Friday-worthy upgrade.

Pro Tip: Centralizing these outside the workflow allows your Ops team to make adjustments without needing “Developer” level access to the code view.

To lazy to read? We’ve got you covered! Check out our video version of this content!

Hope you find this helpful! If you enjoyed the content or found it useful and wish to support our efforts to create more, you can contribute towards purchasing a Sauron’s Action Figure for Sandro’s son, yep, not for me! 

Author: Luis Rigueira

Luis Rigueira is a Enterprise Integration Consultant at DevScope

Leave a Reply

Your email address will not be published. Required fields are marked *

The Ultimate Cloud
Management Platform for Azure

Supercharge your Azure Cost Saving

Learn More
Turbo360 Widget

Back to Top