Welcome to the community @Andrew_Chukwu!
Your application should be able to handle transient changes in cluster availability using a replication set connection with Retryable Writes and appropriate Read Preferences. If your application doesn’t cope well, you could post more information including your driver & version, a snippet of code that reproduces the issue, and the error message or behaviour observed.
Scheduled maintenance and relevant cluster configuration changes are performed with round-robin restarts, however you cannot influence the schedule for free and shared tier clusters (M0, M2, and M5).
If you have a dedicated Atlas cluster (M10+) you can Set Preferred Cluster Maintenance Start Times in your project settings and also Test Failover to confirm your application correctly handles failover.
Regards,
Stennie