You can use the Test Management API's methods to manage maintenance windows. You can create both one-time and recurring maintenance windows through the Test Management API. You can also view maintenance windows created through this API or through the Portal.
It is important to understand that the interface for managing maintenance windows is declarative and allows you to replace a pre-existing state with a new one. It is up to you to decide what elements in the original state need to be included in the new one. This can be done for one monitor at a time or for a batch of monitors.
The recommended practice is to request the current collection of recurring or one-time maintenance windows for a monitor and then send a new
AddOrUpdateMaintenanceWindows request into the system with the same returned set of maintenance window(s) adjusted for your additions and/or deletions.