1. A method for scheduling a virtual desktop, comprising: determining a schedule, the schedule comprising a shutdown time and a startup time; at the shutdown time: saving user data for a first virtual desktop instance for the virtual desktop; shutting down the first virtual desktop instance; and at the startup time: starting up a second virtual desktop instance for the virtual desktop with the saved user data, wherein the shutdown and startup times for the virtual desktop are determined by a usage pattern of the virtual desktop, wherein the usage pattern is an application usage pattern; determining a schedule comprising a first predetermined time and a second predetermined time; at the first predetermined time, reducing computing resources for the second virtual desktop instance; at the second predetermined time, increasing computing resources for the second virtual desktop instance; and crediting a user for the reduced computing resources used by the second virtual desktop instance at the first predetermined time, wherein the credit reflects a difference between the reduced computing resources utilization and a resource threshold for the user, and wherein the credit is used to increase computing resources at the second predetermined time; wherein the first and second predetermined times are determined by the application usage pattern, wherein the application usage pattern is for a specific type of application running within the second virtual desktop instance.