Bowmark AIdocs

Lovely Bride

Reads Lovely Bride's real per-store BridalLive appointment scheduler — every store, a store's real bookable appointment types and prices, and real open…

Reads Lovely Bride's real per-store BridalLive appointment scheduler — every store, a store's real bookable appointment types and prices, and real open time slots — straight off lovelybride.com and app.bridallive.com's own private JSON API, no key, no browser.

Domain: lovelybride.com

Also known as: Lovely Bride, lovelybride, lovelybride.com, LovelyBride

Call it directly

bowmark.providers.lovelybride.listStores(): Promise<LovelybrideStore[]>
bowmark.providers.lovelybride.getStoreAppointmentTypes(storeSlug: string): Promise<{ store: LovelybrideStoreInfo; appointmentTypes: LovelybrideAppointmentType[] }>
bowmark.providers.lovelybride.getAvailableSlots(storeSlug: string, appointmentTypeId: number, date: string): Promise<LovelybrideAvailability>

Functions

FunctionWhat it does
listStoresLists every Lovely Bride store the site's own store locator links — 19 across the US and one in London, each with the slug the other two functions take.
getStoreAppointmentTypesReads one store's real, currently-bookable BridalLive appointment types — each with its real price and duration exactly as the store's own scheduler quotes it — plus the store's contact…
getAvailableSlotsReads the real open appointment slots for one store, one appointment type, and one date ("YYYY-MM-DD") — the exact slots a shopper would see on the store's own scheduler page.

Types

interface LovelybrideStore {
  slug: string;   // e.g. "houston" — what the other two functions take
  name: string;   // e.g. "Houston"
  url: string;
}
interface LovelybrideAppointmentType {
  id: number;               // e.g. 66220 — what getAvailableSlots takes
  description: string;      // e.g. "1. Lovely Bridal Gown Appointment - $50 Fee"
  durationMinutes: number;  // e.g. 90
  priceUsd: number | null;
  priceFormatted: string | null;  // e.g. "$50.00"
  requiresPaymentInfo: boolean;
}
interface LovelybrideStoreInfo {
  name: string;
  emailAddress: string | null;
  phoneNumber: string | null;
  address: string | null;
  schedulerUrl: string;  // the BridalLive scheduler page — the write handoff
}
interface LovelybrideTimeSlot {
  startDateTime: string;    // ISO 8601
  endDateTime: string;      // ISO 8601
  startDateTimeForView: string;  // e.g. "10:00AM", store-local time
  location: string | null;  // e.g. "Room 2"
}
interface LovelybrideAvailability {
  storeSlug: string;
  date: string;              // echoes the requested "YYYY-MM-DD"
  slots: LovelybrideTimeSlot[];  // [] is a genuine "fully booked" answer
}