Q. Is there anything built in to Azure to automatically shutdown VMs at a certain time?

A. There are numerous solutions to automatically shutdown VMs:

  • Use an Azure Automation to shutdown whatever VMs are required and create a schedule to call the automation
  • Run a PowerShell script to scan for when VMs where shutdown by users (but still provisioned on the fabric and then shut them down (to stop paying) as I created at http://windowsitpro.com/azure/deprovision-vms-are-stopped-azure-after-20-minutes
  • Utilize the DevTestLabs schedule resource that will shutdown VMs at certain times with a configurable notification which is configured via JSON, e.g.:
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "",
  "parameters": {
    "vmName": {
      "type": "string"
  "variables": {
    "policyName": "[concat('shutdown-computevm-', parameters('vmName'))]",
    "vmResourceId": "[resourceId('Microsoft.Compute/virtualMachines', parameters('vmName'))]"
  "resources": [
      "apiVersion": "2016-05-15",
      "type": "Microsoft.DevTestLab/schedules",
      "name": "[variables('policyName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "timeZoneId":"Central Standard Time",
  "outputs": {