Bowmark AIdocs

Clean Air Lawn Care

Eco lawn-care franchise. checkServiceArea and getAvailableSlots are live — a zip-code area check against the real caw-estimate-widget backend, plus the…

Eco lawn-care franchise. checkServiceArea and getAvailableSlots are live — a zip-code area check against the real caw-estimate-widget backend, plus the real per-franchise computed availability calendar. submitEstimateRequest (the final CRM lead) is a stub — Broadcast stays read/compute-only here, handing off to the site's own widget instead.

Domain: cleanairlawncare.com

Also known as: Clean Air Lawn Care, cleanairlawncare.com, Clean Air

Call it directly

bowmark.providers.cleanairlawncare.checkServiceArea(args: object): Promise<CheckServiceAreaResult>
bowmark.providers.cleanairlawncare.getAvailableSlots(args: object): Promise<GetAvailableSlotsResult>

Functions

FunctionWhat it does
checkServiceAreaChecks a 5-digit US zip (zip) against Clean Air Lawn Care's live caw-estimate-widget backend — the same area lookup the site's own homepage widget runs — and returns whether it's in-area,…
getAvailableSlotsFor a zip (zip), runs the same area check as checkServiceArea and, when the resolved org has online scheduling enabled, returns the real candidate date/time slots computed from that org's…

Types

interface CleanAirEstimateAvailability {
  days_out: number;
  daily_cap: number;
  slot_minutes: number;
  recurring: Record<string, [string, string]>;
  overrides: Record<string, [string, string] | []>;
}

interface CleanAirOrg {
  id: string;
  name: string;
  brand_type: string;
  scheduling_enabled: boolean;
  estimate_availability: CleanAirEstimateAvailability | null;
}

interface CheckServiceAreaResult {
  zip: string;
  inServiceArea: boolean;
  org: CleanAirOrg | null;
  widgetUrl: string;
}

interface AvailableSlot {
  date: string;
  time: string;
}

interface GetAvailableSlotsResult {
  zip: string;
  inServiceArea: boolean;
  schedulingEnabled: boolean;
  org: CleanAirOrg | null;
  slots: AvailableSlot[];
  widgetUrl: string;
}