CINXE.COM
House Cleaning Services, Home Cleaning Services | Handy
<!DOCTYPE html> <html class='' ng-app='root'> <style>[ng-cloak], .ng-cloak { display: none !important; }</style> <head> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"TqoqDS4jpPIpiuAYhBzZWN12YaOo6+4YycIBNfjOCQacLjqL61qz/ii8q2cgtKCegJj2npknMO1GqAnKwE4pkQ==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{"zip":null,"service_name":"home_cleaning"},"pageInfo":{"bookingId":null,"conversionType":1,"serviceName":"Home Cleaning","serviceCategory":1,"serviceId":3,"recurringFrequency":"One-time","zipcode":null,"dateOfBooking":"2025-02-24","timeOfBooking":"13:00:00 -0500","dateAdded":null,"hourlyRate":null,"bookingHrs":0.0,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":1,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); </script> <title>House Cleaning Services, Home Cleaning Services | Handy</title> <meta charset='utf-8'> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"fee8387e35","applicationID":"16225130","transactionName":"IQwNRkoKXlVcSh5JEw0XBkEXC1dO","queueTime":0,"applicationTime":431,"agent":""}</script> <script type="text/javascript">(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={xpid:"VwMPUFNbGwIGVlNXBgIH",licenseKey:"fee8387e35",applicationID:"16225130"};;/*! For license information please see nr-loader-full-1.283.1.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>p,xN:()=>g});var n=r(3333);const i=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var o=r(2614),a=r(944),s=r(384),c=r(8122);const u="[data-nr-mask]",d=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:o.wk,inactiveMs:o.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){i(t)?e.mask_selector="".concat(t,",").concat(u):""===t||null===t?e.mask_selector=u:(0,a.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){i(t)?e.block_selector+=",".concat(t):""!==t&&(0,a.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,a.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},l={},f="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(f);if(!l[e])throw new Error("Configuration for ".concat(e," was never set"));return l[e]}function g(e,t){if(!e)throw new Error(f);l[e]=(0,c.a)(t,d());const r=(0,s.nY)(e);r&&(r.init=l[e])}function p(e,t){if(!e)throw new Error(f);var r=h(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.283.1",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>u,RI:()=>i,WN:()=>f,bv:()=>o,gm:()=>a,lR:()=>l,m:()=>c,mw:()=>s,sb:()=>d});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,u=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),d=u&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)g(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function g(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:g,addEventListener:g,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=p(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var g=v()[s[e]];g&&g.push([f,e,r,a]);return a},get:m,listeners:p,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function g(e,t){n[e]=p(e).concat(t)}function p(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9414:(e,t,r)=>{"use strict";r.d(t,{J:()=>c});var n=r(7836),i=r(2646),o=r(944),a=r(3434);const s=new Map;function c(e,t,r,c){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,o.R)(29);const u=function(e){return(e||n.ee).get("logger")}(e),d=(0,a.YM)(u),l=new i.y(n.P);l.level=c.level,l.customAttributes=c.customAttributes;const f=t[r]?.[a.Jt]||t[r];return s.set(f,l),d.inPlace(t,[r],"wrap-logger-",(()=>s.get(f))),u}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{A$:()=>o,ET:()=>a,TZ:()=>s,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o={OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},a="log",s=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(8154),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},8154:(e,t,r)=>{"use strict";r.d(t,{z_:()=>o,XG:()=>s,TZ:()=>n,rs:()=>i,xV:()=>a});r(6154),r(9566),r(384);const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},8969:(e,t,r)=>{"use strict";r.d(t,{j:()=>N});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(8154),h=r(384),g=r(6344);const p=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",g.G4.RECORD,g.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),R=r(3785),x=r(9414);function w(){const e=(0,h.pV)();p.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const E={};var A=r(9417),T=r(5603),_=r(5284);const S=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let O=!1;function N(e,t={},p,N){let{init:I,info:P,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=p;const H=(0,h.pV)();P||(I=H.init,P=H.info,j=H.loader_config),(0,A.xN)(e.agentIdentifier,I||{}),(0,T.a)(e.agentIdentifier,j||{}),P.jsAttributes??={},d.bv&&(P.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,P);const D=(0,A.D0)(e.agentIdentifier),L=[P.beacon,P.errorBeacon];O||(D.proxy.assets&&(S(D.proxy.assets),L.push(D.proxy.assets)),D.proxy.beacon&&L.push(D.proxy.beacon),w(),(0,h.US)("activatedFeatures",_.B),e.runSoftNavOverSpa&&=!0===D.soft_navigations.enabled&&D.feature_flags.includes("soft_nav")),C.denyList=[...D.ajax.deny_list||[],...D.ajax.block_internal?L:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const p={};var w=s.ee.get(e),A=w.get("tracer");E[e]=b.g.OFF,w.on(g.G4.REPLAY_RUNNING,(t=>{E[e]=t}));var T="api-",_=T+"ixn-";function S(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(T,n,!0,o||null===r?"session":void 0)(t,r)}function O(){}p.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),(0,R.R)(w,e,t,r)},p.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),(0,x.J)(w,e,t,{customAttributes:r,level:i})},m.forEach((e=>{p[e]=I(T,e,!0,"api")})),p.addPageAction=I(T,"addPageAction",!0,n.K7.genericEvents),p.recordCustomEvent=I(T,"recordCustomEvent",!0,n.K7.genericEvents),p.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(T,"setPageViewName",!0)()},p.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return S(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},p.setUserId=function(e){if("string"==typeof e||null===e)return S("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},p.setApplicationVersion=function(e){if("string"==typeof e||null===e)return S("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},p.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},p[g.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(g.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},p[g.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(g.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},p.interaction=function(e){return(new O).get("object"==typeof e?e:{})};const N=O.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,w),h||(0,a.p)(_+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,w),function(){if(A.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw A.emit("fn-err",[arguments,this,t],r),t}finally{A.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,w),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,w),r?void 0:this}}function P(){r.e(891).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{N[e]=I(_,e,void 0,h?n.K7.softNav:n.K7.spa)})),p.setCurrentRouteName=h?I(_,"routeName",void 0,n.K7.softNav):I(T,"routeName",!0,n.K7.spa),p.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,w),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!E[e]],void 0,n.K7.jserrors,w)},d.RI?(0,u.GG)((()=>P()),!0):P(),p}(e.agentIdentifier,N,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),O=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({95:"nr-full-compressor",222:"nr-full-recorder",891:"nr-full"}[e]+"-1.283.1.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.283.1.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={891:"sha512-lVqR3Dn6J8gNv/qx6uwv/BkHGfYTjmgUmpQ1g3KewUs/BAlEgDNEjtqisiOvM7gJNOH5b/lDr/gXrctX/6uhmg==",222:"sha512-r7JndTDmcqZc7soxM3YtJog64BIblVU4Ez8/mfluyz/KDQOnr3V1KGyop/fFGfRcLFLVYt0pv5PyUwCyC+FbVQ==",95:"sha512-kzPPmh2eRI84JbwNgf72DNQY/HX6glcZEu/X7P6FfEBXL9+sv1l63r5rK0u+QlS2I9OQrnLM5nmwqyfJCpNVHA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(g);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},g=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={85:0,959:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.283.1.PROD"]=self["webpackChunk:NRBA-1.283.1.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(8969);var l=i(1687),f=i(4234),h=i(5289),g=i(6154),p=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(891).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(891).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};g.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,p.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class R extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var x=i(384);var w=i(9908),E=i(2843),A=i(3878),T=i(782),_=i(1863);class S extends b{static featureName=T.T;constructor(e,t=!0){super(e,T.T,t),g.RI&&((0,E.u)((()=>(0,w.p)("docHidden",[(0,_.t)()],void 0,T.T,this.ee)),!0),(0,A.sp)("pagehide",(()=>(0,w.p)("winPagehide",[(0,_.t)()],void 0,T.T,this.ee))),this.importAggregator(e))}}var O=i(8154);class N extends b{static featureName=O.TZ;constructor(e,t=!0){super(e,O.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return D(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(D(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function H(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return D(e.error)?e.error:C(e)}function D(e){return e instanceof Error&&!!e.stack}class L extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,w.p)("ierr",[C(e),(0,_.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),g.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,w.p)("err",[k(e),(0,_.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",(e=>{this.abortHandler&&(0,w.p)("err",[H(e),(0,_.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,A.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var M=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,M.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,s=g.gm.Promise,c=g.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=g.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,A.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(p?p.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var p=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=g.gm.Request,ee=g.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&g.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(g.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,x.dV)().o.REQ,fe=(0,x.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,w.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};ge(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=x,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,A.jT)(!1)),g.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,A.jT)(!1))}function o(e){this.params={method:e[0]},ge(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,A.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,_.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function p(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:g.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),ge(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function R(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,_.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function x(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,_.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,w.p)(O.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",p),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",R)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function ge(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const pe={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!g.RI||pe[t.debugId]++||(pe[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:Re,d3:xe,Kp:we,TZ:Ee,Lc:Ae,uP:Te,Rz:_e}=be;class Se extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Te,(function(e,t){this.bstStart=(0,_.t)()})),this.eventsEE.on(Ae,(function(e,t){(0,w.p)("bst",[e[0],t,this.bstStart,(0,_.t)()],void 0,a.K7.sessionTrace,r)})),r.on(_e+xe,(function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash})),r.on(_e+we,(function(e){(0,w.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,w.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:Re,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var Oe=i(2614);class Ne extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(Oe.H3,"_").concat(Oe.uh)))}catch(e){}(0,p.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,w.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===Oe.g.FULL||e.sessionReplayMode===Oe.g.ERROR)||(0,p.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(891),i.e(222)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==Oe.g.FULL&&this.featAggregate.initializeRecording(Oe.g.FULL,!0):(this.#i=Oe.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==Oe.g.FULL&&(this.recorder.parent.mode=Oe.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3333);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){super(e,Ie.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(g.RI&&(e.init.user_actions.enabled&&(Ie.Zp.forEach((e=>(0,A.sp)(e,(e=>(0,w.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),Ie.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,w.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,A.sp)(e,t)}))),e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,w.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var je=i(993),Ce=i(3785),ke=i(9414);class He extends b{static featureName=je.TZ;constructor(e,t=!0){super(e,je.TZ,t);const r=this.ee;(0,ke.J)(r,g.gm.console,"log",{level:"info"}),(0,ke.J)(r,g.gm.console,"error",{level:"error"}),(0,ke.J)(r,g.gm.console,"warn",{level:"warn"}),(0,ke.J)(r,g.gm.console,"info",{level:"info"}),(0,ke.J)(r,g.gm.console,"debug",{level:"debug"}),(0,ke.J)(r,g.gm.console,"trace",{level:"trace"}),this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,Ce.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),g.gm?(this.features={},(0,x.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(R),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,x.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[R,S,Se,Ne,he,N,L,Pe,He],loaderType:"pro"})})()})();</script> <meta content='on' http-equiv='cleartype'> <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> <meta content='True' name='HandheldFriendly'> <meta content='yes' name='apple-mobile-web-app-capable'> <meta content='black' name='apple-mobile-web-app-status-bar-style'> <meta content='telephone=no' name='format-detection'> <meta content='summary' name='twitter:card'> <meta content='House Cleaning Services, Home Cleaning Services | Handy' name='twitter:title'> <meta content='Handy' name='author'> <meta content='Handy' name='og:site_name'> <meta content='@Handy' name='twitter:site'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='image' property='image'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='og:image' property='og:image'> <meta content='https://cache.hbfiles.com/assets/open-graph/og-image-1fc721c4787b73c5c13d04648df3c401e4cf5f45ff44ba93095d723e7e94c6be.jpg ' name='twitter:image' property='twitter:image'> <meta content='Need your home, house, or apartment cleaned? Handy will match you with a top-rated house cleaning service professional in NYC, SF, Boston, London, and more! Search and find house cleaning professionals online.' name='description' property='description'> <meta content='app-id=604419063' name='apple-itunes-app'> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-57x57.png" sizes="57x57" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-114x114.png" sizes="114x114" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-60x60.png" sizes="60x60" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-120x120.png" sizes="120x120" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-72x72.png" sizes="72x72" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-144x144.png" sizes="144x144" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-76x76.png" sizes="76x76" /> <link rel="apple-touch-icon" type="image/png" href="https://cache.hbfiles.com/favicons/apple-touch-icon-152x152.png" sizes="152x152" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-16x16.png" sizes="16x16" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-32x32.png" sizes="32x32" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-160x160.png" sizes="160x160" /> <link rel="icon" type="image/png" href="https://cache.hbfiles.com/favicons/favicon-196x196.png" sizes="196x196" /> <meta content='#2d89ef' name='msapplication-TileColor'> <meta content='/mstile-144x144.png' name='msapplication-TileImage'> <meta name="stripe-key" content="pk_live_S11YUr7x6AxvE7QHPTRhCUQY" /> <link href='https://www.handy.com/services/home-cleaning?page=2' rel='next'> <link href='https://www.handy.com/services/home-cleaning' rel='canonical'> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="4tjSb3eVuv6P4X0ifEi73VF/1DmBDI9cxO0fffI4BOVhIqD0OwGFj02jjzi2NQlbbuMMBa8TjZolzUhoKSo2Ew==" /> <script src="https://cache.hbfiles.com/assets/image_lazy_loader-4ef1ffee1d56418db43e2b3bb1de7168ed821065eb66e6911cb72c28921395b4.js"></script> <link rel="stylesheet" media="screen" href="https://cache.hbfiles.com/assets/font_manifest-df4b95e6619d4e537be4efe30d979f568f2a987b1f2176c9af8928064728ca53.css" /> <script type="text/javascript"> window.waitForGlobalLib = function(library, callback, count) { // Allow a string or array of strings to be passed in var lib = library; var remaining_lib_count = 0; if (lib instanceof Array) { lib = lib[0]; remaining_lib_count = library.length - 1; } if (count >= 10) { console.error("Library `" + lib + "` didn't load after 1 second"); } else if (window[lib]) { if (remaining_lib_count > 0) { // if there are libraries left, // continuing checking for them (immediately) setTimeout(waitForGlobalLib, 0, library.slice(1), callback, 0); } else { callback(); } } else { setTimeout(waitForGlobalLib, 100, library, callback, count ? count + 1 : 1); } }; </script> <script class="handy-analytics" id="handy-analytics--properties"> window.Handy = window.Handy || {}; (function setupHandyAnalytics(){ window.Handy.analytics = window.Handy.analytics || {"utm":{"handy_utm_source":null,"handy_utm_campaign":null,"handy_utm_coupon":null,"handy_utm_term":null,"handy_utm_medium":null,"handy_utm_content":null},"env":{"scully_fingerprint":["f61e014e-5439-4aec-b1d2-39ac89120a5e","936de6b5-bd9b-4c89-ad4d-c5d48742b09b","f02f2481-da6a-4612-b5cc-f3cd24c3d273","80179280-47c2-44b9-9b61-e76d576affaa","8262a1e2-4111-4016-97f6-b3379cf61f43","f76bb87a-24d8-4f46-84fe-e3f2cd131a26","ad30d738-4fee-4801-9852-8f37c732e2db","148a89d5-a2dd-4fde-ae5b-af77c162b066","9d39ed29-6db1-4512-8367-892b9167c51c","22f1e458-b0a0-459d-bed5-5c5fe7fa2c7e","9085bc5d-35ff-40a9-a7a8-37ff61c626d3","4a005674-3d4f-409a-88a9-d413af06e5fd","8a27e092-a629-4bc8-8c5a-5a74cd8041d0","022ae9ae-f5c5-40ef-bb5c-3dccfd6930ab","0b12fa2e-0a04-47b9-9150-edf9162bb68f","a48b4f5d-5bc2-473b-af88-25c2756d1008","20def8ec-aece-496e-80bc-8b608943c526","32faf179-c8fc-488f-a8d1-ff864e3be35e","72128813-e90f-45bf-8610-42980db57e90","0982159d-bc11-4173-b706-3123595ec604","b108499f-2e65-44e0-bb1d-fb8adfd675ef","30ecbfb0-ac32-4782-89c9-7aa751b9c540","3ef14d53-b7e4-408b-bb82-11106f2e12f4","78476689-4e12-4656-b509-f50e7c7190ee","34264c8c-942e-4051-b79f-bb3b67a4b9e9","8b1b9adb-5c3e-4fb1-a3d3-04a5db56a0d0","f39efb97-6942-4f29-ab22-19872ff8138c","7eb84b52-de6a-420f-ab00-739b72dcc716","281f397f-066f-4cca-8161-184db8a399e2","aee2200d-50e7-4cdb-b707-47bfea3e57fc","66d4b66b-ca20-4259-9fed-e0cd6856997c","65cf9460-893b-4155-bf93-a20ebb96167f","b5bbd335-1824-4e09-9810-2564222500c9","0d8c92ef-07bb-4bdb-9e78-698da974ba61","2db075b9-0c02-4e1e-9e81-2afaeeb4156b","bf779d91-45fa-44ed-98d7-05802e5c24b3","e975b5e5-c2d3-4991-a9d1-a399b27b1b37","1dcebcb7-550f-4c69-873e-57fc6734b2d3","0644d3ac-1eec-4513-9d16-7c41a61c41cf","37dffef4-caf2-47ec-a0b7-effc326b18aa","f7166369-537f-4cc5-8076-9fc369d1f33a"],"browser_uid":"TqoqDS4jpPIpiuAYhBzZWN12YaOo6+4YycIBNfjOCQacLjqL61qz/ii8q2cgtKCegJj2npknMO1GqAnKwE4pkQ==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{"zip":null,"service_name":"home_cleaning"},"pageInfo":{"bookingId":null,"conversionType":1,"serviceName":"Home Cleaning","serviceCategory":1,"serviceId":3,"recurringFrequency":"One-time","zipcode":null,"dateOfBooking":"2025-02-24","timeOfBooking":"13:00:00 -0500","dateAdded":null,"hourlyRate":null,"bookingHrs":0.0,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":1,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); </script> <script class="handy-analytics" id="handy-analytics--mixpanel"> (function(e,a){if(!a.__SV){var b=window;try{var c,l,i,j=b.location,g=j.hash;c=function(a,b){return(l=a.match(RegExp(b+"=([^&]*)")))?l[1]:null};g&&c(g,"state")&&(i=JSON.parse(decodeURIComponent(c(g,"state"))),"mpeditor"===i.action&&(b.sessionStorage.setItem("_mpcehash",g),history.replaceState(i.desiredHash||"",e.title,j.pathname+j.search)))}catch(m){}var k,h;window.mixpanel=a;a._i=[];a.init=function(b,c,f){function e(b,a){var c=a.split(".");2==c.length&&(b=b[c[0]],a=c[1]);b[a]=function(){b.push([a].concat(Array.prototype.slice.call(arguments, 0)))}}var d=a;"undefined"!==typeof f?d=a[f]=[]:f="mixpanel";d.people=d.people||[];d.toString=function(b){var a="mixpanel";"mixpanel"!==f&&(a+="."+f);b||(a+=" (stub)");return a};d.people.toString=function(){return d.toString(1)+".people (stub)"};k="disable time_event track track_pageview track_links track_forms register register_once alias unregister identify name_tag set_config reset people.set people.set_once people.increment people.append people.union people.track_charge people.clear_charges people.delete_user".split(" "); for(h=0;h<k.length;h++)e(d,k[h]);a._i.push([b,c,f])};a.__SV=1.2;b=e.createElement("script");b.type="text/javascript";b.async=!0;b.src="undefined"!==typeof MIXPANEL_CUSTOM_LIB_URL?MIXPANEL_CUSTOM_LIB_URL:"file:"===e.location.protocol&&"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js".match(/^\/\//)?"https://cdn.mxpnl.com/libs/mixpanel-2-latest.min.js":"//cdn.mxpnl.com/libs/mixpanel-2-latest.min.js";c=e.getElementsByTagName("script")[0];c.parentNode.insertBefore(b,c)}})(document,window.mixpanel||[]); mixpanel.init('864ccb52b900de546bb1bba717ab4fac'); mixpanel.init('285f70ac22992c5c5a2a0639a095aa59', {}, 'mp_v2'); </script> <script src="https://cache.hbfiles.com/assets/analytics-lib-67744239654dd45701c556d5ecdbe8ed42050829d29e3352f19a7403cb53a2ba.js"></script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type":"ListItem","position":"1","item":{"@id":"https://www.handy.com/","name":"Handy"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.handy.com/services","name":"Services"}},{"@type":"ListItem","position":"3","item":{"@id":"/services/home-cleaning","name":"Home Cleaning"}}] } </script> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"Product","brand":{"@type":"Organization","name":"Handy"},"name":"Handy Home Cleaning","image":"https://cache.hbfiles.com/assets/logos/handy-serp-logo-307d9676f3b4e2d0c76f6bb62bb996a8cd151db6bf3fdf618a6c4a3fba069ac5.png","aggregateRating":{"@type":"AggregateRating","ratingValue":"4.6","reviewCount":47401,"bestRating":5,"worstRating":0}} </script> <link rel="stylesheet" media="screen" href="https://cache.hbfiles.com/assets/main-site/components/when_for_build-fb944fad1a3fdab5b38c9208779c21d750551b1dbcfc8a5178b453e58d1d7577.css" digest="true" /> <link rel="stylesheet" media="screen" href="https://cache.hbfiles.com/assets/home_cleaning_when_for_build-4859046e01722889e43b47f497a6daf41bd0902e044e0341a19c27ad5a3de561.css" digest="true" /> <script src="https://cache.hbfiles.com/assets/accessibility-6ce81c161307e3641911a1964bb04a220f820a8a8e415ad48abcb26f6044cf9c.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/nav_dropdown-fc89864a75fb4c72b82d851a70571014fff2591705018c65edd6f9b20f821bea.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/newrelic_ignored_errors-83d3aadbead42c7e0d95d270341e67d0139ab49f22b7d4934596c9d1a7a3d98c.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js" crossorigin="anonymous" integrity="sha384-NXgwF8Kv9SSAr+jemKKcbvQsz+teULH/a5UNJvZc6kP47hZgl62M1vGnw6gHQhb1"></script> <script> window.jQuery || document.write("<script src='https://cache.hbfiles.com/jquery-3.7.0.min.js'><\/script>") </script> </head> <body class='when-to-build'> <!-- 6.1 --> <div class='nav-drawer'> <ul class='nav-list-first nav-border-bottom'> <li class='nav-link'><a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Login</a></li> <li class='nav-link'><a target="_blank" class="trackable help" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li class='nav-link'><a class="pro-apply-link trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Become a Professional</a></li> </ul> <ul class='nav-list nav-border-bottom'> <li class='nav-link'><div class='services-dropdown-menu'> <ul> <li> <a class="services-dropdown-link" href="">Book Services</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> <i class='mobile fa fa-angle-down'></i> </li> <div class='nav-link nav-border-bottom services-dropdown-content'> <li class='nav-link'><a href="/services/home-cleaning">Home Cleaning</a></li> <li class='nav-link'><a href="/services/furniture-assembly">Furniture Assembly</a></li> <li class='nav-link'><a href="/services/mount-tv">TV Mounting</a></li> <li class='nav-link'><a href="/services/painting">Interior Painting</a></li> <li class='nav-link'><a href="/services/hanging-pictures-shelves">Hanging Pictures & Shelves</a></li> <li class='nav-link'><a href="/services/moving-help">Moving Help</a></li> <li class='nav-link'><a href="/services/other-handyman-service">Handyman Service</a></li> <li class='nav-link'><a href="/services/other-smart-device">Smart Device Installation</a></li> <li class='nav-link'><a href="/services/maid-service">Maid Service</a></li> <li class='nav-link'><a href="/services/housekeeping">Housekeeping</a></li> <li class='nav-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">See All</a> </li> </div> </ul> </div> </li> </ul> <div class='about-dropdown-menu'> <ul class='nav-list'> <li class='nav-link'> <a class="about-dropdown-link" href="">About</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> <i class='mobile fa fa-angle-down'></i> </li> <div class='about-dropdown-content'> <li class='nav-link'><a href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li class='nav-link'><a href="/press">Press</a></li> <li class='nav-link'><a href="/retail">Retail Partnerships</a></li> <li class='nav-link'><a href="/blog">Blog</a></li> <li class='nav-link'><a href="/careers">Careers</a></li> <li class='nav-link'><a href="/help">Contact Us</a></li> </div> </ul> <div class='about-dropdown-content'> <ul class='nav-list nav-border-top'> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#cookies-policy">Cookies</a></li> <li class='nav-link'><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li class='nav-link'> <form class="" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="Dro7hPU9EUuc3pz+vyKS/rDh+Ksf7XNdLa2Ybdxr9RiNQEkfuakuOl6cbuR1XyB4j30glzHycZvMjc94B3nH7g==" autocomplete="off" /> <div class='select-wrapper footer-mobile-nav-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </div> </div> </div> <div class='nav-drawer with-drilldown'> <div class='mobile_menu'> <ul class='nav-list-first'> <li><a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Login</a></li> <li><a target="_blank" class="trackable help" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li><a class="pro-apply-link trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Become a Professional</a></li> <div class='nav__line'></div> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services'> All Services </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='#'> Services by Category </a> <ul> <li> <a href='#'> Cleaning </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_home_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_move_out_in_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_office_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deep_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <a href='#'> Installation </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_mount_tv' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_hanging_pictures_shelves' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_light_fixtures' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_ceiling_fan' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <a href='#'> Handyman </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_furniture_assembly' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_handyman_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_plumbing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_faucets_replacement' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_toilet_trouble' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_electrical' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_outlets' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_moving_help' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <a href='#'> Outdoor Projects </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_lawn_care_maintenance_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_gutter_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_removal' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_trimming' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_fence_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_and_porch_repair' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_repair_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_exterior_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_power_washing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <a href='#'> Home Renovations </a> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_bathroom_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_kitchen_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_basement_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_major_home_renovations' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_installing_wood_flooring' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_repair_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_6_windows_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_window_treatments' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </li> <div class='nav__line'></div> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='blog' data-mixpanel-event='nav_bar_cta' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> <li> <a class="about-dropdown-link" href="">About</a> <ul> <li><a href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li><a href="/press">Press</a></li> <li><a href="/retail">Retail Partnerships</a></li> <li><a href="/blog">Blog</a></li> <li><a href="/careers">Careers</a></li> <li><a href="/help">Contact Us</a></li> <div class='nav__line'></div> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li><a href="/cookies">Cookies</a></li> <li><a href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li> <form class="" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="3qIFXE338n4DvqeZeEDTQT1ZyDk/QpoPdcF3g4m5+8ldWHfHAWPND8H8VYOyPWHHAsUQBRFdmMmU4SCWUqvJPw==" autocomplete="off" /> <div class='select-wrapper footer-mobile-nav-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </li> </ul> </div> </div> <script> jQuery(function () { if (typeof $.fn.slinky === "undefined") { return } const slinkyConfig = { 'theme': 'slinky-theme-white' }; $('.mobile_menu').slinky(slinkyConfig); const backLinks = $('.slinky-menu .header'); backLinks.each(function () { const backTxt = $(this).parent().parent().find('a:first > span').text(); $('a', this).text(backTxt); }); }); </script> <div class='non-drawer-content'> <div class='non-drawer-content-overlay'></div> <div class='non-flash-banner-content'> <header class='site-header'> <div class='header-row ms-margin-left'> <div class='header-content-container'> <div class='header-logo'><a class="home-link" href="/"><svg viewBox="0 0 32 23" height="100%"><path d=" M22.472 6.592l-2.365 0.503v6.82l2.356-0.501c1.969-0.419 3.285-1.996 3.285-4.104-0-2.106-1.316-3.134-3.276-2.718zM24.229 9.633c0 1.367-0.819 2.147-1.822 2.36l-0.847 0.18-0-3.954 0.847-0.18c1.003-0.213 1.822 0.228 1.822 1.594zM14.59 8.268l-1.443 0.307 0 6.82 1.443-0.307v-4.329l2.819 3.73 1.444-0.307v-6.82l-1.444 0.307v4.33l-2.819-3.731zM6.252 13.445c0 2.106 1.316 3.135 3.276 2.718l2.365-0.503v-6.82l-2.356 0.501c-1.969 0.419-3.285 1.998-3.285 4.104zM9.593 10.764l0.847-0.181v3.954l-0.847 0.18c-1.003 0.213-1.822-0.228-1.822-1.594s0.819-2.146 1.822-2.359zM30.547 9.029c-0 0.904-0.483 1.459-1.238 1.62s-1.238-0.19-1.238-1.094v-4.153l-1.453 0.309v4.22c0 1.783 1.197 2.469 2.691 2.152 0.447-0.095 0.867-0.271 1.238-0.516 0 0 0 1.143 0 1.525v0c0 0.913-0.592 1.779-1.581 1.989l-28.965 6.157v1.519l29.378-6.244c1.64-0.349 2.621-1.784 2.621-3.297v-8.647l-1.453 0.309 0 4.153zM1.453 13.727c0-0.904 0.483-1.459 1.237-1.62s1.238 0.189 1.238 1.094v4.153l1.453-0.309v-4.22c0-1.782-1.197-2.469-2.691-2.151-0.447 0.096-0.867 0.271-1.237 0.516 0 0 0-1.145 0-1.526 0-0.913 0.592-1.778 1.581-1.989l28.965-6.157-0-1.519-29.378 6.245c-1.64 0.348-2.621 1.784-2.621 3.297v8.647l1.453-0.309v-4.153z " fill="#00cded"></path></svg> </a><div class='site-header-container'> <div class='nav-drawer-trigger right-bumper'><span class='menu-icon'></span></div> <ul class='nav-container'><li class='header-link'> <div class='dropdown services-menu menu'> <a class="trackable-mouseover-once" data-mixpanel-event="nav_bar_hover" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">All Services</a> <i class='desktop fa fa-angle-down fa-hover-show'></i> <i class='desktop fa fa-angle-up fa-hover-hidden'></i> </div> <div class='grid-container services-panel'> <div class='grid-x'> <div class='cell'> <ul class='services-columns four-columns'> <li> <span> Cleaning </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_home_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_move_out_in_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_office_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deep_cleaning' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <span> Installation </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_mount_tv' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_hanging_pictures_shelves' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_light_fixtures' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_ceiling_fan' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <span> Handyman </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_furniture_assembly' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_handyman_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_plumbing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_faucets_replacement' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_toilet_trouble' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_other_electrical' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_outlets' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_moving_help' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <span> Outdoor Projects </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_lawn_care_maintenance_service' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_gutter_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_removal' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_tree_trimming' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_fence_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_and_porch_repair' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_deck_repair_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_exterior_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_power_washing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/power-washing?redirect_source=nav_bar'> Exterior Surfaces </a> </li> </ul> </li> <li> <span> Home Renovations <span class='new-category'>NEW!</span> </span> <ul> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_bathroom_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_kitchen_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_basement_remodeling' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_major_home_renovations' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_installing_wood_flooring' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_repair_asphalt_shingle_roofing' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_6_windows_installation' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_painting' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/painting'> Interior Painting </a> </li> <li> <a class='trackable' data-mixpanel-event-context='nav_bar_monolith' data-mixpanel-event-source='services_install_window_treatments' data-mixpanel-event='nav_bar_cta' data-mixpanel-product-type='consumer' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </div> </div> <div class='grid-x button-row'> <div class='row all-services__button'> <a class='button primary trackable' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> See All Services </a> </div> </div> </div> <script> const servicesPanel = document.querySelector('.services-panel'); const servicesMenu = document.querySelector('.services-menu'); servicesPanel.addEventListener('mouseenter', function() { servicesMenu.classList.add('chevron-hack'); }); servicesPanel.addEventListener('mouseleave', function() { servicesMenu.classList.remove('chevron-hack'); }); </script></li><li class='header-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="blog" href="/blog">Blog</a></li></ul> <ul class='nav-container'><li class='header-link'> <a class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply">Become a Pro</a></li> <li class='header-link'><a target="_blank" class="trackable" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" data-qa="help-link" href="/help">Help</a></li> <li class='header-link'><a class="trackable right-bumper" data-mixpanel-event="nav_bar_cta" data-mixpanel-event-context="nav_bar_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="login" data-qa="login-link" href="/login">Log In</a></li></ul></div></div> </div> </div> </header> <div class='main-body-container'> <div class="analytics-event-post" style="display: none;" data-event-name="when page" data-event-properties="{"service":"home_cleaning","booking_zipcode":null,"selected_days_out":3}"></div> <div data-default-hours='3' id='default-hours'></div> <div class='row lazy-loading home_cleaning-quote-bg'></div> <div class='row quote-request-form central-when-form-container'> <div class='small-11 columns small-centered form-container xlarge-8'> <div class='row'> <div class='small-12 columns'> <div class='row'> <div class='small-12 columns'> <input type="hidden" name="phone_required" id="phone_required" value="false" autocomplete="off" /> <form class="simple_form new_quote_request" id="quote_when_form" name="when_form" action="/quotes" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="YzknrfExWbqaTmXOGSA/z81FGl67DooEZKdaA42Op6rgw1U2vaVmy1gMl9TTXY1J8tnCYpURiMKFhw0WVpyVXA==" autocomplete="off" /><input autocomplete="off" type="hidden" value="3" name="quote_request[service_id]" id="quote_request_service_id" /> <input value="1" autocomplete="off" type="hidden" name="quote_request[number_providers]" id="quote_request_number_providers" /> <input value="true" autocomplete="off" type="hidden" name="quote_request[home_cleaning]" id="quote_request_home_cleaning" /> <input as="hb_select" collection="3 hours 3.0 3.5 hours 3.5 4 hours 4.0 4.5 hours 4.5 5 hours 5.0 5.5 hours 5.5 6 hours 6.0 6.5 hours 6.5 7 hours 7.0 7.5 hours 7.5 8 hours 8.0 8.5 hours 8.5 9 hours 9.0 9.5 hours 9.5 10 hours 10.0" selected="selected" autocomplete="off" type="hidden" name="quote_request[base_hours]" id="quote_request_base_hours" /> <div data-hours='{"0":{"0":3.0,"1":3.0,"2":3.0,"3":3.5,"4":4.0,"5":4.5,"6":5.0,"7":5.0,"8":5.0,"9":5.0,"10":5.0},"1":{"0":3.0,"1":3.0,"2":3.5,"3":4.0,"4":4.5,"5":5.0,"6":5.0,"7":5.0,"8":5.0,"9":5.0,"10":5.0},"2":{"0":3.0,"1":3.5,"2":4.0,"3":4.5,"4":5.0,"5":5.5,"6":6.0,"7":6.5,"8":7.0,"9":7.5,"10":8.0},"3":{"0":3.5,"1":4.0,"2":4.5,"3":5.0,"4":5.5,"5":6.0,"6":4.0,"7":5.0,"8":5.0,"9":6.0,"10":6.0},"4":{"0":4.0,"1":4.5,"2":5.0,"3":5.5,"4":6.0,"5":6.5,"6":5.0,"7":6.0,"8":6.0,"9":7.0,"10":7.0},"5":{"0":4.5,"1":5.0,"2":5.5,"3":6.0,"4":6.5,"5":7.0,"6":7.0,"7":7.0,"8":8.0,"9":8.0,"10":9.0},"6":{"0":5.0,"1":6.0,"2":6.0,"3":6.0,"4":7.0,"5":7.0,"6":7.0,"7":8.0,"8":8.0,"9":9.0,"10":9.0},"7":{"0":6.0,"1":7.0,"2":7.0,"3":8.0,"4":8.0,"5":8.0,"6":9.0,"7":9.0,"8":9.0,"9":10.0,"10":10.0},"8":{"0":6.0,"1":7.0,"2":7.0,"3":8.0,"4":8.0,"5":9.0,"6":9.0,"7":10.0,"8":10.0,"9":10.0,"10":10.0},"9":{"0":7.0,"1":7.0,"2":8.0,"3":8.0,"4":9.0,"5":9.0,"6":9.0,"7":10.0,"8":10.0,"9":10.0,"10":10.0},"10":{"0":7.0,"1":8.0,"2":8.0,"3":9.0,"4":9.0,"5":9.0,"6":10.0,"7":10.0,"8":10.0,"9":10.0,"10":10.0}}' id='rooms_array'></div> <div class='row header'> <div class='small-12 columns'> <h1>House Cleaning</h1> </div> </div> <div class='row reviews'> <div class='small-12 columns text-center'> <span class='stars'> <div class='fa fa-star'></div> <div class='fa fa-star'></div> <div class='fa fa-star'></div> <div class='fa fa-star'></div> <div class='fa fa-star-half-empty'></div> </span> <a class="review_count" href="#customer-reviews">47,401 Reviews</a> </div> </div> <div class='row'> <div class='small-12 columns form-element xlarge-4'> <input class="string optional zipcode-field required when-font" maxlength="255" placeholder="ZIP Code" size="255" type="text" name="quote_request[zipcode]" id="quote_request_zipcode" /> </div> <div class='small-12 columns form-element xlarge-4'> <div class='row'> <div class='small-6 columns'> <div class='select-wrapper form-select-wrapper adjacent-right'> <select name="booking_params[answers[bedrooms]]" id="booking_params_answers_bedrooms" class="field-bedrooms"><option value="0">0 beds</option> <option selected="selected" value="1">1 beds</option> <option value="2">2 beds</option> <option value="3">3 beds</option> <option value="4">4 beds</option> <option value="5">5 beds</option> <option value="6">6 beds</option> <option value="7">7 beds</option> <option value="8">8 beds</option> <option value="9">9 beds</option> <option value="10">10 beds</option></select> </div> </div> <div class='small-6 columns'> <div class='select-wrapper form-select-wrapper adjacent-left'> <select name="booking_params[answers[bathrooms]]" id="booking_params_answers_bathrooms" class="field-bathrooms"><option value="0">0 baths</option> <option selected="selected" value="1">1 baths</option> <option value="2">2 baths</option> <option value="3">3 baths</option> <option value="4">4 baths</option> <option value="5">5 baths</option> <option value="6">6 baths</option> <option value="7">7 baths</option> <option value="8">8 baths</option> <option value="9">9 baths</option> <option value="10">10 baths</option></select> </div> </div> </div> </div> <div class='small-12 columns form-element xlarge-4'> <div class='row'> <div class='small-6 columns'> <input type="hidden" name="quote_request_date" id="quote_request_date" value="Mon, 24 Feb 2025 13:00:00 -0500" autocomplete="off" /> <div class='calendar-date-selector'> <input type="text" name="quote_request_date_calendar" id="quote_request_date_calendar" value="Mon Feb 24" class="pikaday when-font date-time-input adjacent-right" data-format="ddd MMM DD" /> </div> <div class='dropdown-date-selector'> <div class='select-wrapper when-font form-select-wrapper date-time-input adjacent-right'> <select name="quote_request_date_dropdown" id="quote_request_date_dropdown"><option value="Fri Feb 21">Fri Feb 21</option> <option value="Sat Feb 22">Sat Feb 22</option> <option value="Sun Feb 23">Sun Feb 23</option> <option selected="selected" value="Mon Feb 24">Mon Feb 24</option> <option value="Tue Feb 25">Tue Feb 25</option> <option value="Wed Feb 26">Wed Feb 26</option> <option value="Thu Feb 27">Thu Feb 27</option> <option value="Fri Feb 28">Fri Feb 28</option> <option value="Sat Mar 01">Sat Mar 01</option> <option value="Sun Mar 02">Sun Mar 02</option> <option value="Mon Mar 03">Mon Mar 03</option> <option value="Tue Mar 04">Tue Mar 04</option> <option value="Wed Mar 05">Wed Mar 05</option> <option value="Thu Mar 06">Thu Mar 06</option> <option value="Fri Mar 07">Fri Mar 07</option> <option value="Sat Mar 08">Sat Mar 08</option> <option value="Sun Mar 09">Sun Mar 09</option> <option value="Mon Mar 10">Mon Mar 10</option> <option value="Tue Mar 11">Tue Mar 11</option> <option value="Wed Mar 12">Wed Mar 12</option> <option value="Thu Mar 13">Thu Mar 13</option> <option value="Fri Mar 14">Fri Mar 14</option> <option value="Sat Mar 15">Sat Mar 15</option> <option value="Sun Mar 16">Sun Mar 16</option> <option value="Mon Mar 17">Mon Mar 17</option> <option value="Tue Mar 18">Tue Mar 18</option> <option value="Wed Mar 19">Wed Mar 19</option> <option value="Thu Mar 20">Thu Mar 20</option> <option value="Fri Mar 21">Fri Mar 21</option> <option value="Sat Mar 22">Sat Mar 22</option> <option value="Sun Mar 23">Sun Mar 23</option> <option value="Mon Mar 24">Mon Mar 24</option> <option value="Tue Mar 25">Tue Mar 25</option> <option value="Wed Mar 26">Wed Mar 26</option> <option value="Thu Mar 27">Thu Mar 27</option> <option value="Fri Mar 28">Fri Mar 28</option> <option value="Sat Mar 29">Sat Mar 29</option> <option value="Sun Mar 30">Sun Mar 30</option> <option value="Mon Mar 31">Mon Mar 31</option> <option value="Tue Apr 01">Tue Apr 01</option> <option value="Wed Apr 02">Wed Apr 02</option> <option value="Thu Apr 03">Thu Apr 03</option> <option value="Fri Apr 04">Fri Apr 04</option> <option value="Sat Apr 05">Sat Apr 05</option> <option value="Sun Apr 06">Sun Apr 06</option></select> </div> </div> </div> <div class='small-6 columns'> <div class='select-wrapper when-font form-select-wrapper date-time-input adjacent-left'> <select name="quote_request_start_time" id="quote_request_start_time"><option value="07:00">7:00 AM</option> <option value="07:30">7:30 AM</option> <option value="08:00">8:00 AM</option> <option value="08:30">8:30 AM</option> <option value="09:00">9:00 AM</option> <option value="09:30">9:30 AM</option> <option value="10:00">10:00 AM</option> <option value="10:30">10:30 AM</option> <option value="11:00">11:00 AM</option> <option value="11:30">11:30 AM</option> <option value="12:00">12:00 PM</option> <option value="12:30">12:30 PM</option> <option selected="selected" value="13:00">1:00 PM</option> <option value="13:30">1:30 PM</option> <option value="14:00">2:00 PM</option> <option value="14:30">2:30 PM</option> <option value="15:00">3:00 PM</option> <option value="15:30">3:30 PM</option> <option value="16:00">4:00 PM</option> <option value="16:30">4:30 PM</option> <option value="17:00">5:00 PM</option> <option value="17:30">5:30 PM</option> <option value="18:00">6:00 PM</option> <option value="18:30">6:30 PM</option> <option value="19:00">7:00 PM</option> <option value="19:30">7:30 PM</option> <option value="20:00">8:00 PM</option> <option value="20:30">8:30 PM</option> <option value="21:00">9:00 PM</option></select> <input value="2025-02-24 13:00:00" autocomplete="off" type="hidden" name="quote_request[date_start]" id="quote_request_date_start" /> <input type="hidden" name="display_date" id="display_date" value="2025-02-24 13:00:00 -0500" autocomplete="off" /> </div> </div> </div> </div> </div> <div class='row'> <input value="false" autocomplete="off" type="hidden" name="quote_request[date_changed]" id="quote_request_date_changed" /> <input value="false" autocomplete="off" type="hidden" name="quote_request[time_changed]" id="quote_request_time_changed" /> <div class='small-12 columns xlarge-5 xlarge-offset-1 form-element'> <input class="required when-font inspecletIgnore" placeholder="Email" type="email" name="quote_request[email]" id="quote_request_email" /> </div> <div class='small-12 columns xlarge-5 end form-element large-centered'> <button class='booking-continue-button btn-continue initial-height btn btn-primary' id='home_cleaning_when_submit' type='submit'>Get a Price</button> </div> </div> <div class='row'> <div class='small-10 small-centered columns xlarge-6 tiny hours-recommendation text-center'> For your home size, we recommend <u> <select name="quote_request[base_hours]" id="quote_request_base_hours"><option value="3.0">3 hours</option> <option value="3.5">3.5 hours</option> <option value="4.0">4 hours</option> <option value="4.5">4.5 hours</option> <option value="5.0">5 hours</option> <option value="5.5">5.5 hours</option> <option value="6.0">6 hours</option> <option value="6.5">6.5 hours</option> <option value="7.0">7 hours</option> <option value="7.5">7.5 hours</option> <option value="8.0">8 hours</option> <option value="8.5">8.5 hours</option> <option value="9.0">9 hours</option> <option value="9.5">9.5 hours</option> <option value="10.0">10 hours</option></select> </u> </div> </div> </form></div> </div> </div> </div> </div> </div> <div class='row disclaimer'> <div class='small-10 small-centered columns xlarge-6 form-text'> By clicking “Get a Price,” I agree to the <a href='/terms' target='_blank'>Handy Terms</a> and <a href='/privacy' target='_blank'>Privacy Policy</a>, and I agree that Handy may use automated technology and pre-recorded messages to deliver marketing calls and texts regarding pros for my project and future projects to the number I provided. I understand that consent is not a condition of service. </div> </div> <div class='row how-it-works'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='row section-header section-header-decorated'> <h2> <span>How Handy Works</span> </h2> </div> <div class='row how-it-works-items'> <div class='columns text-center end xlarge-4'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/setup_plan_icon-607fb02252b207230fcd46af97ebe387ea9b1abcd9a2388afee952c977df54ee.svg" class="lazy-loading " /> <h3>Set Up a Cleaning Plan</h3> <p>Choose a weekly, biweekly, or monthly cleaning plan. We schedule your recurring bookings to make things easy - but don’t worry, you can always reschedule if things change.</p> </div> <div class='columns text-center end xlarge-4'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/manage_online_icon-5bf2fc306e29670599471bdf284e9029f58d6e30a4e98befcde35429e3f882d7.svg" class="lazy-loading " /> <h3>Manage Everything Online</h3> <p>Rescheduling, contacting your professional, and tipping are just a tap away.</p> </div> <div class='columns text-center end xlarge-4'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/pro_female_icon-35e6db8dd02d646511d284eff179afb07f142deec4f2acef027d71a303826ba5.svg" class="lazy-loading " /> <h3>Sit Back and Relax</h3> <p>An experienced, fully-equipped housekeeping professional will be there on time.</p> </div> </div> </div> </div> <div class='most-trusted-name home_cleaning even-section'> <div class='columns small-centered xlarge-10 frame-container small-11'> <div class='row section-header centered small-11'> <div class='columns xlarge-11 end small-centered'> <h2>The Most Reliable Way to Book a House Cleaning</h2> <h4 class='section-sub-header'>Here's how it works -- just go to our website or app and tell us your zipcode and how big your house, apartment, or flat is. Handy will then connect you with a top-rated home cleaning professional to help take the stress out of your life.</h4> </div> </div> <div class='row most-trusted-name-items xlarge-10 small-11'> <div class='row'> <div class='most-trusted-name-item columns end service xlarge-5 small-11'> <div class='row'> <div class='small-1 columns xlarge-1'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/experienced_icon-0ca1448e41042bcf1afd30299cd4ffcb6c52fc30483754f2814ac9cdc2f1a165.svg" class="lazy-loading " /> </div> <div class='small-11 columns end xlarge-11'> <div class='pad-left'> <h4> Experienced </h4> </div> </div> <div class='description small-12 columns end xlarge-11 xlarge-offset-1'> Handy has been connecting people to professional house cleaning and other home services since 2012. In our short history, house cleaning professionals using the Handy platform have helped clean millions of homes and apartments in NYC, SF, Boston, Chicago, Los Angeles, London, and beyond. Handy is your one-stop shop for whenever you need professional house cleaning help. </div> </div> </div> <div class='most-trusted-name-item columns end service xlarge-5 small-11'> <div class='row'> <div class='small-1 columns xlarge-1'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/reliable_icon-b8d33554d6d09ec0d84fc4a7a2ba0dd7b851be77e0d9cc099bb9e41a66ab8dfd.svg" class="lazy-loading " /> </div> <div class='small-11 columns end xlarge-11'> <div class='pad-left'> <h4> Reliable </h4> </div> </div> <div class='description small-12 columns end xlarge-11 xlarge-offset-1'> When you schedule a cleaner or maid service through Handy to come to your home, you can rest assured knowing that someone will be at your home ready to go when you need it. They’ll help return your bedrooms, bathrooms, kitchen, living room, and more to the like-new condition that you remember from when you first moved in! </div> </div> </div> </div> <div class='row'> <div class='most-trusted-name-item columns end service xlarge-5 small-11'> <div class='row'> <div class='small-1 columns xlarge-1'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/convenient_icon-02020bda1ba8c0dd2019738ad77e9b43e471995de03a56c5e650e8e117ee2601.svg" class="lazy-loading " /> </div> <div class='small-11 columns end xlarge-11'> <div class='pad-left'> <h4> Convenient </h4> </div> </div> <div class='description small-12 columns end xlarge-11 xlarge-offset-1'> Late nights at work preventing you from keeping your apartment tidy? Too busy taking the kids to school, practices, and playdates to vacuum the floors? We know life can be crazy and unpredictable, and when you’re tired and overworked, the last thing anybody wants to do is clean their home. Whatever the reason you’re looking for home cleaning help, Handy has you covered. </div> </div> </div> <div class='most-trusted-name-item columns end service xlarge-5 small-11'> <div class='row'> <div class='small-1 columns xlarge-1'> <img src="" data-img-src="https://cache.hbfiles.com/assets/quotes/flexible_icon-626f3a07ccadbcb974eb0bdce3a0bdc28300919dffec754d8d0d60da0554a9f7.svg" class="lazy-loading " /> </div> <div class='small-11 columns end xlarge-11'> <div class='pad-left'> <h4> Flexible </h4> </div> </div> <div class='description small-12 columns end xlarge-11 xlarge-offset-1'> With Handy, it’s easy to schedule and reschedule bookings. Just open the Handy app and choose the date and time that works best for you. Or maybe your home needs an extra deep clean with some special attention - you can use the app to add extras to your booking, like laundry, inside the cabinets, inside the refrigerator, and more. </div> </div> </div> </div> </div> </div> </div> <div class='row why-handy'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='row section-header'> <h2>Why Book House Cleaning Services through Handy?</h2> <h4 class='section-sub-header'>If you’re in need of home cleaning, apartment cleaning, or a maid service, we’re simply the best, most convenient way to find a service referral. We know you want the a well-priced cleaning while still having the confidence that your cleaning will be thorough and professional. Handy connects you to cleaners who offer just that. And Handy helps schedule your recurring cleanings automatically for you, so you can focus on the other things in your life.</h4> </div> <div class='row'> <div class='small-12 columns text-left xlarge-10'> <div class='fa fa-check small-2 columns xlarge-1'></div> <div class='small-10 columns end xlarge-10'> <p> Vetted and <a href="/trust-and-safety" target="_blank">screened professionals</a>. </p> </div> </div> </div> <div class='row'> <div class='small-12 columns text-left xlarge-10'> <div class='fa fa-check small-2 columns xlarge-1'></div> <div class='small-10 columns end xlarge-10'> <p> Backed by the <a href="/handy-guarantee" target="_blank">Handy Happiness Guarantee</a>. </p> </div> </div> </div> <div class='row'> <div class='small-12 columns text-left xlarge-10'> <div class='fa fa-check small-2 columns xlarge-1'></div> <div class='small-10 columns end xlarge-10'> <p> Friendly 24/7 customer service </p> </div> </div> </div> <div class='row'> <div class='small-12 columns text-left xlarge-10'> <div class='fa fa-check small-2 columns xlarge-1'></div> <div class='small-10 columns end xlarge-10'> <p> Affordable, upfront pricing </p> </div> </div> </div> <div class='row get-started'> <div class='small-centered columns text-center button-container xlarge-3'> <button class='btn btn-primary back-to-top'>Get Started</button> </div> </div> </div> </div> <div class='even-section services-offered items-with-background-image clearfix home_cleaning'> <div class='small-11 columns small-centered xlarge-8'> <div class='row section-header centered'> <h2>What's Included in a House Cleaning?</h2> <h4 class='section-sub-header'>Here is what you can generally expect from a house cleaning booked through Handy. Download the app to share your specific cleaning details and instructions with your pro!</h4> </div> </div> <div class='columns item-with-background-image lazy-loading left' data-class='backgrounds-bedroom'> <div class='small-11 columns small-centered xlarge-6 frame-container xlarge-offset-4'> <h4>Bedroom, Living Room & Common Areas</h4> <div class='most-trusted'> <ul> <li>Dust all accessible surfaces</li> <li>Wipe down all mirrors and glass fixtures</li> <li>Clean all floor surfaces</li> <li>Take out garbage and recycling</li> </ul> </div> </div> </div> <div class='columns item-with-background-image lazy-loading right' data-class='backgrounds-bathroom'> <div class='small-11 columns small-centered xlarge-6 frame-container xlarge-offset-2'> <h4>Bathroom Cleaning</h4> <div class='most-trusted'> <ul> <li>Wash and sanitize the toilet, shower, tub and sink</li> <li>Dust all accessible surfaces</li> <li>Wipe down all mirrors and glass fixtures</li> <li>Clean all floor surfaces</li> <li>Take out garbage and recycling</li> </ul> </div> </div> </div> <div class='columns item-with-background-image lazy-loading left' data-class='backgrounds-kitchen'> <div class='small-11 columns small-centered xlarge-6 frame-container xlarge-offset-4'> <h4>Kitchen Cleaning</h4> <div class='most-trusted'> <ul> <li>Dust all accessible surfaces</li> <li>Empty sink and load up dishwasher with dirty dishes</li> <li>Wipe down exterior of stove, oven and fridge</li> <li>Clean all floor surfaces</li> <li>Take out garbage and recycling</li> </ul> </div> </div> </div> <div class='columns item-with-background-image lazy-loading right' data-class='backgrounds-extras'> <div class='small-11 columns small-centered xlarge-6 frame-container xlarge-offset-2'> <h4>Extras</h4> <p>For a deeper clean, consider adding one or more cleaning extras. Most cleaning extras add one half hour of time and cost to your booking.</p> <div class='most-trusted'> <ul> <li>Inside cabinets</li> <li>Inside fridge</li> <li>Inside oven</li> <li>Laundry wash & dry</li> <li>Interior windows</li> </ul> </div> </div> </div> </div> <div class='row faq home_cleaning'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='row section-header'> <h2>Frequently Asked Questions</h2> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_1' data-mixpanel-event='page_cta'> <p class='left'>What's included in a cleaning?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>See <a href='https://www.handy.com/cleaningchecklist' target='_blank'>what's generally included in a cleaning service</a>. Please share your specific requirements with your pro via the Handy app.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_2' data-mixpanel-event='page_cta'> <p class='left'>Which professional will come to my place?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'><ul><li>Handy has a vast network of experienced, top-rated cleaners. Based on the time and date of your request, one of these pros will fulfill your job.</li><li>Like working with a specific pro? Add them to your Pro Team from the mobile app and they'll be requested first for all future bookings.</li><li>You will receive an email with details about your professional prior to your appointment.</li></ul></div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_3' data-mixpanel-event='page_cta'> <p class='left'>Can I skip or reschedule bookings?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>You can reschedule any booking without penalty, so long as you do so at least 24 hours ahead of the scheduled start time.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_4' data-mixpanel-event='page_cta'> <p class='left'>How much are house cleaning services?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>This depends on the size of your house — enter how many bedrooms and bathrooms you have into the form above and get an instant quote. We’re confident you’ll find prices extremely reasonable given the high level of service you will receive from your pro.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_5' data-mixpanel-event='page_cta'> <p class='left'>Are house cleaning services worth it?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>Yes, it certainly is, assuming you’re the type of person who likes to come home to a beautiful and pristine home without having lifted a finger! If you’re a time-strapped professional working a 16-hour day, a busy mom or dad shuffling children between daycare and school and soccer practices, or just someone who simply has too much to do and far too little time to do it in, house cleaning can be at the bottom of your list. Nobody wants a messy home, and yet nobody really enjoys chores either – this is where Handy comes in.<br><br>We’ve got the solutions. You demand top quality house cleaning services, and Handy puts you in touch with the best house cleaners. Cost-wise, you’re looking at a service that’s affordable and great value for money. And let’s be honest -- a couple extra hours with the kids at the end of the day can be priceless.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_6' data-mixpanel-event='page_cta'> <p class='left'>How much do you tip a house cleaning service?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>Tipping is always appreciated by pros who go above and beyond. The entirety of the tip gets passed through to the pro — Handy doesn’t take any percentage. It’s a great way to show your appreciation for your pro and a job well done.<br><br>Further, we’ve found that pros are usually much more likely to pick up your jobs and flex their own schedules to meet yours when you’ve tipped them in the past! If your pro works hard or travels a long way to get to your house in bad weather, it’s a nice way to show your appreciation. Tipping can be done right through the app on your credit card, same as you paid for the booking.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_7' data-mixpanel-event='page_cta'> <p class='left'>Does house cleaning include laundry?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>If you have a washing machine and/or dryer in your home, your professional can absolutely wash and fold your laundry for you! But you need to add it as an extra during the checkout process so the professional can be sure to set aside enough time to clean your home and still have time for laundry (it will add an extra hour onto your booking).</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_8' data-mixpanel-event='page_cta'> <p class='left'>How long should a house cleaning take?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>It depends entirely on the size of your house! The minimum booking length is 3 hours, but you can always request a longer booking if you need one. Depending on the number of bedrooms and bathrooms you have, our checkout process will automatically scale your booking to the recommended amount of time for a home of your size.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_9' data-mixpanel-event='page_cta'> <p class='left'>What is your plan cancellation policy?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>Some cleaning plans require a minimum commitment term. Cancelling your plan before the minimum term is complete will result in a $99 fee. All plans continue after the minimum term is up until you cancel. <a href='https://help.handy.com/hc/en-us/articles/215562927-Cancel-my-cleaning-plan'>More information about how to cancel</a>.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_10' data-mixpanel-event='page_cta'> <p class='left'>If my cleaning plan has a minimum term, what happens when the minimum term ends?</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'>If your plan carries a minimum term of 3, 6, or 12 months, Handy will continue to automatically schedule bookings at your selected frequency (weekly, biweekly, or monthly) after your minimum term ends. You can cancel your plan at any time with no fee. However, fees do apply when bookings are cancelled or rescheduled within 24 hours (but more than 2 hours) of your next booking's start time.</div> </div> </div> <div class='row faq-question'> <div class='small-12 columns'> <div class='faq-question-text trackable' data-mixpanel-event-context='build_page' data-mixpanel-event-source='faq_11' data-mixpanel-event='page_cta'> <p class='left'>I need more help</p> <div class='right expander'>+</div> </div> <div class='faq-answer-text hidden'><a href='/help' target='_blank'>Need more help?</a></div> </div> </div> </div> </div> <div class='row get-started'> <div class='small-centered columns text-center button-container xlarge-3'> <button class='btn btn-primary back-to-top'>Get Started</button> </div> </div> <div class='even-section top-profs'> <div class='small-11 columns small-centered xlarge-8'> <div class='row section-header centered'> <h2>Meet Some of the Top Cleaning Pros on Handy</h2> <h4 class='section-sub-header'>Build a Pro Team so that you always have a great group of go-to professionals for all your home cleaning services.</h4> </div> <div class='row top-profs'> <div class='pro-card frame-container xlarge-4'> <div class='pro-details'> <div class='profile-avatar'> <img alt="Maurilda Das neves" data-img-src="https://handy-media.imgix.net/294ab717-b417-475a-aafa-f2dac63054c6?ixlib=rb-1.1.0&w=200&h=200&s=93d0ed27a60ada8d53bbd7f07879c95f" class="profile main-pro-image lazy-loading" src="" /> </div> <div class='profile-info'> <div class='name' data-provider-id='1035026'> Maurilda D. </div> <div class='ratings'> <div class='rating-stars-display flex-cols cross-centered' data-rating='4.516'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 51.6%'></div> </div> </div> </div> <div class='jobs'> <img class="lazy-loading left-badge left" src="" data-img-src="https://cache.hbfiles.com/assets/pro-search/badges/experience_icon-6ac31e8c7a1f3cce368641246a523c742664d207f4cee84f16815293a59c0c7d.png" /> <div class='jobs-desc left'> 351 jobs completed </div> </div> </div> </div> <div class='review flex-rows cross-centered flex-grow flex-parent'> <q class='flex-grow flex-child'>My name is Maurilda. I've been a home cleaner for 14 years in San Francisco and have experience with both large and small homes. I guarantee my job and have great references! </q> </div> </div> <div class='pro-card frame-container xlarge-4'> <div class='pro-details'> <div class='profile-avatar'> <img alt="Justin Rodriguez" data-img-src="https://handy-media.imgix.net/b3e3aed0-56a2-4e23-a20a-2da6108b509d?ixlib=rb-1.1.0&w=200&h=200&s=3be531a881b7d7020c6cabd8794f63ee" class="profile main-pro-image lazy-loading" src="" /> </div> <div class='profile-info'> <div class='name' data-provider-id='836086'> Justin R. </div> <div class='ratings'> <div class='rating-stars-display flex-cols cross-centered' data-rating='4.8275'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 82.74999999999997%'></div> </div> </div> </div> <div class='jobs'> <img class="lazy-loading left-badge left" src="" data-img-src="https://cache.hbfiles.com/assets/pro-search/badges/experience_icon-6ac31e8c7a1f3cce368641246a523c742664d207f4cee84f16815293a59c0c7d.png" /> <div class='jobs-desc left'> 1,678 jobs completed </div> </div> </div> </div> <div class='review flex-rows cross-centered flex-grow flex-parent'> <q class='flex-grow flex-child'>My name is Justin I've been home cleaning for as long as I can remember. Cleaning was a part of life, and now has become a passion, going above and beyond is a thing I like to do, and I do best.</q> </div> </div> <div class='pro-card frame-container xlarge-4 xlarge-only'> <div class='pro-details'> <div class='profile-avatar'> <img alt="Angelique Boles" data-img-src="https://handy-media.imgix.net/99a3c989-d118-4f37-a419-22b7a9a58c15?ixlib=rb-1.1.0&w=200&h=200&s=57a7fe2bfe2ae5d107a6f51bca2efb89" class="profile main-pro-image lazy-loading" src="" /> </div> <div class='profile-info'> <div class='name' data-provider-id='587092'> Angelique B. </div> <div class='ratings'> <div class='rating-stars-display flex-cols cross-centered' data-rating='4.7575'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 75.75000000000003%'></div> </div> </div> </div> <div class='jobs'> <img class="lazy-loading left-badge left" src="" data-img-src="https://cache.hbfiles.com/assets/pro-search/badges/experience_icon-6ac31e8c7a1f3cce368641246a523c742664d207f4cee84f16815293a59c0c7d.png" /> <div class='jobs-desc left'> 1,053 jobs completed </div> </div> </div> </div> <div class='review flex-rows cross-centered flex-grow flex-parent'> <q class='flex-grow flex-child'>Hello and welcome! I'm Angelique with Handy it's my pleasure to assist you in finding the best experience in home cleaning. I'm not only punctual but I have a fine eye for detail and order. It would be my pleasure to clean for you I've been with Handy since 2015 and cleaned approximately 625 homes across Streeterville, South Loop, and Lincoln Park, and counting. Again, welcome, and see you soon. </q> </div> </div> </div> </div> </div> <div class='row customer-reviews'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='row section-header small-centered'> <a id='customer-reviews'></a> <h2>Customer Reviews</h2> <h4 class='section-sub-header'>47,401 Reviews for Home Cleaning</h4> </div> <div class='row details customer-review'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Fuqiang Z. </div> <div class='region'> Dallas, TX </div> </div> <div class='columns end'> This was my first booking with Maria. We have 3 cats and Maria does a wonderful job of vacuuming all the pet hair off our living room couches and carpet. </div> </div> <div class='row details customer-review'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Amanda H. </div> <div class='region'> London: North, East, and Southeast, GB </div> </div> <div class='columns end'> Very good work. Thanks </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Christopher T. </div> <div class='region'> Washington, DC, DC </div> </div> <div class='columns end'> Debra did fantastically -- I had been away on business and forgotten to tidy apartment, but she cleaned it thoroughly nonetheless. Very, very impressed. </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Chris G. </div> <div class='region'> Portland, OR </div> </div> <div class='columns end'> Kelly gives great attention to all the surfaces in our home. She is mindful of the cats we have. She does small, extra things that we don’t even think to ask her to do. </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Samuel T. </div> <div class='region'> Seattle, WA </div> </div> <div class='columns end'> Thank you! The place looks good as new and my dad was in town visiting, so it meant a lot. </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Saman S. </div> <div class='region'> London: West and Northwest, GB </div> </div> <div class='columns end'> Excellent </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Dominique S. </div> <div class='region'> New York, NY </div> </div> <div class='columns end'> Esmeralda had my floors sparkling like the New Year’s Eve ball in Times Square! She’s a breath of fresh air for sure and she is always prompt and punctual. It goes a long way! </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Liz G. </div> <div class='region'> New York, NY </div> </div> <div class='columns end'> Swift, efficient, punctual, quiet, amazing </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='5'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> </div> <div class='provider'> Mary K. </div> <div class='region'> Orange County, CA </div> </div> <div class='columns end'> Nancy did an amazing job. Pleasant and very thorough. </div> </div> <div class='row details customer-review xlarge-only'> <div class='columns end customer-reviews-title'> <div class='rating-stars-display flex-cols cross-centered' data-rating='4'> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star'></div> </div> <div class='star'> <div class='fa fa-star fa-star-o star-under'></div> <div class='fa fa-star star-over' style='width: 100%'></div> </div> <div class='star'> <div class='fa fa-star-o'></div> </div> </div> <div class='provider'> Lesley H. </div> <div class='region'> Westchester, NY </div> </div> <div class='columns end'> Did a great job. We’d love to have you back!!! </div> </div> </div> </div> <nav aria-label='Pagination' id='pagination'> <div class='pagination-previous'> </div> <ul class='pagination'> <li class='current'>1</li> <li> <a aria-label='Page 1' href='https://www.handy.com/services/home-cleaning?page=2#customer-reviews'>2</a> </li> <li> <a aria-label='Page 1' href='https://www.handy.com/services/home-cleaning?page=3#customer-reviews'>3</a> </li> <li> <a aria-label='Page 1' href='https://www.handy.com/services/home-cleaning?page=4#customer-reviews'>4</a> </li> <li> <a aria-label='Page 1' href='https://www.handy.com/services/home-cleaning?page=5#customer-reviews'>5</a> </li> </ul> <div class='pagination-next'> <a aria-label='Next page' href='https://www.handy.com/services/home-cleaning?page=2#customer-reviews'> <i class='fa fa-chevron-right'></i> </a> </div> </nav> <div class='row get-started'> <div class='small-centered columns text-center button-container xlarge-3'> <button class='btn btn-primary back-to-top'>Get Started</button> </div> </div> <div class='sample-projects small-12 medium-10 large-8 columns end small-centered'> <div class='sample-projects__header row'> <h2>Recent Job Requests</h2> </div> <div class='sample-projects__container row'> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 20, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>97201</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>1</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>The trash shoot is located on a wall on the north end (Columbia St side) of the complex. Please be mindful of the drain in the bath tub, it chipped and try not to damage it further.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 19, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>90013</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>1</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>I am most concerned about cleaning my bathroom and kitchen. Particularly, my fridge, floors and bathroom mirror.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 17, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>M5R 2T2</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>2</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>I have a dog—she is friendly but gets too excited when people are over so I will either take her out for a long walk or keep her in a separate room.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>March 14, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>19363</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.5</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>0</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>0</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>Please clean the Second floor because the other pro will clean the first floor.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 18, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>28306</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>6.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>3</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>2</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>Hey, I’ve used you in the past you were awesome. It’s an Airbnb so wash and make the beds. The extra supplies like coffee, paper towels should be in the closet.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 20, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>55416</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>1</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>Trash goes out in the garage, the chutes are by the elevators. I still have two cats, and vacuuming all rooms would be a big bonus for me</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 17, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>02114</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>4.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>2</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>2</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>If parking in front of building isn't available, I'll reimburse you for parking in the garage # bedroom is a home office w/o bed</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 15, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>March 15, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>94014</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>1</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>I have a relatively new rug which is shedding a fair amount, but currently have no vacuum, so there is a fair amount to be done, there.</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 14, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>March 15, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>90026</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>2.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>1</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>1</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>Please bring a vacuum cleaner, we have one large rug to vacuum in the living room</div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="" data-img-src="https://cache.hbfiles.com/assets/cleaner_filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" class="lazy-loading " /></div> <div class='card__title'>Home Cleaning</div> <div class='card__fields row'> <div class='item column'> <div class='key'>Created At</div> <div class='value'>February 14, 2025</div> </div> <div class='item column'> <div class='key'>Date Start</div> <div class='value'>February 16, 2025</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Zipcode</div> <div class='value'>37064</div> </div> <div class='item column'> <div class='key'>Base Hours</div> <div class='value'>3.0</div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'>Bedrooms</div> <div class='value'>0</div> </div> <div class='item column'> <div class='key'>Bathrooms</div> <div class='value'>0</div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'>The customer only wants an experienced and season FEMALE cleaner- please bring steam mop and cleaning towels</div> </div> </div> </div> </div> </div> </div> <div class='even-section locations'> <div class='small-11 columns end small-centered xlarge-8'> <div class='row section-header'> <div class='xlarge-centered'> <h2 class='xlarge-centered'>Where Does Handy Operate?</h2> <h4 class='section-sub-header'>Handy operates in hundreds of cities around the United States, Canada and the U.K. No matter where you live, Handy has you covered.</h4> </div> </div> <div class='row'> <div class='frame-container lazy-loading' data-class='locations-bg'> <div class='xlarge-6 locations-list'> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/new-york">NYC</a> </div> </div> <div class='columns text-left end small-7 xlarge-7'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/los-angeles">Los Angeles</a> </div> </div> </div> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/san-francisco">SF</a> </div> </div> <div class='columns text-left end small-7 xlarge-7'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/houston">Houston</a> </div> </div> </div> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/boston">Boston</a> </div> </div> <div class='columns text-left end small-7 xlarge-7'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/london">London</a> </div> </div> </div> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/chicago">Chicago</a> </div> </div> <div class='columns text-left end small-7 xlarge-7'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/toronto">Toronto</a> </div> </div> </div> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/miami">Miami</a> </div> </div> <div class='columns text-left end small-7 xlarge-7'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/vancouver">Vancouver</a> </div> </div> </div> <div class='row'> <div class='columns text-left end small-5 xlarge-5'> <div class='fa fa-caret-right'> <a target="_blank" href="/services/home-cleaning/washington-dc">DC</a> </div> </div> <div class='columns text-left end xlarge-7 small-7'> <a target="_blank" href="/locations">and hundreds more!</a> </div> </div> </div> </div> </div> </div> </div> <div class='row why-handy'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='section-header'> <h2> Here's Why Handy is the Best Way to Book A House Cleaning </h2> </div> <div class='row'> <h4> <b> Instant online booking with 7am-11pm availability </b> </h4> <p>Book online instantly, and schedule your first cleaning for as early as tomorrow. Get your home cleaned anytime from 7am to 11pm, 7 days a week (subject to local pro availability).</p> </div> <div class='row'> <h4> <b> Friendly, vetted professionals </b> </h4> <p>All professionals on the Handy platform are screened, <a href='https://www.handy.com/trust-and-safety' target='_blank'>vetted professionals</a>, and are rated by customers like you to ensure quality.</p> </div> <div class='row'> <h4> <b> Cleaned the way you want </b> </h4> <p>Professionals bring supplies and work from your own custom instructions. You can work with the same cleaner every time. Handy strives to match you with the right professional for you and your home. We also provide you with a team of professionals to provide backup in case of scheduling conflicts.</p> </div> <div class='row'> <h4> <b> Flexible scheduling </b> </h4> <p>Set a schedule that fits your life. Handy helps you automatically schedule your weekly, biweekly, or monthly cleaning, so you can focus on the other things in your life. Reschedule or adjust the frequency of your cleanings as needed. Get the benefit of a regularly cleaned home. Easy and secure online payments. No more last minute runs to the bank. Pay online and tip at your discretion.</p> </div> <div class='row'> <h4> <b> See the progress of your cleaning from your phone </b> </h4> <p>Not able to be home during the cleaning? No problem. The Handy app allows you to see when your cleaner arrives and check the progress of their cleaning.</p> </div> <div class='row'> <h4> <b> The Handy Happiness Guarantee </b> </h4> <p>Your happiness is our goal. If you're not satisfied with the quality of the service, we'll <a href='https://www.handy.com/handy-guarantee' target='_blank'>send another pro</a> to make it right at no extra charge.</p> </div> <div class='row get-started'> <div class='small-centered columns text-center button-container xlarge-3'> <button class='btn btn-primary back-to-top'>Get Started</button> </div> </div> </div> </div> <div class='row'> <div class='small-10 columns small-centered xlarge-8'> <div class='line-break'></div> </div> </div> <div class='row big-block-of-text'> <div class='small-10 columns small-centered xlarge-8'> <h2>Make House Cleaning Your Affordable Luxury</h2> <p>Imagine a world without Handy. You’ve put in a 12 hour day at the office, your train is 30 minutes late, and by the time you finally walk into your apartment, there are dirty dishes stacked high in the sink, dirty clothes are strewn everywhere, your bed is unmade, the shower is starting to smell a bit like mildew, and the floors are covered with mud. A <a href="https://www.handy.com/services/maid-service">professional maid service</a> probably sounds pretty good right about now, doesn't it? The last thing in the world you want to do is pull on your yellow rubber gloves and begin scrubbing the floors and vacuuming the carpets. With Handy, you don’t have to. <br/><br/> There is no feeling quite like coming home from work and walking into a beautiful, fresh-smelling, clean home. Rather than clean the toilet, dust the shelves, and wipe down the countertops, you can instead unwind on the couch, curled up under a blanket, maybe pour yourself that glass of wine you’ve been thinking about, and start that new TV show everyone’s been talking about. A visit from a <a href="https://www.handy.com/services/housekeeping">housekeeping</a> service is one of the best gifts you can give yourself. Book a home cleaning with Handy today. </p> <h2>Fairly Priced and Convenient <a href="https://www.handy.com/services/cleaning-service">Cleaning Services</a></h2> <p>Price is important. Nobody likes it when they think they’re paying one price for a home cleaning service provider, and then they are informed that the price is actually going to be much higher. With Handy, we let you know up front what you’re going to pay. And with incredibly affordable hourly rates given at a discount to loyal customers who sign up for weekly, bi-weekly or monthly house cleaning services, we’re confident you’ll be satisfied. <br/><br/> Admit it, we’ve all been there. Your home cleaning or maid service is coming the next morning and you realize at 9 PM that you don’t have any cash to pay them. So you reluctantly put on your shoes, find your jacket, and drive to the nearest bank to take money out of the ATM. Handy is entirely cashless -- pay your cleaner in the app with a credit card, simple as that. We’ll even save it for next time. And if you’re so thrilled with how beautiful and clean your apartment looks and you want to tip your house cleaning pro something extra, you can do that with your credit card in the app as well.</p> <h2>Ensuring Your House Cleaner Does the Perfect Job</h2> <p>We know that when you book a <a href="https://www.handy.com/services/maid-service">maid service</a>, housekeeping service, or house cleaning service through Handy, you are allowing a stranger to enter your home. When you book a house cleaner through the Handy platform, you can rest assured that they’ve been vetted before they arrive at your door. You can give your professional additional instructions when filling out your cleaning preferences online. If you have particular allergies to detergents, for instance, or a special way of cleaning that you prefer, you can easily let your house cleaner know ahead of time. You can even prioritize the various home cleaning tasks that your professional will tackle in the order that you prefer, so you can make sure your biggest concerns will get extra love and attention.</p> </div> </div> <div class='row why-handy mount-tv'> <div class='small-10 columns xlarge-8 end small-centered'> <div class='row get-started'> <div class='small-centered columns text-center button-container xlarge-3'> <button class='btn btn-primary back-to-top'>Get Started</button> </div> </div> </div> </div> </div> <div class='breadcrumbs-menu flex-rows to-cols'> <div class='row'> <div class='medium-12 columns'> <span class='home'> <i class='fa fa-home'></i> </span> <span class='breadcrumbs-link'> <a href="/">Home</a> <i class='fa fa-angle-right'></i> <a href="/services">All Services</a> <i class='fa fa-angle-right'></i> Home Cleaning </span> </div> </div> </div> <footer class='site-footer'> <div class='row hide-for-small search-footer-content-row'> <nav class='small-5 columns'> <ul class='footer-link-menu top-footer-links'> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="happiness_guarantee" href="/handy-guarantee">The Handy Happiness Guarantee</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="about" href="/about">About</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="press" href="/press">Press</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="careers" href="/careers">Careers</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="blog" href="/blog">Blog</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" href="/help">Help</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="help" href="/help">Contact Us</a></li> <br> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="apply" href="/apply?utm_source=home_footer">Be a Professional</a></li> <li class=''><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="retail" href="/retail">Retail Partnerships</a></li> <li class='pad-top2 footer-appstore-icons'> <div class='row'> <div class='small-12 columns'> <a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="app" href="https://handy.app.link/app"><img src="" data-img-src="https://cache.hbfiles.com/assets/miscellaneous/app-store-badge-4a71a8c7f185bad9ad8653a3267dafec0a9a649da7d5764c582fec70b8dc9f45.svg" class="lazy-loading " /></a> <a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="app" href="https://handy.app.link/app"><img src="" data-img-src="https://cache.hbfiles.com/assets/miscellaneous/play-store-badge-49e311a794277c754af75084413fbc788682c55ad83b651c681c99d6197c6bc1.svg" class="lazy-loading " /></a> </div> </div> </li> </ul> </nav> <nav class='small-4 columns'> <p class='footer-header'>Locations</p> <ul class='footer-link-menu'> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_boston" href="/services/home-cleaning/boston">Boston</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_chicago" href="/services/home-cleaning/chicago">Chicago</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_london" href="/services/home-cleaning/london">London</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_los-angeles" href="/services/home-cleaning/los-angeles">Los Angeles</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_new-york" href="/services/home-cleaning/new-york">New York</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_san-francisco" href="/services/home-cleaning/san-francisco">San Francisco</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_toronto" href="/services/home-cleaning/toronto">Toronto</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations_vancouver" href="/services/home-cleaning/vancouver">Vancouver</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="locations" href="/locations">See all locations</a></li> <li class='header-link'> <form class="header-form-wrapper" id="locale-select-form" action="/locale_select" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="✓" autocomplete="off" /><input type="hidden" name="authenticity_token" value="vBsN5hsAX1SbLiDHue9A0kMUTnbLuwLLFhy50x4j2c8/4X99V5RgJVls0t1zkvJUfIiWSuWkAA33PO7GxTHrOQ==" autocomplete="off" /> <div class='select-wrapper header-select-wrapper'> <select name="locale" id="locale" class="locale-dropdown" onchange="this.form.submit()"><option selected="selected" value="en-US">United States</option> <option value="en-CA">Canada</option> <option value="en-GB">United Kingdom</option></select> </div> </form> </li> </ul> </nav> <nav class='small-3 columns'> <p class='footer-header'>Popular Services</p> <ul class='footer-link-menu'> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_home_cleaning" href="/services/home-cleaning">Cleaning</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_handyman_service" href="/services/other-handyman-service">Handyman</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_plumbing" href="/services/other-plumbing">Plumbing</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_other_electrical" href="/services/other-electrical">Electrical</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_moving_help" href="/services/moving-help">Moving Help</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_painting" href="/services/painting">Painting</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services_furniture_assembly" href="/services/furniture-assembly">Furniture Assembly</a></li> <li><a class="trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="services" href="/services">See all services</a></li> </ul> </nav> </div> <div class='row hide-for-small search-footer-content-row'> <div class='footer-social-icon-row columns'> <a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="twitter" href="https://twitter.com/handy"><i class='fa lazy-loading' data-class='fa-twitter'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="facebook" href="https://facebook.com/handyhq"><i class='fa lazy-loading' data-class='fa-facebook'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="instagram" href="http://instagram.com/handy_hq"><i class='fa lazy-loading' data-class='fa-instagram'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="wikipedia" href="https://en.wikipedia.org/wiki/Handy_(company)"><i class='fa lazy-loading' data-class='fa-wikipedia-w'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="linkedin" href="https://www.linkedin.com/company/handyhq"><i class='fa lazy-loading' data-class='fa-linkedin'></i> </a><a class="icon-link" target="_blank" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="crunchbase" href="https://crunchbase.com/organization/handybook"><i class='fa lazy-loading' data-class='fa-cb'></i> </a></div> <div class='small-12 columns'> <div class='footer-divider'></div> </div> </div> <div class='row search-footer-content-row'> <div class='row footer-interlinks'> <div class='column headline'>Other Handy Services</div> <div class='column medium-5'> <ul> <li> <a href="https://www.handy.com/services/cleaning-service/new-york">cleaning near new york</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/chicago">cleaning service in chicago</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/new-york">cleaning services in nyc</a> </li> </ul> </div> <div class='column medium-4'> <ul> <li> <a href="https://www.handy.com/services/office-cleaning/near-me">commercial cleaning near me</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning">home cleaning</a> </li> <li> <a href="https://www.handy.com/services/housekeeping">housekeeping</a> </li> </ul> </div> <div class='column medium-3'> <ul> <li> <a href="https://www.handy.com/services/apartment-cleaning/new-york">nyc apartment cleaning service</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/new-york">nyc cleaning services</a> </li> <li> <a href="https://www.handy.com/services/affordable-maids">affordable maid</a> </li> </ul> </div> </div> <div class='small-12 columns'> <div class='footer-divider'></div> </div> </div> <div class='row pad-top lower-footer search-footer-content-row'> <div class='small-12 medium-8 columns footer-term-links'> <ul class='footer-secondary-links'> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="contact" href="/help">Contact</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="privacy" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">Privacy</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="privacy" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-privacy-policy">CA Pre-Collection Notice</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cookies" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#do-not-sell-or-share-my-personal-information">Do Not Sell or Share My Personal Information</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cookies" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#cookies-policy">Cookies</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="terms" href="https://vault.pactsafe.io/s/f2c54d1f-373d-4a51-b961-d1bea6d73ec5/handy-legal-center#us-terms-of-use">Terms</a></li> <li><a class="smaller trackable" data-mixpanel-event="footer_cta" data-mixpanel-event-context="footer_monolith" data-mixpanel-product-type="consumer" data-mixpanel-event-source="cancellation_policy" href="https://help.handy.com/handysupport/s/article/What-s-the-cancellation-policy--How-Handy-Works">Cancellation Policy</a></li> </ul> </div> <div class='small-12 medium-4 columns footer-copyright-text'> <div class='attribution-wrapper'> <span> 2025 Handy. All rights reserved. </span> <strong> Handy powered by Angi </strong> </div> </div> </div> <!-- BEGIN TRACERS --> <!-- handy_request_trace_id=e1d2800a0f6c557e4edf54bc43ee9559 --> <!-- handy_user_trace_id=Csok82e4l5IVWgAHILl/Ag== --> <!-- END TRACERS --> </footer> </div> </div> <script src="https://cache.hbfiles.com/assets/vendor/built-8f695339a51840c6b18455b0b02afe88e4d355e73f60ad4719021a17817342fc.js"></script> <script> // https://developers.google.com/tag-manager/devguide#datalayer window.dataLayer = window.dataLayer || [window.Handy.analytics]; </script> <style>.async-hide { opacity: 0 !important} </style> <script class="handy-analytics" id="handy-analytics--gtm_tag"> (function(w,d,s,l,i) { w[l] = w[l] || []; w[l].push({'gtm.start': new Date().getTime(), event:'gtm.js'}); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j,f); })(window, document, 'script', 'dataLayer', 'GTM-5JWM6VD'); </script> <script> function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); </script> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JWM6VD" height="0" width="0" style="display:none;visibility:hidden"></iframe> </noscript> <script class="handy-analytics" id="handy-analytics--bright_tag"> window.pageData = {"navigation":{"pageName":"quotes_new","pageCategory":"quotes_new","pageId":null},"pageInfo":{"conversionType":1,"serviceName":"Home Cleaning","serviceCategory":1,"serviceId":3,"bookingId":null,"recurringFrequency":"One-time","zipcode":null,"dateOfBooking":"2025-02-24","timeOfBooking":"13:00:00 -0500","dateAdded":null,"hourlyRate":null,"bookingHrs":0.0,"discount":null,"commisionableAmount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":1,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false,"uid":null,"experimentInfo":{"direct_mail_campaign":{"variant":"control"}}},"partnerInfo":{"nanPid":null}}; (function() { var btjs = document.createElement('script'), s = document.getElementsByTagName('script')[0]; btjs.async = true; btjs.src = '//s.btstatic.com/tag.js#site=FT5eU6D&referrer=' + encodeURIComponent(document.location.href) + ''; s.parentNode.insertBefore(btjs, s); }()); </script> <noscript> <iframe src="//s.thebrighttag.com/iframe?c=FT5eU6D" width="1" height="1" frameborder="0" scrolling="no" marginheight="0" marginwidth="0"></iframe> </noscript> <script class="handy-analytics" id="handy-analytics--customerio"> var _cio = _cio || []; (function() { var a,b,c;a=function(f){return function(){_cio.push([f]. concat(Array.prototype.slice.call(arguments,0)))}};b=["identify","track"];for(c=0;c<b.length;c++){_cio[b[c]]=a(b[c])}; var t = document.createElement('script'), s = document.getElementsByTagName('script')[0]; t.async = true; t.id = 'cio-tracker'; t.setAttribute('data-site-id', 'f7df926230324fc46acf'); t.src = 'https://assets.customer.io/assets/track.js'; s.parentNode.insertBefore(t, s); })(); </script> <script class="handy-analytics" id="handy-analytics--fb_sdk"> window.fbAsyncInit = function() { FB.init({ appId : '381615805205781', xfbml : true, version : 'v2.6' }); }; (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); </script> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1500856566877282'); fbq('track', 'PageView'); </script> <noscript> <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1500856566877282&ev=PageView&noscript=1"/> </noscript> <!-- End Facebook Pixel Code --> <script class="handy-analytics" id="handy-analytics--ga"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-31442860-1']); _gaq.push(['_setSiteSpeedSampleRate', 50]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <script class="handy-analytics" id="handy-analytics--ga_conversion"> /* <![CDATA[ */ var google_conversion_id = 1002781891; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_label = "QNwtCI2nggMQw_mU3gM"; var google_conversion_value = 0; /* ]]> */ </script> <script src="https://www.googleadservices.com/pagead/conversion.js"></script> <noscript> <div style="display: inline; position: absolute; top: 0px; border-style: none;"> <img src="https://www.googleadservices.com/pagead/conversion/1002781891/?value=0&label=QNwtCI2nggMQw_mU3gM&guid=ON&script=0" height="1" width="1" style="display: inline; position: absolute; top: 0px; border-style: none;" alt="" /> </div> </noscript> <script class="handy-analytics-events" id="handy-analytics--events--mixpanel"> document.addEventListener('DOMContentLoaded', function(){ window.Handy = window.Handy || {}; if (typeof Handy.track === "function") { Handy.track("quote_page_shown", {"event_context":"booking_funnel","view":"quotes_new","product_type":"consumer","email":null,"session_id":"93f2771df2b9319f","session_event_count":1}, 2); } if (typeof Handy.trackLink === "function") { } if (typeof Handy.trackVisibleElement === "function") { Handy.trackVisibleElement("#quote_request_zipcode", "zip_shown", {"event_context":"booking_funnel","view":"quotes_new","url_source":"https://www.handy.com/services/home-cleaning","product_type":"consumer","native_session_uid":null,"from_native":false,"is_cms_page":false,"session_id":"93f2771df2b9319f","session_event_count":2}, 2); Handy.trackVisibleElement("#quote_request_date", "scheduler_shown", {"event_context":"booking_funnel","view":"quotes_new","product_type":"consumer","session_id":"93f2771df2b9319f","session_event_count":3}, 2); Handy.trackVisibleElement("#booking_params_notes", "comments_shown", {"event_context":"booking_funnel","view":"quotes_new","product_type":"consumer","session_id":"93f2771df2b9319f","session_event_count":4}, 2); } }); </script> <script src="https://cache.hbfiles.com/assets/home_cleaning_when_for_build-5d7ed784340a2471933c1a08b31f1a805ac2088d0eb7ab33c13b0e55155f14c5.js" defer="defer"></script> <script src="https://cache.hbfiles.com/assets/when_for_build-d40dd4d8f39022040ca7cf2b3c164570cd346f469f2a6a0cd6a56c811be06159.js" defer="defer"></script> </body> </html>