Overview

Simple private breakfast nikah · her side first · 7:00–11:00AM · RM5k–7.5k
Feasibility
Critical blockers
Budget band
RM5k–7.5k
Core est. (RM)

Feasibility verdict 6-week recommended

Loading…

Current focus (this week's blockers)

    Role split shine

    DomainLeadWhy it shines
    Wali & family bridgeShaRelational trust, soft invitation
    Kadi / pejabat slot, witnessesRStructural gatekeeping
    Hall contract, budget capRProvider frame, money discipline
    Catering, invites, decor, attire, MUAShaBeauty, hospitality, atmosphere
    Photographer + timelineRExecution ownership, holds the frame

    Budget guardrail

    Lean core range (RM)
    3,860 – 6,760
    10% reserve recommended on top of the core. Sheet values (if populated) reconcile against this in the Budget tab.

    Critical checklist synced with “4-6-week plan” sheet

    Blocker High Med Low · Lead: Sha R Both
    #ItemCritLeadBudget (RM)TimeBySourceLocal status
    Local status is a personal triage overlay only — it does not write to the Google Sheet. Edit the 4-6-week plan tab in the Sheet to change the critical path; it syncs here.

    Plan selector

    Lean core min (RM)
    3,860
    Lean core max (RM)
    6,760
    +10% reserve (RM)
    676

    Budget lines her side · core

    CategoryMinMaxNotes

    Sheet budget synced with “Budget” sheet

    CategoryMin (RM)Max (RM)Notes

    Venue acceptance test

    CheckWhy
    Authority to host nikahMasjid/pejabat must be licensed for akad
    Capacity ≥ 80 (elderly seating)Enough room; elders first-row / easy access
    7–11AM accessBreakfast window only
    Drop-off + parkingElderly guests
    Toilets + prayer/ablutionWudhu for guests & officers
    Weather backupIf any outdoor element

    Seating & tables

    Elderly (green) seated first-row / easy access; family (amber) near; couple + VIP (purple) front. 8 per table.
    Elderly Family Couple/VIP

    Guest list synced with “kahwin-guest” sheet

    Guests
    Goody bag
    Groups
    GroupNameGoody bagStatusKey personNotes

    Vendor decision board

    CategoryLeadBudget (RM)Decision
    Venue (small hall / masjid bilik nikah)R1,000–1,500 (mosque often ≤500)Survey daerah via JAIS portal; confirm 80-cap
    Catering (breakfast, 80×RM12)Sha960Pick menu; no tasting needed at fixed cap
    PhotographerR800–1,500R briefs: morning light, candid, 7–11
    Attire (both, simple)Sha300–800Simple; no extra outfit changes
    Mas kahwin + hantaranBoth300–600Symbolic
    Decor / moodSha200–500Optional by default
    MUASha300–600Included
    No contacts or quotes are invented. Populate real vendor rows + [VERIFY] status in the Sheet's kahwin / kahwin-master tabs.

    Google Calendar adaptation read-only

    Not connected Not connected
    On Cloudflare / any device: click Connect my Calendar (uses the Web client ID in Settings) and Connect Razlan (he logs in with his own Google account). Both merge into one view — his events tagged [R]. Locally: if calendar-proxy.py is running on your Mac, Connect my Calendar uses it automatically (no login). Read-only (scope calendar.readonly) — never creates or edits events.

    Suggested slots for checklist auto · merged calendar

    Connect a calendar to auto-suggest time slots for the critical checklist and flag clashes.
    Checklist itemEst. timeSuggested slotCalendar in that week

    Detected changes

    Connect a calendar to see event deltas.

    Capacity-aware suggestion

    No calendar signal yet.

    Dashboard → Sheet mapping

    Live Sheet rows 0

    Dashboard tabSheetRowCategory / groupTask / nameStatusKey personBudgetNotes

    Detected changes (added / updated / deleted)

    LLM agent desk copy-only

    Copy any prompt into an LLM you trust. Boundary: the agent can surface, estimate and draft — Sha + R decide, send, book and commit.
    Select a prompt above.

    How to use Kahwin Berkat README

    1 · Run locally

    cd kahwinberkat
    python3 -m http.server 4173
    # open http://localhost:4173/
    Opening index.html directly may block Google requests (CORS). Keep the server running.

    2 · Connect your Google Sheet

    • Sheet is already wired (ID 1qjRwzVgZjnKr2x36VV2gSWUc1nDoNE2ZM_vjr1S1H-o).
    • Dashboard tabs map to Sheet tabs: Critical checklist → “4-6-week plan”, Budget → “Budget”, Venues & tables → “kahwin-guest” (guest list), plus kahwin + kahwin-master for vendor/task rows.
    • Share the Sheet as Anyone with the link → Viewer so the browser can read it.
    • Click Sync now — rows load; the Sheet sync log shows added / edited / updated / deleted.

    3 · Connect your Calendar (no OAuth needed locally)

    • In this folder, run the proxy that reads your existing Google token:
      python3 calendar-proxy.py
      # serves http://localhost:8787
    • In Settings, confirm Local calendar proxy = http://localhost:8787 and Your Calendar ID = primary.
    • On the Calendar tab, click Connect Calendar → it reads your calendar with no browser login, then suggests checklist slots and flags clashes.

    4 · Add Razlan's calendar (Option A)

    • Razlan shares his Google Calendar with your Google account (Google Calendar → share → your email, at least "See all event details").
    • In Settings, paste his calendar ID into Razlan's shared Calendar ID.
    • Click Connect / Check now — both calendars merge into one view; his events are prefixed [R].
    • Read-only. Nothing is written back to either calendar.

    5 · Tabs

    Overview (feasibility + budget guardrail) · Critical checklist (P1→P4, synced to “4-6-week plan”) · 4/6-week plan (Sha soul vs R bones) · Budget (core vs “Budget” sheet) · Venues & tables (seating + guest list from “kahwin-guest”) · Calendar adaptation (suggested slots + clashes) · Sheet sync log (mapping + changes) · LLM agent desk · Settings.

    6 · Privacy & limits

    • Your Google OAuth token stays on your Mac (read by the proxy). The dashboard never stores it.
    • Browser OAuth (fallback) needs a Google Web client ID in Settings — not the Desktop client.
    • The Sheet is the shared source of truth; local status checkboxes are a personal overlay only.
    • This is a planning scaffold, not legal advice. Verify wali / witnesses / forms / fees / certificate with the authorised pejabat (JAWI/JAIN/JAIS/kadi).

    Settings

    Drives the Plan tab + feasibility verdict.
    Leave blank for relative-week mode. Set only after Sha + R choose.
    How often to re-fetch the mapped Sheet tabs.
    Only if direct gviz calls are blocked by CORS.
    Runs calendar-proxy.py on your Mac, reads your token. Leave blank to use browser OAuth instead.
    Defaults to primary. Used by the local proxy.
    Razlan shares his Google Calendar with your account; paste his calendar ID. Read via the same proxy.
    Only if NOT using the local proxy (e.g. public URL on another machine). Web client ID, not a secret.

    Local data

    Status overlays + sync metadata live in browser localStorage. The Sheet is never written by this dashboard.