CINXE.COM
Window Treatments Installation | Curtains and Blinds | Handy
<!DOCTYPE html> <html class='no-js' data-request-country='US' dir='ltr' lang='en'> <head> <link rel="shortcut icon" type="image/x-icon" href="https://cache-landingpages.services.handy.com/assets/favicon-465fb4e7d7152f5abb6b2ecf7330aefa8a067f174110dcd80324b56aeedfea59.ico" /> <meta charset='utf-8'> <script>window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"fee8387e35","applicationID":"153245944","transactionName":"IQwNRkoKXlVcSh5KAwQKDVdKHB1JWF9US0kRCwxF","queueTime":0,"applicationTime":234,"agent":""}</script> <script>(window.NREUM||(NREUM={})).init={ajax:{deny_list:["bam.nr-data.net"]}};(window.NREUM||(NREUM={})).loader_config={licenseKey:"fee8387e35",applicationID:"153245944"};;/*! For license information please see nr-loader-rum-1.281.0.min.js.LICENSE.txt */ (()=>{var e,t,r={122:(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)}}},555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(122);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])}},217:(e,t,r)=>{"use strict";r.d(t,{D0:()=>h,gD:()=>b,xN:()=>v});r(860).K7.genericEvents;const n="experimental.marks",i="experimental.measures",o="experimental.resources";var a=r(993);const s=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var c=r(614),u=r(944),l=r(384),d=r(122);const f="[data-nr-mask]",g=()=>{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,level:a.p_.INFO},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)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(i)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o)||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:c.wk,inactiveMs:c.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){s(t)?e.mask_selector="".concat(t,",").concat(f):""===t||null===t?e.mask_selector=f:(0,u.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){s(t)?e.block_selector+=",".concat(t):""!==t&&(0,u.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,u.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"]}}},p={},m="All configuration objects require an agent identifier!";function h(e){if(!e)throw new Error(m);if(!p[e])throw new Error("Configuration for ".concat(e," was never set"));return p[e]}function v(e,t){if(!e)throw new Error(m);p[e]=(0,d.a)(t,g());const r=(0,l.nY)(e);r&&(r.init=p[e])}function b(e,t){if(!e)throw new Error(m);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}},371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>d});var n=r(122),i=r(384),o=r(154),a=r(324);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},l={};function d(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!l[e])throw new Error("Runtime for ".concat(e," was never set"));return l[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");l[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(l[e],"harvestCount")||Object.defineProperty(l[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=l[e])}},324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,xv:()=>n});const n="1.281.0",i="PROD",o="CDN"},154:(e,t,r)=>{"use strict";r.d(t,{OF:()=>c,RI:()=>i,WN:()=>l,bv:()=>o,gm:()=>a,mw:()=>s,sb:()=>u});var n=r(863);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=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=c&&"undefined"==typeof SharedWorker,l=((()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);Array.isArray(e)&&e.length>=2&&e[1]})(),Date.now()-(0,n.t)())},687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>d,x3:()=>u});var n=r(836),i=r(606),o=r(860),a=r(646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};l(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),g(e,t,!1),s[e].size&&f(e))}function l(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function d(e="",t="feature",r=!1){if(l(e),!e||!s[e].get(t)||r)return g(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),g(e,t)})))}function g(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)p(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 p(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)}}))}},836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(990),o=r(371),a=r(646),s=r(607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},l={},d=!1;try{d=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,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=g(n),c=m(e),l=c.length,d=0;d<l;d++)c[d].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:h,listeners:m,context:g,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:d?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:d};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function g(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=m(e).concat(t)}function m(e){return n[e]||[]}function h(t){return l[t]=l[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),l=(0,n.Zm)();l.ee||(l.ee=u)},646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(836).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))}},606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(908);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])}},878:(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})},607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(566).bz)()},566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,bz:()=>a});var n=r(154);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("")}},614:(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}},863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},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})},284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(836),i=r(154);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})))}},990:(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}},389:(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})},289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(878);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:()=>l,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>d});var n=r(154),i=r(863);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 l(e,t){a()[e]=t}function d(){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()}},843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(878);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)}},434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(836),i=r(607);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];l(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return l(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,l,d;try{a=this,o=[...arguments],l="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],l],e)}i(r+"start",[o,a,s],l,c);try{return d=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],l,c),e}finally{i(r+"end",[o,a,d],l,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 l(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log";n.K7.logging},969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},630:(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},344:(e,t,r)=>{"use strict";r.d(t,{G4:()=>i});var n=r(614);r(860).K7.sessionReplay;const i={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"};n.g.ERROR,n.g.FULL,n.g.OFF},234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(836),i=r(687);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)}}},603:(e,t,r)=>{"use strict";r.d(t,{j:()=>K});var n=r(860),i=r(555),o=r(371),a=r(908),s=r(836),c=r(687),u=r(289),l=r(154),d=r(944),f=r(969),g=r(384),p=r(344);const m=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],h=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(863),b=r(614),y=r(993);var w=r(646),A=r(434);const R=new Map;function _(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,d.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,A.YM)(i),a=new w.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[A.Jt]||t[r];return R.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>R.get(c))),i}function E(){const e=(0,g.pV)();m.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,d.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const x={};function N(e,t,g=!1){t||(0,c.Ak)(e,"api");const m={};var w=s.ee.get(e),A=w.get("tracer");x[e]=b.g.OFF,w.on(p.G4.REPLAY_RUNNING,(t=>{x[e]=t}));var R="api-",E=R+"ixn-";function N(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}}),j(R,n,!0,o||null===r?"session":void 0)(t,r)}function k(){}m.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,w),function(e,t,r={},i=y.p_.INFO){(0,a.p)(f.xV,["API/logging/".concat(i.toLowerCase(),"/called")],void 0,n.K7.metrics,e),(0,a.p)(y.ET,[(0,v.t)(),t,r,i],void 0,n.K7.logging,e)}(w,e,t,r)},m.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,w),_(w,e,t,{customAttributes:r,level:i})},h.forEach((e=>{m[e]=j(R,e,!0,"api")})),m.addPageAction=j(R,"addPageAction",!0,n.K7.genericEvents),m.recordCustomEvent=j(R,"recordCustomEvent",!0,n.K7.genericEvents),m.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,j(R,"setPageViewName",!0)()},m.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,d.R)(40,typeof t)}else(0,d.R)(39,typeof e)},m.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,d.R)(41,typeof e)},m.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,d.R)(42,typeof e)},m.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,w),w.emit("manual-start-all")}catch(e){(0,d.R)(23,e)}},m[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,w)},m[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,w),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,w)},m.interaction=function(e){return(new k).get("object"==typeof e?e:{})};const T=k.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),g||(0,a.p)(E+"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 j(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 I(){r.e(296).then(r.bind(r,778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,d.R)(27,e),w.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{T[e]=j(E,e,void 0,g?n.K7.softNav:n.K7.spa)})),m.setCurrentRouteName=g?j(E,"routeName",void 0,n.K7.softNav):j(R,"routeName",!0,n.K7.spa),m.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,!!x[e]],void 0,n.K7.jserrors,w)},l.RI?(0,u.GG)((()=>I()),!0):I(),m}var k=r(217),T=r(122);const j={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},I={};var S=r(284);const O=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function K(e,t={},r,n){let{init:a,info:c,loader_config:u,runtime:d={},exposed:f=!0}=t;d.loaderType=r;const p=(0,g.pV)();c||(a=p.init,c=p.info,u=p.loader_config),(0,k.xN)(e.agentIdentifier,a||{}),function(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");I[e]=(0,T.a)(t,j);const r=(0,g.nY)(e);r&&(r.loader_config=I[e])}(e.agentIdentifier,u||{}),c.jsAttributes??={},l.bv&&(c.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,c);const m=(0,k.D0)(e.agentIdentifier),h=[c.beacon,c.errorBeacon];P||(m.proxy.assets&&(O(m.proxy.assets),h.push(m.proxy.assets)),m.proxy.beacon&&h.push(m.proxy.beacon),E(),(0,g.US)("activatedFeatures",S.B),e.runSoftNavOverSpa&&=!0===m.soft_navigations.enabled&&m.feature_flags.includes("soft_nav")),d.denyList=[...m.ajax.deny_list||[],...m.ajax.block_internal?h:[]],d.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,d),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=N(e.agentIdentifier,n,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=f),P=!0}},374:(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=>"nr-rum-1.281.0.min.js",i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.281.0.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"),l=0;l<u.length;l++){var d=u[l];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+o){s=d;break}}if(!s){c=!0;var f={296:"sha512-zqOtfbjYsGTkQScey1O8Hh9fA1+m2RFxLpfv7BWqqTivgQ6iM13v6QJ4d5xykyDwx1GoMFmngC4SKpFn6VciYg=="};(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 g=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(g.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=g.bind(null,s.onerror),s.onload=g.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={374:0,840: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.281.0.PROD"]=self["webpackChunk:NRBA-1.281.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(374);var e=i(944),t=i(344),r=i(566);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(217);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 l=i(603);var d=i(687),f=i(234),g=i(289),p=i(154),m=i(384);const h=e=>p.RI&&!0===(0,s.gD)(e,"privacy.cookies_enabled");function v(e){return!!(0,m.dV)().o.MO&&h(e)&&!0===(0,s.gD)(e,"session_trace.enabled")}var b=i(389);class y 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,d.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,b.J)((()=>{(0,d.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(h(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(296).then(i.bind(i,861));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,d.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(296).then(i.bind(i,103)),{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,d.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,g.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return v(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var w=i(630);class A extends y{static featureName=w.T;constructor(e,t=!0){super(e,w.T,t),this.importAggregator(e)}}var R=i(908),_=i(843),E=i(878),x=i(782),N=i(863);class k extends y{static featureName=x.T;constructor(e,t=!0){super(e,x.T,t),p.RI&&((0,_.u)((()=>(0,R.p)("docHidden",[(0,N.t)()],void 0,x.T,this.ee)),!0),(0,E.sp)("pagehide",(()=>(0,R.p)("winPagehide",[(0,N.t)()],void 0,x.T,this.ee))),this.importAggregator(e))}}var T=i(969);class j extends y{static featureName=T.TZ;constructor(e,t=!0){super(e,T.TZ,t),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,m.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(A),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,l.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,m.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:[A,k,j],loaderType:"lite"})})()})();</script> <meta content='width=device-width, initial-scale=1, maximum-scale=1' name='viewport'> <title>Window Treatments Installation | Curtains and Blinds | Handy</title> <script type="text/javascript"> window.NREUM||(NREUM={}),__nr_require=function(t,n,e){function r(e){if(!n[e]){var o=n[e]={exports:{}};t[e][0].call(o.exports,function(n){var o=t[e][1][n];return r(o||n)},o,o.exports)}return n[e].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<e.length;o++)r(e[o]);return r}({1:[function(t,n,e){function r(t){try{s.console&&console.log(t)}catch(n){}}var o,i=t("ee"),a=t(15),s={};try{o=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(s.console=!0,o.indexOf("dev")!==-1&&(s.dev=!0),o.indexOf("nr_dev")!==-1&&(s.nrDev=!0))}catch(c){}s.nrDev&&i.on("internal-error",function(t){r(t.stack)}),s.dev&&i.on("fn-err",function(t,n,e){r(e.stack)}),s.dev&&(r("NR AGENT IN DEVELOPMENT MODE"),r("flags: "+a(s,function(t,n){return t}).join(", ")))},{}],2:[function(t,n,e){function r(t,n,e,r,s){try{p?p-=1:o(s||new UncaughtException(t,n,e),!0)}catch(f){try{i("ierr",[f,c.now(),!0])}catch(d){}}return"function"==typeof u&&u.apply(this,a(arguments))}function UncaughtException(t,n,e){this.message=t||"Uncaught error with no additional information",this.sourceURL=n,this.line=e}function o(t,n){var e=n?null:c.now();i("err",[t,e])}var i=t("handle"),a=t(16),s=t("ee"),c=t("loader"),f=t("gos"),u=window.onerror,d=!1,l="nr@seenError",p=0;c.features.err=!0,t(1),window.onerror=r;try{throw new Error}catch(h){"stack"in h&&(t(8),t(7),"addEventListener"in window&&t(5),c.xhrWrappable&&t(9),d=!0)}s.on("fn-start",function(t,n,e){d&&(p+=1)}),s.on("fn-err",function(t,n,e){d&&!e[l]&&(f(e,l,function(){return!0}),this.thrown=!0,o(e))}),s.on("fn-end",function(){d&&!this.thrown&&p>0&&(p-=1)}),s.on("internal-error",function(t){i("ierr",[t,c.now(),!0])})},{}],3:[function(t,n,e){t("loader").features.ins=!0},{}],4:[function(t,n,e){function r(t){}if(window.performance&&window.performance.timing&&window.performance.getEntriesByType){var o=t("ee"),i=t("handle"),a=t(8),s=t(7),c="learResourceTimings",f="addEventListener",u="resourcetimingbufferfull",d="bstResource",l="resource",p="-start",h="-end",m="fn"+p,w="fn"+h,v="bstTimer",y="pushState",g=t("loader");g.features.stn=!0,t(6);var b=NREUM.o.EV;o.on(m,function(t,n){var e=t[0];e instanceof b&&(this.bstStart=g.now())}),o.on(w,function(t,n){var e=t[0];e instanceof b&&i("bst",[e,n,this.bstStart,g.now()])}),a.on(m,function(t,n,e){this.bstStart=g.now(),this.bstType=e}),a.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),this.bstType])}),s.on(m,function(){this.bstStart=g.now()}),s.on(w,function(t,n){i(v,[n,this.bstStart,g.now(),"requestAnimationFrame"])}),o.on(y+p,function(t){this.time=g.now(),this.startPath=location.pathname+location.hash}),o.on(y+h,function(t){i("bstHist",[location.pathname+location.hash,this.startPath,this.time])}),f in window.performance&&(window.performance["c"+c]?window.performance[f](u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["c"+c]()},!1):window.performance[f]("webkit"+u,function(t){i(d,[window.performance.getEntriesByType(l)]),window.performance["webkitC"+c]()},!1)),document[f]("scroll",r,{passive:!0}),document[f]("keypress",r,!1),document[f]("click",r,!1)}},{}],5:[function(t,n,e){function r(t){for(var n=t;n&&!n.hasOwnProperty(u);)n=Object.getPrototypeOf(n);n&&o(n)}function o(t){s.inPlace(t,[u,d],"-",i)}function i(t,n){return t[1]}var a=t("ee").get("events"),s=t(18)(a,!0),c=t("gos"),f=XMLHttpRequest,u="addEventListener",d="removeEventListener";n.exports=a,"getPrototypeOf"in Object?(r(document),r(window),r(f.prototype)):f.prototype.hasOwnProperty(u)&&(o(window),o(f.prototype)),a.on(u+"-start",function(t,n){var e=t[1],r=c(e,"nr@wrapped",function(){function t(){if("function"==typeof e.handleEvent)return e.handleEvent.apply(e,arguments)}var n={object:t,"function":e}[typeof e];return n?s(n,"fn-",null,n.name||"anonymous"):e});this.wrapped=t[1]=r}),a.on(d+"-start",function(t){t[1]=this.wrapped||t[1]})},{}],6:[function(t,n,e){var r=t("ee").get("history"),o=t(18)(r);n.exports=r,o.inPlace(window.history,["pushState","replaceState"],"-")},{}],7:[function(t,n,e){var r=t("ee").get("raf"),o=t(18)(r),i="equestAnimationFrame";n.exports=r,o.inPlace(window,["r"+i,"mozR"+i,"webkitR"+i,"msR"+i],"raf-"),r.on("raf-start",function(t){t[0]=o(t[0],"fn-")})},{}],8:[function(t,n,e){function r(t,n,e){t[0]=a(t[0],"fn-",null,e)}function o(t,n,e){this.method=e,this.timerDuration=isNaN(t[1])?0:+t[1],t[0]=a(t[0],"fn-",this,e)}var i=t("ee").get("timer"),a=t(18)(i),s="setTimeout",c="setInterval",f="clearTimeout",u="-start",d="-";n.exports=i,a.inPlace(window,[s,"setImmediate"],s+d),a.inPlace(window,[c],c+d),a.inPlace(window,[f,"clearImmediate"],f+d),i.on(c+u,r),i.on(s+u,o)},{}],9:[function(t,n,e){function r(t,n){d.inPlace(n,["onreadystatechange"],"fn-",s)}function o(){var t=this,n=u.context(t);t.readyState>3&&!n.resolved&&(n.resolved=!0,u.emit("xhr-resolved",[],t)),d.inPlace(t,y,"fn-",s)}function i(t){g.push(t),h&&(x?x.then(a):w?w(a):(E=-E,O.data=E))}function a(){for(var t=0;t<g.length;t++)r([],g[t]);g.length&&(g=[])}function s(t,n){return n}function c(t,n){for(var e in t)n[e]=t[e];return n}t(5);var f=t("ee"),u=f.get("xhr"),d=t(18)(u),l=NREUM.o,p=l.XHR,h=l.MO,m=l.PR,w=l.SI,v="readystatechange",y=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],g=[];n.exports=u;var b=window.XMLHttpRequest=function(t){var n=new p(t);try{u.emit("new-xhr",[n],n),n.addEventListener(v,o,!1)}catch(e){try{u.emit("internal-error",[e])}catch(r){}}return n};if(c(p,b),b.prototype=p.prototype,d.inPlace(b.prototype,["open","send"],"-xhr-",s),u.on("send-xhr-start",function(t,n){r(t,n),i(n)}),u.on("open-xhr-start",r),h){var x=m&&m.resolve();if(!w&&!m){var E=1,O=document.createTextNode(E);new h(a).observe(O,{characterData:!0})}}else f.on("fn-end",function(t){t[0]&&t[0].type===v||a()})},{}],10:[function(t,n,e){function r(t){var n=this.params,e=this.metrics;if(!this.ended){this.ended=!0;for(var r=0;r<d;r++)t.removeEventListener(u[r],this.listener,!1);if(!n.aborted){if(e.duration=a.now()-this.startTime,4===t.readyState){n.status=t.status;var i=o(t,this.lastSize);if(i&&(e.rxSize=i),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;e.cbTime=this.cbTime,f.emit("xhr-done",[t],t),s("xhr",[n,e,this.startTime])}}}function o(t,n){var e=t.responseType;if("json"===e&&null!==n)return n;var r="arraybuffer"===e||"blob"===e||"json"===e?t.response:t.responseText;return h(r)}function i(t,n){var e=c(n),r=t.params;r.host=e.hostname+":"+e.port,r.pathname=e.pathname,t.sameOrigin=e.sameOrigin}var a=t("loader");if(a.xhrWrappable){var s=t("handle"),c=t(11),f=t("ee"),u=["load","error","abort","timeout"],d=u.length,l=t("id"),p=t(14),h=t(13),m=window.XMLHttpRequest;a.features.xhr=!0,t(9),f.on("new-xhr",function(t){var n=this;n.totalCbs=0,n.called=0,n.cbTime=0,n.end=r,n.ended=!1,n.xhrGuids={},n.lastSize=null,p&&(p>34||p<10)||window.opera||t.addEventListener("progress",function(t){n.lastSize=t.loaded},!1)}),f.on("open-xhr-start",function(t){this.params={method:t[0]},i(this,t[1]),this.metrics={}}),f.on("open-xhr-end",function(t,n){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),f.on("send-xhr-start",function(t,n){var e=this.metrics,r=t[0],o=this;if(e&&r){var i=h(r);i&&(e.txSize=i)}this.startTime=a.now(),this.listener=function(t){try{"abort"===t.type&&(o.params.aborted=!0),("load"!==t.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof n.onload))&&o.end(n)}catch(e){try{f.emit("internal-error",[e])}catch(r){}}};for(var s=0;s<d;s++)n.addEventListener(u[s],this.listener,!1)}),f.on("xhr-cb-time",function(t,n,e){this.cbTime+=t,n?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof e.onload||this.end(e)}),f.on("xhr-load-added",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&!this.xhrGuids[e]&&(this.xhrGuids[e]=!0,this.totalCbs+=1)}),f.on("xhr-load-removed",function(t,n){var e=""+l(t)+!!n;this.xhrGuids&&this.xhrGuids[e]&&(delete this.xhrGuids[e],this.totalCbs-=1)}),f.on("addEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-added",[t[1],t[2]],n)}),f.on("removeEventListener-end",function(t,n){n instanceof m&&"load"===t[0]&&f.emit("xhr-load-removed",[t[1],t[2]],n)}),f.on("fn-start",function(t,n,e){n instanceof m&&("onload"===e&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=a.now()))}),f.on("fn-end",function(t,n){this.xhrCbStart&&f.emit("xhr-cb-time",[a.now()-this.xhrCbStart,this.onload,n],n)})}},{}],11:[function(t,n,e){n.exports=function(t){var n=document.createElement("a"),e=window.location,r={};n.href=t,r.port=n.port;var o=n.href.split("://");!r.port&&o[1]&&(r.port=o[1].split("/")[0].split("@").pop().split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=n.hostname||e.hostname,r.pathname=n.pathname,r.protocol=o[0],"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname);var i=!n.protocol||":"===n.protocol||n.protocol===e.protocol,a=n.hostname===document.domain&&n.port===e.port;return r.sameOrigin=i&&(!n.hostname||a),r}},{}],12:[function(t,n,e){function r(){}function o(t,n,e){return function(){return i(t,[f.now()].concat(s(arguments)),n?null:this,e),n?void 0:this}}var i=t("handle"),a=t(15),s=t(16),c=t("ee").get("tracer"),f=t("loader"),u=NREUM;"undefined"==typeof window.newrelic&&(newrelic=u);var d=["setPageViewName","setCustomAttribute","setErrorHandler","finished","addToTrace","inlineHit","addRelease"],l="api-",p=l+"ixn-";a(d,function(t,n){u[n]=o(l+n,!0,"api")}),u.addPageAction=o(l+"addPageAction",!0),u.setCurrentRouteName=o(l+"routeName",!0),n.exports=newrelic,u.interaction=function(){return(new r).get()};var h=r.prototype={createTracer:function(t,n){var e={},r=this,o="function"==typeof n;return i(p+"tracer",[f.now(),t,e],r),function(){if(c.emit((o?"":"no-")+"fn-start",[f.now(),r,o],e),o)try{return n.apply(this,arguments)}catch(t){throw c.emit("fn-err",[arguments,this,t],e),t}finally{c.emit("fn-end",[f.now()],e)}}}};a("setName,setAttribute,save,ignore,onEnd,getContext,end,get".split(","),function(t,n){h[n]=o(p+n)}),newrelic.noticeError=function(t){"string"==typeof t&&(t=new Error(t)),i("err",[t,f.now()])}},{}],13:[function(t,n,e){n.exports=function(t){if("string"==typeof t&&t.length)return t.length;if("object"==typeof t){if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if(!("undefined"!=typeof FormData&&t instanceof FormData))try{return JSON.stringify(t).length}catch(n){return}}}},{}],14:[function(t,n,e){var r=0,o=navigator.userAgent.match(/Firefox[\/\s](\d+\.\d+)/);o&&(r=+o[1]),n.exports=r},{}],15:[function(t,n,e){function r(t,n){var e=[],r="",i=0;for(r in t)o.call(t,r)&&(e[i]=n(r,t[r]),i+=1);return e}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],16:[function(t,n,e){function r(t,n,e){n||(n=0),"undefined"==typeof e&&(e=t?t.length:0);for(var r=-1,o=e-n||0,i=Array(o<0?0:o);++r<o;)i[r]=t[n+r];return i}n.exports=r},{}],17:[function(t,n,e){n.exports={exists:"undefined"!=typeof window.performance&&window.performance.timing&&"undefined"!=typeof window.performance.timing.navigationStart}},{}],18:[function(t,n,e){function r(t){return!(t&&t instanceof Function&&t.apply&&!t[a])}var o=t("ee"),i=t(16),a="nr@original",s=Object.prototype.hasOwnProperty,c=!1;n.exports=function(t,n){function e(t,n,e,o){function nrWrapper(){var r,a,s,c;try{a=this,r=i(arguments),s="function"==typeof e?e(r,a):e||{}}catch(f){l([f,"",[r,a,o],s])}u(n+"start",[r,a,o],s);try{return c=t.apply(a,r)}catch(d){throw u(n+"err",[r,a,d],s),d}finally{u(n+"end",[r,a,c],s)}}return r(t)?t:(n||(n=""),nrWrapper[a]=t,d(t,nrWrapper),nrWrapper)}function f(t,n,o,i){o||(o="");var a,s,c,f="-"===o.charAt(0);for(c=0;c<n.length;c++)s=n[c],a=t[s],r(a)||(t[s]=e(a,f?s+o:o,i,s))}function u(e,r,o){if(!c||n){var i=c;c=!0;try{t.emit(e,r,o,n)}catch(a){l([a,e,r,o])}c=i}}function d(t,n){if(Object.defineProperty&&Object.keys)try{var e=Object.keys(t);return e.forEach(function(e){Object.defineProperty(n,e,{get:function(){return t[e]},set:function(n){return t[e]=n,n}})}),n}catch(r){l([r])}for(var o in t)s.call(t,o)&&(n[o]=t[o]);return n}function l(n){try{t.emit("internal-error",n)}catch(e){}}return t||(t=o),e.inPlace=f,e.flag=a,e}},{}],ee:[function(t,n,e){function r(){}function o(t){function n(t){return t&&t instanceof r?t:t?c(t,s,i):i()}function e(e,r,o,i){if(!l.aborted||i){t&&t(e,r,o);for(var a=n(o),s=h(e),c=s.length,f=0;f<c;f++)s[f].apply(a,r);var d=u[y[e]];return d&&d.push([g,e,r,a]),a}}function p(t,n){v[t]=h(t).concat(n)}function h(t){return v[t]||[]}function m(t){return d[t]=d[t]||o(e)}function w(t,n){f(t,function(t,e){n=n||"feature",y[e]=n,n in u||(u[n]=[])})}var v={},y={},g={on:p,emit:e,get:m,listeners:h,context:n,buffer:w,abort:a,aborted:!1};return g}function i(){return new r}function a(){(u.api||u.feature)&&(l.aborted=!0,u=l.backlog={})}var s="nr@context",c=t("gos"),f=t(15),u={},d={},l=n.exports=o();l.backlog=u},{}],gos:[function(t,n,e){function r(t,n,e){if(o.call(t,n))return t[n];var r=e();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(t,n,{value:r,writable:!0,enumerable:!1}),r}catch(i){}return t[n]=r,r}var o=Object.prototype.hasOwnProperty;n.exports=r},{}],handle:[function(t,n,e){function r(t,n,e,r){o.buffer([t],r),o.emit(t,n,e)}var o=t("ee").get("handle");n.exports=r,r.ee=o},{}],id:[function(t,n,e){function r(t){var n=typeof t;return!t||"object"!==n&&"function"!==n?-1:t===window?0:a(t,i,function(){return o++})}var o=1,i="nr@id",a=t("gos");n.exports=r},{}],loader:[function(t,n,e){function r(){if(!x++){var t=b.info=NREUM.info,n=l.getElementsByTagName("script")[0];if(setTimeout(u.abort,3e4),!(t&&t.licenseKey&&t.applicationID&&n))return u.abort();f(y,function(n,e){t[n]||(t[n]=e)}),c("mark",["onload",a()+b.offset],null,"api");var e=l.createElement("script");e.src="https://"+t.agent,n.parentNode.insertBefore(e,n)}}function o(){"complete"===l.readyState&&i()}function i(){c("mark",["domContent",a()+b.offset],null,"api")}function a(){return E.exists&&performance.now?Math.round(performance.now()):(s=Math.max((new Date).getTime(),s))-b.offset}var s=(new Date).getTime(),c=t("handle"),f=t(15),u=t("ee"),d=window,l=d.document,p="addEventListener",h="attachEvent",m=d.XMLHttpRequest,w=m&&m.prototype;NREUM.o={ST:setTimeout,SI:d.setImmediate,CT:clearTimeout,XHR:m,REQ:d.Request,EV:d.Event,PR:d.Promise,MO:d.MutationObserver};var v=""+location,y={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",agent:"js-agent.newrelic.com/nr-1071.min.js"},g=m&&w&&w[p]&&!/CriOS/.test(navigator.userAgent),b=n.exports={offset:s,now:a,origin:v,features:{},xhrWrappable:g};t(12),l[p]?(l[p]("DOMContentLoaded",i,!1),d[p]("load",r,!1)):(l[h]("onreadystatechange",o),d[h]("onload",r)),c("mark",["firstbyte",s],null,"api");var x=0,E=t(17)},{}]},{},["loader",2,10,4,3]); ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"fee8387e35",applicationID:"133284765",sa:1} </script> <meta name="description" content="Window Treatments Installation Services. Find the best window treatment professionals. Handy connects you with experts in curtains and blinds. Compare, read reviews and book best window treatment services online." /> <meta name="author" content="Handy for Pros is Now Angi Services" /> <meta name="og:site_name" content="Handy for Pros is Now Angi Services" /> <link href="https://www.handy.com/services/install-window-treatments" rel="canonical" /> <link rel="stylesheet" media="screen" href="https://cache-landingpages.services.handy.com/assets/application-8e3b5bddd30409183109ef077d3d60e9a558b46e85802923ff5df36c30e1eb3a.css" /> <!-- asynchronous google analytics snippet --> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-31442860-1', 'auto'); ga('send', 'pageview'); </script> <!-- End Google Analytics --> <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":"Zji/hZdFejP+wmoqO//RDZwZ+3IGi6438YQm6m+RiEag7WHa+gjUeF3Nm8ww4EuYYvXSGfdxXeuoVsAY1RjkSA==","from_native":false,"native_session_uid":null},"user":{"impersonating":false,"brand":"handy","new":false},"booking":{},"quote_request":{},"pageInfo":{"bookingId":null,"conversionType":null,"serviceName":null,"serviceCategory":null,"serviceId":null,"recurringFrequency":null,"zipcode":null,"dateOfBooking":null,"timeOfBooking":null,"dateAdded":null,"hourlyRate":null,"bookingHrs":null,"discount":null,"couponCode":null,"confirmedBooking":false,"cleaningType":null,"numberCreatedBookings":0,"isCleaning":0,"isCommit":0,"isOneTime":0,"isRecurring":0},"customerInfo":{"newUser":1,"userLoggedIn":false,"userHasAccount":false}}; }()); window.dataLayer ||= []; window.dataLayer.push(window.Handy.analytics); </script> <script type="text/javascript">(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.unset 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("285f70ac22992c5c5a2a0639a095aa59");</script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-31442860-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-31442860-1', { 'optimize_id': 'GTM-MDBGCQC'}); </script> <!-- Google Tag Manager --> <script class="handy-analytics" id="gtm">(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> <!-- End Google Tag Manager --> <link href='https://www.handy.com/services/install-window-treatments?page=2' rel='next'> <script type="application/ld+json"> {"@context":"http://schema.org","@type":"LocalBusiness","parentOrganization":{"@type":"Organization","name":"Handy"},"name":"Handy","image":"https://cache-landingpages.services.handy.com/assets/handy-pros-592276a0b34bc70437438bd93f150b9f9677f128f118bf2a901e0181191f42d4.png","openingHours":"07:00-23:00","aggregateRating":{"@type":"AggregateRating","ratingValue":4.4,"reviewCount":1083,"bestRating":5,"worstRating":0}} </script> <script> window.mixpanelMetadata = {"product_type":"consumer","referer":null,"browser_uid":"Zji/hZdFejP+wmoqO//RDZwZ+3IGi6438YQm6m+RiEag7WHa+gjUeF3Nm8ww4EuYYvXSGfdxXeuoVsAY1RjkSA==","device":"web","session_id":"930498712dba271b","session_uid":"Zji/hZdFejP+wmoqO//RDZwZ+3IGi6438YQm6m+RiEag7WHa+gjUeF3Nm8ww4EuYYvXSGfdxXeuoVsAY1RjkSA==_930498712dba271b","session_event_count":0,"logged_in":false}; var onLoadMixpanelData = null; // in case onLoadMixpanelData is not set if (onLoadMixpanelData != null) { var eventName = onLoadMixpanelData["event"]; delete onLoadMixpanelData["event"]; var allProperties = Object.assign( {}, onLoadMixpanelData, window.mixpanelMetadata ); //merge properties together mixpanel.track(eventName, allProperties); } </script> </head> <body class='template-service' id='install-window-treatments-page'> <!-- Google Tag Manager --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-5JWM6VD" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <div class='off-canvas position-right' data-content-scroll='false' data-off-canvas='' id='off-canvas-right-push'> <ul class='mobile-nav-menu menu vertical drilldown' data-back-button='<li class='js-drilldown-back'><a class='back-title'></a></li>' data-drilldown=''> <br> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Professional </a> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> All Services </a> </li> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='#'> Services by Category </a> <ul class='menu vertical nested'> <li> <a href='#'> Cleaning </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <a href='#'> Installation </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <a href='#'> Handyman </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <a href='#'> Outdoor Projects </a> <ul class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' 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 class='menu vertical nested'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </li> <div class='nav__line'></div> <li class='nav-link'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> <li class='nav-link nav-menu__control'> <a href='/about'> About </a> <ul class='menu vertical'> <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='http://blog.handy.com/'> 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 class='nav__line'></div> <li class='nav-link'> <a href='/privacy'> Privacy </a> </li> <li class='nav-link'> <a href='/privacy#section5a'> CA Pre-Collection Notice </a> </li> <li class='nav-link'> <a href='/do_not_sell'> Do Not Sell or Share My Personal Information </a> </li> <li class='nav-link'> <a href='/cookies'> Cookies </a> </li> <li class='nav-link'> <a href='/terms'> Terms </a> </li> <li> <a> <form html="{:class=>"nav__select"}" action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </a> </li> </ul> </li> </ul> </div> <!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --> <!--[if lt IE 7 ]> <html lang="en" class="no-js ie6"> <![endif]--> <!--[if IE 7 ]> <html lang="en" class="no-js ie7"> <![endif]--> <!--[if IE 8 ]> <html lang="en" class="no-js ie8"> <![endif]--> <!--[if IE 9 ]> <html lang="en" class="no-js ie9"> <![endif]--> <!--[if (gt IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> <div class='off-canvas-content' data-off-canvas-content=''> <script src="https://cache-landingpages.services.handy.com/assets/application-97e37d2e044e4420f7ad4a4ea07c375282d14a9487e88cc3057f035a520733c0.js"></script> <script src="https://cache-landingpages.services.handy.com/assets/accessibility-cca6ca545c47db43401f96309237acaf72f7cb060e90d5adc5b893a38c66cd4c.js"></script> <div id='page_container'> <header id='header' role='banner'> <section id='header'> <div class='grid-container'> <div class='navigation'> <nav class='grid-x align-middle navigation--collapsed title-bar' data-hide-for='large' data-responsive-toggle='navigation--expanded'> <div class='navigation__logo left'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <button class='menu-icon right' data-toggle='off-canvas-right-push' type='button'></button> </nav> <nav class='align-middle stacked-for-medium navigation--expanded top-bar' id='navigation--expanded'> <div class='navigation__logo show-for-large'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='home' data-mixpanel-trigger='click' href='/home'> <img src="https://cache-landingpages.services.handy.com/assets/pages/region/handy_logo-e5d858d96595ec001c5268a2d7a0f91800da2c7c2f963a5307154917289c347a.svg" alt="Handy logo" /> </a> </div> <div class='navigation__left top-bar-left'> <ul class='menu dropdown all-services-menu' data-dropdown-menu='' data-options='closingTime:0;'> <li class='all-services mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_hover' data-mixpanel-trigger='hover-once' href='/services'> All Services <i class='fal fa-angle-down fa-shown'></i> <i class='fal fa-angle-up fa-hidden'></i> </a> </li> </ul> <div class='grid-container services-panel'> <div class='grid-x'> <div class='cell'> <ul class='four-columns services-columns'> <li> <span> Cleaning </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'> Home Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_move_out_in_cleaning' data-mixpanel-trigger='click' href='/services/move-out-in-cleaning'> Move Out Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_office_cleaning' data-mixpanel-trigger='click' href='/services/office-cleaning'> Office Cleaning </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deep_cleaning' data-mixpanel-trigger='click' href='/services/deep-cleaning-service'> Deep Cleaning </a> </li> </ul> </li> <li> <span> Installation </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_mount_tv' data-mixpanel-trigger='click' href='/services/mount-tv'> TV Mounting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_hanging_pictures_shelves' data-mixpanel-trigger='click' href='/services/hanging-pictures-shelves'> Picture or Shelf Hanging </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_light_fixtures' data-mixpanel-trigger='click' href='/services/light-fixtures'> Light Fixtures </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_ceiling_fan' data-mixpanel-trigger='click' href='/services/ceiling-fan'> Ceiling Fans </a> </li> </ul> </li> <li> <span> Handyman </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'> Furniture Assembly </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'> General Handyman </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'> General Plumbing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_faucets_replacement' data-mixpanel-trigger='click' href='/services/faucets-replacement'> Faucets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_toilet_trouble' data-mixpanel-trigger='click' href='/services/toilet-trouble'> Toilets </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'> General Electric </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_outlets' data-mixpanel-trigger='click' href='/services/outlets'> Outlets and Switches </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'> Moving Help </a> </li> </ul> </li> <li> <span> Outdoor Projects </span> <ul> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_lawn_care_maintenance_service' data-mixpanel-trigger='click' href='/services/lawn-care-maintenance-service?redirect_source=nav_bar'> Lawn Care </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_gutter_installation' data-mixpanel-trigger='click' href='/services/gutter-installation?redirect_source=nav_bar'> Gutters and Downspouts </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_removal' data-mixpanel-trigger='click' href='/services/tree-removal?redirect_source=nav_bar'> Tree Removal </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_tree_trimming' data-mixpanel-trigger='click' href='/services/tree-trimming?redirect_source=nav_bar'> Tree Trimming </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_fence_installation' data-mixpanel-trigger='click' href='/services/fence-installation?redirect_source=nav_bar'> Wood Fence Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_and_porch_repair' data-mixpanel-trigger='click' href='/services/deck-and-porch-repair?redirect_source=nav_bar'> Deck and Porch Repairs </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_deck_repair_installation' data-mixpanel-trigger='click' href='/services/deck-repair-installation?redirect_source=nav_bar'> Deck Installation </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_exterior_painting' data-mixpanel-trigger='click' href='/services/exterior-painting?redirect_source=nav_bar'> Exterior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_power_washing' data-mixpanel-trigger='click' 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='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_bathroom_remodeling' data-mixpanel-trigger='click' href='/services/bathroom-remodeling?redirect_source=nav_bar'> Remodel a Bathroom </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_kitchen_remodeling' data-mixpanel-trigger='click' href='/services/kitchen-remodeling?redirect_source=nav_bar'> Remodel a Kitchen </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_basement_remodeling' data-mixpanel-trigger='click' href='/services/basement-remodeling?redirect_source=nav_bar'> Remodel a Basement </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_major_home_renovations' data-mixpanel-trigger='click' href='/services/major-home-renovations?redirect_source=nav_bar'> Major Home Renovations </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_installing_wood_flooring' data-mixpanel-trigger='click' href='/services/installing-wood-flooring?redirect_source=nav_bar'> Refinish Wood Flooring </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/install-asphalt-shingle-roofing?redirect_source=nav_bar'> Install Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_repair_asphalt_shingle_roofing' data-mixpanel-trigger='click' href='/services/repair-asphalt-shingle-roofing?redirect_source=nav_bar'> Repair Roofing </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_6_windows_installation' data-mixpanel-trigger='click' href='/services/6-windows-installation?redirect_source=nav_bar'> Install New Windows </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'> Interior Painting </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='services_install_window_treatments' data-mixpanel-trigger='click' href='/services/install-window-treatments'> Window Treatments </a> </li> </ul> </li> </ul> </div> </div> <div class='grid-x align-center'> <div class='cell all-services__button'> <a class='button radius mixpanel' 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> $('.services-panel').hover( function() { $('.all-services-menu').addClass('chevron-hack'); }, function() { $('.all-services-menu').removeClass('chevron-hack'); } ); </script> <ul class='menu has-submenu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'> Blog </a> </li> </ul> </div> <div class='navigation__right top-bar-right'> <ul class='menu dropdown' data-dropdown-menu='' data-options='closingTime:0;'> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply'> Become a Pro </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'> Help </a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='nav_bar_refinery' data-mixpanel-event='nav_bar_cta' data-mixpanel-source='login' data-mixpanel-trigger='click' href='/login'> Log In </a> </li> </ul> </div> </nav> </div> </div> </section> </header> <main id='page' role='main'> <section class='mixpanel' data-is-cms-page='true' data-mixpanel-event-context='booking_funnel' data-mixpanel-event='zip_shown' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='shown' id='service-image'> <div class='grid-x service-image'> <div class='cell service-image__image' data-interchange='[, small], [https://cache-landingpages.services.handy.com/assets/services/large_install_window_treatments-504b9ad64dd2b9315c74efee2a586d3990c0874c82b5a91b04577d7eba25f25a.jpg, medium]'></div> </div> </section> <section id='head'> <div class='grid-container'> <div class='grid-x align-center head'> <div class='grid-x head'> <div class='cell small-12 medium-7'> <div class='cell head__title show-for-medium'> <h1><p>Window Treatments Installation</p></h1> </div> <div class='cell grid-x head__rating show-for-medium'> <div class='cell small-6 medium-shrink stars'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 46%'></i> </i> </div> </div> </div> <div class='cell small-6 medium-auto reviews'> <a data-smooth-scroll='' href='#customer-reviews'> 1,083 Reviews </a> </div> </div> <div class='cell head__description'> <p>If you're considering having new blinds or curtains installed, be sure to make Handy your first stop. While you might be tempted to get out your drill and try and put up your window blinds and curtains yourself, these are specialist jobs that really require the services of a professional. Even the slightest miscalculation of measurement can turn your efforts into a costly DIY disaster. If you've got multiple windows, having an expert eye on the job is even more crucial. Installing window shades and window curtains is a time-consuming task which you might not have time for. And if you don’t have the right tools for the job, do you really want to splurge on specialized tools that you're probably only ever going to use once? </p> </div> <div class='cell head__capabilities'> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Vetted and </p><a class='media-card__link' href='/trust-and-safety'>screened professionals</a>. </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Friendly 24/7 customer service.</p> </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Backed by the </p><a class='media-card__link' href='/handy-guarantee'>Handy Happiness Guarantee</a>. </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>Affordable, upfront pricing.</p> </div> </div> <div class='media-object media-card'> <div class='media-object-section media-card__icon'> <i class='fa fa-check'></i> </div> <div class='media-object-section'> <p class='media-card__description'>No time windows, book when you want.</p> </div> </div> </div> </div> <div class='cell small-12 medium-offset-1 medium-4'> <div class='cell grid-x'> <div data-react-class="QuotesFormContainer" data-react-props="{"service":{"id":46,"machine_name":"install_window_treatments","name":"Window Treatments","short_display_name":"Window Treatments","description":"The experienced professionals are experts at installing all types of window treatments, including blinds, curtains, shades and shutters. They are top-rated and come prepared with the proper tools and supplies to get your job done right.","form":{"min_base_hours":2.0,"max_base_hours":10.0,"need_comment_box":true,"questions":[{"text":"Will a ladder be required?","options":[["No",0],["Yes - 6 ft (1.8 m)",1],["Yes - 10 ft (3.0 m)",2]],"selected":0,"custom_warning":"There will be an additional fee.","option_params":[null,{"extra_machine_name":"ladder_six_feet"},{"extra_machine_name":"ladder_ten_feet"}],"extra_charge":[0,50,50],"appears_as":[null,"Ladder Required: 6 ft (1.8 m)","Ladder Required: 10 ft (3 m)"],"id":"q1","warn_on_option":["1","2"]}],"all_questions":[{"text":"Will a ladder be required?","options":[["No",0],["Yes - 6 ft (1.8 m)",1],["Yes - 10 ft (3.0 m)",2]],"selected":0,"custom_warning":"There will be an additional fee.","option_params":[null,{"extra_machine_name":"ladder_six_feet"},{"extra_machine_name":"ladder_ten_feet"}],"extra_charge":[0,50,50],"appears_as":[null,"Ladder Required: 6 ft (1.8 m)","Ladder Required: 10 ft (3 m)"],"id":"q1","warn_on_option":["1","2"]}],"base_hours_values":{},"service_intro":"Tell us about the job","tab_name":"Windows","default_hours":2,"comment_box_placeholder":"Please describe the job in detail. (optional)","comment_box_required":false,"attributes":[{"name":"Curtains","default_value":0,"hours_value":1,"description":null},{"name":"Blinds","default_value":2,"hours_value":1,"description":null}]},"meta_data":{"review_count":1083,"rating":"4.4"}},"region":{},"metadata":{"average_rating":"4.4","review_count":1083,"pro_count":448943,"reviews_gtet_four_starts":9331,"reviews_with_min_rating":9331},"mixpanel_metadata":{"product_type":"consumer","referer":null,"browser_uid":"Zji/hZdFejP+wmoqO//RDZwZ+3IGi6438YQm6m+RiEag7WHa+gjUeF3Nm8ww4EuYYvXSGfdxXeuoVsAY1RjkSA==","device":"web","session_id":"930498712dba271b","session_uid":"Zji/hZdFejP+wmoqO//RDZwZ+3IGi6438YQm6m+RiEag7WHa+gjUeF3Nm8ww4EuYYvXSGfdxXeuoVsAY1RjkSA==_930498712dba271b","session_event_count":0,"logged_in":false},"authenticity_token":"CDSOBopPLLR+7gmA1Cz1PRjTBCHSM34+TTK/+swjB3U6mRVh25kzJ8MZAsXhs2rtMbXHairbZhNHUTF/LPARwg==","userIsLoggedIn":false,"userZipcode":null,"quotes_form":{"default_date_start":"02/15/2025","subscription_offer_coupon":null},"voucher_id":null,"promotion":null,"quotes_path":"/services/quotes","ratingStarsHtml":"\u003cdiv class='rating-stars'\u003e\n\u003cdiv class='star'\u003e\n\u003ci class='fas fa-star'\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class='star'\u003e\n\u003ci class='fas fa-star'\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class='star'\u003e\n\u003ci class='fas fa-star'\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class='star'\u003e\n\u003ci class='fas fa-star'\u003e\u003c/i\u003e\n\u003c/div\u003e\n\u003cdiv class='star'\u003e\n\u003ci class='far fa-star'\u003e\n\u003ci class='fas fa-star' style='width: 46%'\u003e\u003c/i\u003e\n\u003c/i\u003e\n\u003c/div\u003e\n\u003c/div\u003e\n","reviewCountText":"1,083 Reviews","showReviewCount":true,"serviceSlug":"Window Treatments Installation","template":"service","mobileFormTitle":null,"email":"","showPhoneCollection":true}" class="quote-form-container"></div> </div> </div> </div> </div> </div> </section> <section id='how-it-works'> <div class='grid-container'> <div class='grid-x how-it-works'> <div class='cell small-12 medium-12 text-align-center how-it-works__title'> <h2>How Handy Works</h2> <div class='cell grid-x how-it-works__media-cards-container'> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/pick_time_icon-fc7dab822f3dd585f10fcb5dea47b7040131a1b219c1aa624e19a728e15f7722.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Pick a Time</h3> <p class='media-card__description'>Select the day and time for your service and get instant, affordable pricing.</p> </div> </div> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/phone_icon-40ab9380da932637856628868c2ab9821a2d2802d3c2cef796b12a8798114724.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Book instantly</h3> <p class='media-card__description'>We'll confirm your appointment and take care of payment electronically and securely.</p> </div> </div> <div class='cell grid-x small-12 large-4 align-center media-card'> <div class='cell media-card__logo'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/handy_man-abe2faed1401777d51e1f154c2e841e61f6e2d0880fad6462d217cce11c7d387.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='cell small-10 main-section'> <h3 class='media-card__title'>Your pro arrives</h3> <p class='media-card__description'>An experienced, fully-equipped professional will show up on time at your doorstep.</p> </div> </div> </div> </div> </div> </div> </section> <section id='trusted-name'> <div class='grid-container'> <div class='grid-x align-center trusted-name'> <div class='cell text-align-center trusted-name__title'> <h2>The Trusted Name in Window Treatments Installation Referrals</h2> </div> <div class='cell grid-x grid-margin-x grid-padding-y small-12 trusted-name__capabilities'> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/experienced_icon-060722cd4dafc62554de73ccf5319c33bc4b54c360a1105a36b997c84959b8be.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Experienced</span> </div> <div class='capability__description'> <p>Once you’ve seen a window treatment expert at work, you’ll understand why there’s more to hanging blinds than you might first think. Your professional will likely have years more experience under their belts than you. As part of that training, they’ll have fitted blinds and hung curtains of different dimensions, in windows of varying sizes, in houses that have their own individual quirks and characteristics. In short, their experience will have taught them the best way to navigate any potential problems that may arise while delivering the best job possible. </p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/handyman_icon-a69b8bcb9a19a2305deb331ab16deb9cb80b6c11454ebc22de4daf756d79018a.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Skilled and Capable</span> </div> <div class='capability__description'> <p>When you book a window treatment professional to hang your curtains or fit your blinds, you want to know that they're qualified and capable enough to see the job through. All window experts on the Handy platform are<a href="https://www.handy.com/trust-and-safety" target="_blank">vetted and verified</a>, so you can rest assured that you’re not letting a complete stranger into your home. You can also see their ratings and reviews from past satisfied customers, giving you the reassurance that this isn’t their first rodeo. </p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/reliable_icon-24581e4e61b5af5e0b55b8e77056e865c4a039613f7e74dbf907c0ca812e4cfa.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Reliable</span> </div> <div class='capability__description'> <p>Handy fitters know that your time is valuable and won't leave you waiting for hours for them to show up. Instead, using the Handy platform, you can choose exactly when they arrive, at the time and date that's best for you. If you need vertical blinds installed urgently, you can book a pro to be at your house as soon as tomorrow. If you don't need them until your curtains are delivered in three weeks, you can set up your window treatment booking way ahead of time. Handy matches your job with local installers, so they can get to you when they say they will.</p> </div> </div> <div class='cell capability medium-6'> <div class='capability__title'> <span class='icon'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/flexible_icon-978e3a88f69893389b44aea966dac48058e288a71db083a46e695447fdb42887.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </span> <span class='text'>Flexible</span> </div> <div class='capability__description'> <p>Not everyone works a standard nine-to-five, which is why Handy makes it easy to book from your phone or computer at any time of day or night. Just type up a brief description of your job and we’ll match you with a window expert who will be able to handle your unique job. And if your plans change, you can cancel or reschedule your booking without any fuss, so long as you give us 24 hours’ notice. The Handy platform puts you in charge of when the work gets done.</p> </div> </div> </div> <div class='cell trusted-name__button'> <a class='button radius' data-smooth-scroll='' href='#install-window-treatments-page'>Get Started</a> </div> </div> </div> </section> <section id='service-description'> <div class='grid-x align-center service-description'> <div class='cell small-10 text-align-center service-description__title'> <h2>The Best Window Treatments Installation Referral Agency</h2> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_install_window_treatments_1-be2eb8cae1afc29667febb64f735fa02a42237b48f741b8ca2f4c7ba4917f55e.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_install_window_treatments_1-6bdaaea7b3bb18a4141748049ef928eaaed5d4a5fbcae4d6bbd999e47fed5dee.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>The Tools of the Trade</h3> <p>While your toolbox might be overflowing, the chances are you don't have those specialist tools that are often the difference in your blinds or curtains being installed to a professional standard. Use the Handy platform to book your window expert, and they'll arrive, on time, with all the tools they need to install your blinds or hang your curtains. If you have any special requirements, just tell us the details when you arrange your booking, and your professional will be able to pack whatever equipment is required to ensure that the work they deliver meets your criteria.</p> </div> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_install_window_treatments_2-b58b3e33b53e2a41c67a9998c3b5323687f488a405c20c2bf4dd582a29fbfbc5.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_install_window_treatments_2-b2d04efef635005d5e6188cfc7d4182f82c377e53163a783afcc1bb3bd5ec793.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>Getting It Right the First Time</h3> <p>With years of working in different environments, residential and commercial, the window treatment specialists on the Handy platform will have the experience, expertise, and know-how to get the job right, the first time. While you might have solid DIY skills, installing blinds and hanging curtains is a job best left to professionals. Your pro will be able to identify any potential problems in advance and take the necessary steps to ensure they don't spoil the visual impact or symmetry of your window blinds or curtains. The pros on the Handy platform are experts in their field, and we aim to make them available to you so you can benefit from their knowledge and abilities.</p> </div> </div> <div class='cell grid-x section'> <div class='cell small-shrink medium-shrink large-shrink section__image'> <img data-interchange="[https://cache-landingpages.services.handy.com/assets/services/small_install_window_treatments_3-854e6fceb6427358e283cfa81867c322bcf3d0c6ee29f9f01acd1e47d32c71bc.jpg, small], [https://cache-landingpages.services.handy.com/assets/services/large_install_window_treatments_3-dcd3cf77c9677f3d6b9cfcf0277fdfccd97ac37b3f695c5a3a9f1ddfadb0e621.jpg, medium]" src="" /> </div> <div class='cell small-11 large-auto section__description'> <h3>The Best Job at the Best Rates</h3> <p>When you search for a professional to fit blinds or curtains to your windows, you're taking charge of the project. With the details of your job in hand, we’ll match your requirements with pros in your area who will be able to handle your job. Best of all, we believe you’ll find pros' prices to be extremely competitive compared to other professional window treatment companies.</p> </div> </div> </div> </section> <section id='faq'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x align-center small-10 faq'> <div class='cell text-align-center faq__title'> <h2>Frequently Asked Questions</h2> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>Will I need tools or will my handyman professional bring them?</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>Professionals always come prepared with the proper tools and supplies to get your job done right. However, it's always a good idea to be as clear and descriptive in your job description to ensure that nothing important is missed or forgotten!</p> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>When should I expect my professional to get in touch with me?</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>After your booking is confirmed, Handy will send you confirmation emails and messages about your booking and professional. You can contact your professional at any time with questions or concerns you might have.</p> </div> <div class='cell grid-x align-middle faq__question'> <div class='cell small-11 question'> <p>I need more help.</p> </div> <i class='cell icon'></i> </div> <div class='cell small-12 faq__answer'> <p>Please see the <a style="background-color: #ffffff;" href="https://www.handy.com/help" target="_blank">Help Center</a>.</p> </div> <div class='cell faq__button'> <a class='button radius' data-smooth-scroll='' href='#install-window-treatments-page'>Get Started</a> </div> </div> </div> </div> </section> <section id='top-professionals'> <div class='grid-container'> <div class='grid-x align-center top-professionals'> <div class='cell small-12 medium-8 top-professionals__title'> <h2>Meet Some of the Top Window Treatments Installation Pros on Handy</h2> </div> <div class='cell small-12 medium-8 top-professionals__description'> <p>Download the app to search and book top professionals in your area. Build a pro team so that you always have a great group of go-to professionals for all your household needs.</p> </div> <div class='cell grid-x grid-margin-x grid-margin-y small-12 medium-12 top-professionals__cards-container'> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/27ec6bd0-c3e2-48c7-aba9-e01e4d2f3962?ixlib=rb-1.1.0&w=200&h=200&s=b78b4c5d8d4a06d65d687670715d447b" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Jeremy D. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 64%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 35 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Hi my name is Jeremy. I have 27 yrs experience multiple phases of construction from handyman services to remodeling or renovating homes just to name a few. I have a passion for helping people and doing great projects! Looking forward to serving you! </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/2cb171f8-6844-4236-a540-6bd53154e9eb?ixlib=rb-1.1.0&w=200&h=200&s=d2a52cda3c757890806ae6f9f14a86bd" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Tom J. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 21%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 190 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> Hi </div> </div> <div class='cell small-12 medium-12 large-4 cards'> <div class='media-object align-middle align-center cards__header'> <div class='media-object-section photo'> <img class="lazyload" data-src="https://handy-media.imgix.net/dd4daad4-ddba-4df5-807e-8285d25d4d20?ixlib=rb-1.1.0&w=200&h=200&s=d2136e1f29751aee6e594c41a69904cb" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> <div class='media-object-section text-align-left'> <p class='name'> Curtavis M. </p> <div class='rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='status'> <i class='status__icon'></i> <span class='status__text'>Handy Premium Pro</span> </div> <div class='jobs-counter'> <i class='jobs-counter__icon'></i> <span class='jobs-counter__text'> 20 jobs completed </span> </div> </div> </div> <div class='cell cards__body'> I’m a military vet. Just recently moved back to the va area from TN. I do electrical repair work as well. Sky is the limit with my services. </div> </div> </div> </div> </div> </section> <section id='customer-reviews'> <div class='grid-container'> <div class='grid-x customer-reviews'> <div class='cell grid-x small-12 medium-8'> <div class='cell text-center customer-reviews__title'> <h2>Customer Reviews</h2> </div> <div class='cell text-center customer-reviews__counter'> <p>1,083 Reviews for Window Treatments Installation</p> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Leo M.</p> </div> <div class='cell professional__description'> <p>Ricardo did an amazing job with hanging my blinds. He was super thorough and measured everything twice. I would recommend and work with him anytime. Thanks again! </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Alicia B.</p> </div> <div class='cell professional__description'> <p>He was so thorough, friendly, and neat! He really did a professional job and came prepared with all necessary tools. Highly recommended!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Bethamy M.</p> </div> <div class='cell professional__description'> <p>Matt did an excellent job removing a couple sets of broken window blinds and put up new rods and curtains. I paid for 2 hours, but it only took about 30 minutes at most (more like 20!). He was on time. He was very helpful. He even assisted in moving a bed to get better access to the window. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Lauren S.</p> </div> <div class='cell professional__description'> <p>Edwin did a great job hanging our blinds. He came early, and was even able to shorten the blinds to make sure they fit in our window. He had all the equipment he needed to finish the job the right way. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Kelli M.</p> </div> <div class='cell professional__description'> <p>Calvin showed up ready to work and was very professional! Great attitude and work ethic, was very speedy and willing to take on any task requested. Would highly recommend him to anyone! </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Jasbir S.</p> </div> <div class='cell professional__description'> <p>Very knowledgeable and understands the value of communication. He’s definitely on my Pro team and I’ll continue to use him whenever I have issues around my building or condo!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Beverly B.</p> </div> <div class='cell professional__description'> <p>Leon did an excellent job installing my shades and hanging art work. He’s also very personable. Thanks Leon!</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Olivia C.</p> </div> <div class='cell professional__description'> <p>Marciano did a great job - he was friendly, got the job done well, and went the extra mile to help out my roommate with another task.</p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Kip S.</p> </div> <div class='cell professional__description'> <p>Michael treats your home as his own. Very thorough and sound handy work - he has helped with a variety of jobs from hanging blinds to reinforcing floor joists and leveling our stacked washer dryer unit. I would have no hesitation recommending him to tackle your home improvement needs. </p> </div> </div> <div class='cell professional'> <div class='cell professional__rating'> <div class='rating-stars'> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='fas fa-star'></i> </div> <div class='star'> <i class='far fa-star'> <i class='fas fa-star' style='width: 100%'></i> </i> </div> </div> </div> <div class='cell professional__name'> <p>Natalie W.</p> </div> <div class='cell professional__description'> <p>Asen has very professional manner and is very experienced. He brought all the appropriate tools and fixings for fitting two very tricky high curtain poles that I needed to be erected. I would highly recommend him. Would request for him again for future work if possible. A* rating.</p> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__pagination'> <nav aria-label='Pagination' class='grid-x' id='pagination'> <div class='cell small-1 pagination-previous'> </div> <ul class='cell pagination text-center'> <li class='current'> <span class='show-for-sr'>You're on page</span> 1 </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='click' href='https://www.handy.com/services/install-window-treatments?page=2#customer-reviews'>2</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='click' href='https://www.handy.com/services/install-window-treatments?page=3#customer-reviews'>3</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='click' href='https://www.handy.com/services/install-window-treatments?page=4#customer-reviews'>4</a> </li> <li> <a aria-label='Page 1' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='click' href='https://www.handy.com/services/install-window-treatments?page=5#customer-reviews'>5</a> </li> </ul> <div class='cell small-1 pagination-next'> <a aria-label='Next page' class='mixpanel' data-mixpanel-event-context='review_pagination_click' data-mixpanel-event='review_pagination_click' data-mixpanel-region-name='' data-mixpanel-service-name='install_window_treatments' data-mixpanel-trigger='click' href='https://www.handy.com/services/install-window-treatments?page=2#customer-reviews'> <i class='fas fa-chevron-right'></i> </a> </div> </nav> </div> </div> <div class='cell grid-x align-center'> <div class='cell customer-reviews__button'> <a class='button radius' data-smooth-scroll='' href='#install-window-treatments-page'>Get Started</a> </div> </div> </div> </div> </div> </section> <section id='sample-project'> <div class='grid-container'> <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="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 8, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 22, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 89015 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair?* A: Repair Q: What repair needs to be done? Select all that apply:* A#: Slat(s) damaged A#: Cord(s) damaged and need replaced A#: New handles needed Q: Do you ne... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 7, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 10, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 33409 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair? A: Repair Q: What repair needs to be done? Select all that apply: A#: Cord(s) damaged and need replaced Q: Do you need curtains or blinds / shades serviced? A: B... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 7, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 10, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 94521 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> On sliding glass doors, remove vertical blinds and install new curtain rod and curtains. Probably need # people. Also hang # small cabinet and # small shelving units. </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 7, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 13, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 08638 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair?* A: Installation Q: Do you need curtains or blinds / shades serviced? A: Blinds / Shades Q: How many blinds / shades need work? A: # or more Q: What style of bli... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 6, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 14, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 95762 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair?* A: Repair Q: What repair needs to be done? Select all that apply:* A#: Remote control doesn't work A#: Other Q: What do you need repaired?* A: We have Motorized... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 6, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 10, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 23059 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> We have four window blinds to be fixed over entry way and stairs. And windows are at the height of second floor </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 6, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 12, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 29588 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 2.5 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair?* A: Repair Q: What repair needs to be done? Select all that apply:* A#: Cord(s) damaged and need replaced Q: Do you need curtains or blinds / shades serviced? A:... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 5, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 12, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 91423 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Q: Is this an installation or a repair?* A: Installation Q: Do you need curtains or blinds / shades serviced? A: Blinds / Shades Q: How many blinds / shades need work?* A: # Q: What style of blind / sh... </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 4, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 11, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 13697 </div> </div> <div class='item column'> <div class='key'> Base Hours </div> <div class='value'> 1.0 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> Installation of customer supplied window curtain or window drape. *Remove/discard any product packaging upon completion of the job* </div> </div> </div> </div> </div> <div class='card-wrapper'> <div class='card'> <div class='icon'><img src="https://cache-landingpages.services.handy.com/assets/cleaner-filled-759d9227c9abc537ed9169c98ac92bc8a9c55602cc4b0d1ce26a2140a74af720.png" alt="Cleaner filled" /></div> <div class='card__title'> Window Treatments Installation </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Created At </div> <div class='value'> February 3, 2025 </div> </div> <div class='item column'> <div class='key'> Date Start </div> <div class='value'> February 9, 2025 </div> </div> </div> <div class='card__fields row'> <div class='item column'> <div class='key'> Zipcode </div> <div class='value'> 07087 </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'> Number Providers </div> <div class='value'> 1 </div> </div> </div> <div class='card__description'> <div class='item'> <div class='key'>Description</div> <div class='value'> *Remove/discard any product packaging upon completion of the job* </div> </div> </div> </div> </div> </div> </div> </div> </section> <section id='where-does-handy-operate'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x small-10 align-center where-does-handy-operate'> <div class='cell small-11 text-align-center where-does-handy-operate__title'> <h2>Where Does Handy Operate?</h2> </div> <div class='cell small-11 text-align-center where-does-handy-operate__description'> <p>Handy operates in hundreds of cities around the United States, Canada, and the U.K. No matter where you live, Handy has you covered.</p> </div> <div class='cell grid-x where-does-handy-operate__content'> <div class='cell grid-x small-12 medium-12 large-7 align-middle locations'> <ul class='cell small-12 medium-5 locations__list'> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/new-york">NYC</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/san-francisco">SF</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/boston">Boston</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/chicago">Chicago</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/miami">Miami</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/washington-dc">DC</a> </li> </ul> <ul class='cell small-12 medium-7 locations__list'> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/los-angeles">Los Angeles</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/houston">Houston</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/london">London</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/vancouver">Vancouver</a> </li> <li class='fas fa-caret-right'> <a href="/services/install-window-treatments/toronto">Toronto</a> </li> <li> <a href="/locations">and hundreds more!</a> </li> </ul> </div> <div class='cell grid-x large-5 hide-for-small show-for-large image'> <img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/pages/service/locations_map-7aa2f2a22ee5dabd12caf07653caf7e4aec4e23add6f889eaef5c99bf362737a.svg" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /> </div> </div> </div> </div> </div> </section> <section id='foot'> <div class='grid-container'> <div class='grid-x align-center'> <div class='grid-x small-10 align-center foot'> <div class='cell foot__content'> <h2>Your Window Treatment Installation Happiness is our Priority</h2> <p>The pros on the Handy platform are <a href="https://www.handy.com/trust-and-safety" target="_blank">vetted, verified and screened</a> to ensure that you’re getting a pro who can deliver. Best of all, the incentives of your pro are aligned with your own. They want to turn up on time, fully prepared and ready to work. Beyond being proud and passionate about what they do, the pros on the Handy platform know their reputation relies on your satisfaction. If they consistently deliver a reliable, professional window hanging service, they'll receive solid and positive reviews. Your happiness is their business. And if that wasn’t enough, the Handy Happiness Guarantee provides even more reassurance. In the unlikely event that you’re not satisfied, Handy will work hard to make the situation right.</p> <p> </p> <h2>Leave it to the Window Treatment Installation Pros</h2> <p>With the proliferation of DIY videos on YouTube, there's always the temptation to try to install your own vertical blinds or hang your own curtains. However, if you get it wrong, you could be faced with significant expense and inconvenience to fix things. Instead, use the Handy app or website to find local window hanging experts who know exactly what they're doing. Your windows carry enormous visual impact in your home – let Handy connect you with professionals who will know how to maximize that impact and leave your new blinds and curtains looking their best.</p> </div> <div class='cell foot__button'> <a class='button radius' data-smooth-scroll='' href='#install-window-treatments-page'>Get Started</a> </div> </div> </div> </div> </section> </main> <footer role='contentinfo'> <script class="handy-analytics" id="bright_tagjs"> window.pageData = {}; (function() { var btjs = document.createElement('script'), s = document.getElementsByTagName('script')[0]; btjs.async = true; btjs.src = '//s.btstatic.com/tag.js#site=FT5eU6D'; 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 src="https://cache-landingpages.services.handy.com/packs/application-93f9f21f034a732f8662.js"></script> <section id='crumbs'> <div class='grid-container'> <div class='grid-x align-center crumbs'> <div class='cell crumbs__content'> <ul class='breadcrumbs'> <li> <i class='fa fa-home'></i> <a href="/">Home</a> <li><a href="/services">services</a></li> <li>install-window-treatments</li> </li> </ul> </div> </div> </div> </section> <section id='footer'> <div class='grid-container'> <div class='grid-x align-center footer'> <div class='cell grid-x footer__navigation hide-for-small-only'> <nav class='cell grid-x small-5'> <ul class='menu vertical'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='happiness_guarantee' data-mixpanel-trigger='click' href='/handy-guarantee'>The Handy Happiness Guarantee</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='about' data-mixpanel-trigger='click' href='/about'>About</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='press' data-mixpanel-trigger='click' href='/press'>Press</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='careers' data-mixpanel-trigger='click' href='/careers'>Careers</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='blog' data-mixpanel-trigger='click' href='/blog'>Blog</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='help' data-mixpanel-trigger='click' href='/help'>Contact Us</a> </li> <br> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='apply' data-mixpanel-trigger='click' href='/apply?utm_source=home_footer'>Be a Professional</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='retail' data-mixpanel-trigger='click' href='/retail'>Retail Partnerships</a> </li> </ul> </nav> <nav class='cell grid-x small-4'> <ul class='menu vertical'> <li class='menu-text'>LOCATIONS</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_boston' data-mixpanel-trigger='click' href='/services/home-cleaning/boston'>Boston</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_chicago' data-mixpanel-trigger='click' href='/services/home-cleaning/chicago'>Chicago</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_london' data-mixpanel-trigger='click' href='/services/home-cleaning/london'>London</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_los_angeles' data-mixpanel-trigger='click' href='/services/home-cleaning/los-angeles'>Los Angeles</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_new_york' data-mixpanel-trigger='click' href='/services/home-cleaning/new-york'>New York</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_san_francisco' data-mixpanel-trigger='click' href='/services/home-cleaning/san-francisco'>San Francisco</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_toronto' data-mixpanel-trigger='click' href='/services/home-cleaning/toronto'>Toronto</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations_vancouver' data-mixpanel-trigger='click' href='/services/home-cleaning/vancouver'>Vancouver</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='locations' data-mixpanel-trigger='click' href='/locations'>See all locations</a> </li> <li id='locale'> <form action="/country_select" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="✓" /> <select name="request_country" id="request_country" onchange="this.form.submit()"><option selected="selected" value="US">United States</option> <option value="CA">Canada</option> <option value="GB">United Kingdom</option></select> </form> </li> </ul> </nav> <nav class='cell grid-x small-3'> <ul class='menu vertical'> <li class='menu-text'>POPULAR SERVICES</li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_home_cleaning' data-mixpanel-trigger='click' href='/services/home-cleaning'>Cleaning</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_handyman_service' data-mixpanel-trigger='click' href='/services/other-handyman-service'>Handyman</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='other_plumbing' data-mixpanel-trigger='click' href='/services/other-plumbing'>Plumbing</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_other_electrical' data-mixpanel-trigger='click' href='/services/other-electrical'>Electrical</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_moving_help' data-mixpanel-trigger='click' href='/services/moving-help'>Moving Help</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_painting' data-mixpanel-trigger='click' href='/services/painting'>Painting</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services_furniture_assembly' data-mixpanel-trigger='click' href='/services/furniture-assembly'>Furniture Assembly</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='services' data-mixpanel-trigger='click' href='/services'>See all services</a> </li> </ul> </nav> </div> <div class='cell grid-x footer__stores hide-for-small-only'> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/app-store-badge-4a71a8c7f185bad9ad8653a3267dafec0a9a649da7d5764c582fec70b8dc9f45.svg" data-alt="Download from Apple Store" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> <a href="https://handy.app.link/app"><img class="lazyload" data-src="https://cache-landingpages.services.handy.com/assets/play-store-badge-49e311a794277c754af75084413fbc788682c55ad83b651c681c99d6197c6bc1.svg" data-alt="Download from Google Play Market" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" /></a> </div> <div class='cell grid-x footer__social hide-for-small-only'> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='twitter' data-mixpanel-trigger='click' href='https://twitter.com/handy' target='_blank'> <i class='fab fa-twitter'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='facebook' data-mixpanel-trigger='click' href='https://facebook.com/handyhq' target='_blank'> <i class='fab fa-facebook'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='instagram' data-mixpanel-trigger='click' href='http://instagram.com/handy_hq' target='_blank'> <i class='fab fa-instagram'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='wikipedia' data-mixpanel-trigger='click' href='https://en.wikipedia.org/wiki/Handy_(company)' target='_blank'> <i class='fab fa-wikipedia-w'></i> </a> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='linkedin' data-mixpanel-trigger='click' href='https://www.linkedin.com/company/handyhq' target='_blank'> <i class='fab fa-linkedin'></i> </a> <a class='mixpanel fa-cb' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='crunchbase' data-mixpanel-trigger='click' href='https://crunchbase.com/organization/handybook' target='_blank'></a> </div> <div class='cell grid-x footer__interlinks'> <div class='cell grid-x headline'>Other Handy Services</div> <div class='cell grid-x medium-5'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/cleaning-service/near-me">best cleaning service near me</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/las-vegas">best cleaning services near las vegas</a> </li> <li> <a href="https://www.handy.com/services/cleaning-service/chicago">cleaning service in chicago</a> </li> </ul> </div> <div class='cell grid-x medium-4'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/home-cleaning/near-me">house cleaning near me</a> </li> <li> <a href="https://www.handy.com/services/home-cleaning/new-york">house cleaning services new york city</a> </li> <li> <a href="https://www.handy.com/services/housekeeping">housekeeping service</a> </li> </ul> </div> <div class='cell grid-x medium-3'> <ul class='menu vertical'> <li> <a href="https://www.handy.com/services/maid-service">maid service</a> </li> <li> <a href="https://www.handy.com/services/maid-service/near-me">maid service near me</a> </li> <li> <a href="https://www.handy.com/services/maid-service/new-york-city">new york city maids</a> </li> </ul> </div> </div> <div class='cell grid-x footer__lower-footer footer-term-links'> <div class='cell grid-x medium-shrink lower-menu'> <ul class='menu'> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='contact' data-mixpanel-trigger='click' href='/help'>Contact</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='privacy' data-mixpanel-trigger='click' href='/privacy'>Privacy</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='ccpa' data-mixpanel-trigger='click' href='/privacy#section5a'>CA Pre-Collection Notice</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='do_not_sell' data-mixpanel-trigger='click' href='/do_not_sell'>Do Not Sell or Share My Personal Information</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cookies' data-mixpanel-trigger='click' href='/cookies'>Cookies</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='terms' data-mixpanel-trigger='click' href='/terms'>Terms</a> </li> <li> <a class='mixpanel' data-mixpanel-event-context='footer_refinery' data-mixpanel-event='footer_cta' data-mixpanel-source='cancellation_policy' data-mixpanel-trigger='click' href='https://help.handy.com/hc/en-us/articles/215568487-What-s-the-cancellation-policy-'>Cancellation Policy</a> </li> </ul> </div> <div class='cell grid-x medium-auto align-right copy'> <div class='lower-attribution'> <span> 2025 Handy. All rights reserved. </span> <strong> Handy powered by Angi </strong> </div> </div> </div> </div> </div> </section> <!-- BEGIN TRACERS --> <!-- handy_request_trace_id=c45dc7608909962711f825af7be995ba --> <!-- handy_user_trace_id=CsocX2ezRgp3BQAHCr25Ag== --> <!-- END TRACERS --> </footer> </div> </div> </body> </html>