title: Terraform azurerm schedule start_time always resets on new deploys
body: <p>I am trying to get the resource <code>azurerm_automation_schedule</code> to deploy at a specific time <code>(ex: 18:00)</code> occurring monthly. </p>
  
  <p>I'm using the following code:</p>
  
  <pre><code>locals {
    update_time = "18:00"
    update_date = formatdate("YYYY-MM-DD", timeadd(timestamp(), "24h"))
    update_timezone = "UTC"
  }
  
  resource "azurerm_automation_schedule" "main" {
    name                    = "test"
    resource_group_name     = "myresourcegroupname"
    automation_account_name = "myautomationaccountname"
    frequency               = "Month"
    timezone                = local.update_timezone
    start_time              = "${local.update_date}T${local.update_time}:00+02:00"
    description             = "This is an example schedule"
    monthly_occurrence {
      day = "Tuesday"
      occurrence = "1"
    }
  }
  </code></pre>
  
  <p>The <code>"${local.update_date}T${local.update_time}:00+02:00"</code> adds 2 hours to the current time and sets the day forward 1. This is required to ensure the schedule starts in the future.</p>
  
  <p>This works fine, except the next time I come back to run a deploy, it detects a new change due to the date changing, even if no real changes have occurred.
  The start_time will always tick forward.</p>
  
  <p>I can't seem to find any terraform logic that can assist.
  Is there a way to set a static start time in a variable, and only have it updated if it changes? (not the date).</p>
  
  <p>The psuedocode would be:</p>
  
  <pre><code>if [update_time] has not changed, do not update [azurerm_automation_schedule]
  else update [azurerm_automation_schedule] with the new time, incrementing the day forward
  </code></pre>
  
  <p><strong>Update</strong></p>
  
  <p>My final working code (BONUS: With windows update scheduler which is a pain to get working!)</p>
  
  <pre><code>//== Provider used to store timestamp for updates ==//
  provider "time" {
    version = "~&gt; 0.4"
  }
  
  //== Store 1 day in the future, only update if [local.update_time] is altered ==//
  resource "time_offset" "next_day" {
    offset_days = 1
    triggers = {
      update_time = local.update_time
    }
  }
  
  locals {
    update_time = "19:40"
    update_date = substr(time_offset.next_day.rfc3339, 0, 10)
    update_timezone = "UTC"
    update_max_hours = "4"
    update_classifications = "Critical, Security, UpdateRollup, ServicePack, Definition, Updates"
    update_reboot_settings = "IfRequired"
    update_day = "Tuesday"
    update_occurrence = "2"
  }
  
  #This type should eventually replace the manual deploy via azurerm: azurerm_automation_softwareUpdateConfigurations
  #https://github.com/terraform-providers/terraform-provider-azurerm/issues/2812
  resource "azurerm_template_deployment" "windows" {
    name                = "windows-update"
    resource_group_name = module.stack.azurerm_resource_group.name
  
    template_body = &lt;&lt;DEPLOY
    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
      "contentVersion": "1.0.0.0",
      "resources": [
        {
            "apiVersion": "2017-05-15-preview",
            "type": "Microsoft.Automation/automationAccounts/softwareUpdateConfigurations",
            "name": "${module.stack.azurerm_automation_account.name}/windows-updates",
            "properties": {
                "updateConfiguration": {
                    "operatingSystem": "Windows",
                    "duration": "PT${local.update_max_hours}H",
                    "windows": {
                        "excludedKbNumbers": [
                        ],
                        "includedUpdateClassifications": "${local.update_classifications}",
                        "rebootSetting": "${local.update_reboot_settings}"
                    },
                    "azureVirtualMachines": [
                        "${module.server_1.azurerm_virtual_machine.id}",
                        "${module.server_2.azurerm_virtual_machine.id}"
                    ],
                    "nonAzureComputerNames": [
                    ]
                },
                "scheduleInfo": {
                    "frequency": "Month",
                    "startTime": "${local.update_date}T${local.update_time}:00",
                    "timeZone":  "${local.update_timezone}",
                    "interval": 1,
                    "advancedSchedule": {
                        "monthlyOccurrences": [
                            {
                              "occurrence": "${local.update_occurrence}",
                              "day": "${local.update_day}"
                            }
                        ]
                    }
                }
            }
        }
      ]
    }
    DEPLOY
  
    deployment_mode = "Incremental"
  }
  </code></pre>