# How to Schedule Azure VMs: Step by Step

> How to Schedule Azure VMs. A practical walkthrough with ZopNight: read-only setup, production excluded by default, reversible at every step.

Source: https://zop.dev/learn/how-to/schedule-azure-vms
Published: 2026-07-01 · Author: avinash-gaurav · Tags: zopnight, how-to, learn

---

Step-by-step guide to scheduling Azure Virtual Machines for automatic start and deallocate. Reduce non-production Azure VM costs meaningfully.

This is the practical version, the one you can follow in a single sitting. It starts read-only, touches no production resource by default, and every step is reversible, so there is no point at which you are committed to something you cannot undo. Budget about 10 minutes. Before you start you will want: An Azure subscription with Virtual Machines; Azure AD permissions to create a service principal; A ZopNight account.

## The steps

1. Register ZopNight in Azure AD.
2. Discover Azure VMs.
3. Create deallocate/start schedules.
4. Assign VMs to schedules.
5. Verify and activate.

## Why this is safe to do today

The reason this is a low-stakes change is that nothing here is destructive. Scheduling stops and starts resources; it never deletes them, and your data persists across a stop exactly as it does across a normal reboot. Production is excluded by default, actions run in dependency order, and every state change is logged with what triggered it.

If you want the fuller context behind this task, the [FinOps](https://zop.dev/learn/finops) guide covers where it fits, and the [AWS EC2 scheduling](https://zop.dev/zopnight/aws/ec2) page shows the same loop applied to a specific resource.

## Getting started

Getting started is intentionally low-stakes:

- Connect your cloud provider with a read-only role. Nothing is scheduled or changed at this stage.
- Let ZopNight discover your non-production resources and review exactly what it found, filtered by account, region, and status.
- Create a schedule in your timezone and attach the non-production resources or groups you want it to cover.
- Watch the first cycle run, with Slack, Teams, or Google Chat notifications on every start, stop, and failure, then layer in idle cleanup and guided rightsizing.

Production stays excluded by default throughout, and because discovery and recommendations are read-only, you can prove the value before you enable a single action.

## Frequently asked questions

### What is the difference between stopping and deallocating an Azure VM?

Stopping an Azure VM keeps it allocated and you continue to pay for compute. Deallocating releases the compute resources and stops billing. ZopNight always deallocates to ensure you stop paying.

### Do I lose my public IP when deallocating?

If you use a dynamic public IP, it may change on restart. Use a static public IP to preserve your address across deallocate/start cycles. ZopNight flags VMs with dynamic IPs so you can address this before enabling scheduling.
