This two-tier hanging basket gives a bathroom, entryway, or craft corner a calm, natural look. Two oval baskets hang one above the other from a single wall hook. The smaller top basket holds bottles, tubes, and a brush. The larger bottom basket fits two standard toilet paper rolls side by side.
The sample uses one olive green bulky cotton cord. The walls are a grid of open square windows divided by narrow solid bands, so you can see what is inside while the basket keeps its shape.
All instructions use US crochet terms. Hanging from the hook, the whole unit is about 22 in (55.9 cm) tall. The upper basket is about 9.5 in (24.1 cm) long and 5.25 in (13.3 cm) tall. The lower basket is about 12 in (30.5 cm) long and 6.5 in (16.5 cm) tall.
Each basket starts as a single crochet oval worked around a foundation chain. A back-loop round turns the wall up, an increase round shapes the belly, and the mesh rounds follow. A decrease round draws the rim in, eyelets hold the dowel, and reverse single crochet finishes the edge. Three slip stitch cords connect everything.
Finished Size and Construction
- Finished size (hanging): about 22 in (55.9 cm) tall, 14 in (35.6 cm) wide at the lower dowel
- Skill level: Intermediate
- Terminology: US crochet terms
- Yarn weight: Bulky (#5) cotton or cotton-blend cord
- Hook: 6.0 mm (US J-10)
- Number of pieces: 5 crocheted pieces (2 baskets, 3 cords) plus 2 dowels
- Layout: 1 column, 2 tiers (upper basket over lower basket)
- Piece size: upper basket 9.5 x 4.5 in (24.1 x 11.4 cm), 5.25 in (13.3 cm) tall; lower basket 12 x 6 in (30.5 x 15.2 cm), 6.5 in (16.5 cm) tall
- Size before border: upper 5 in (12.7 cm) tall; lower 6.25 in (15.9 cm) tall
- Border depth: 0.25 in (0.6 cm), one round of reverse single crochet
Materials
Choose a firm, smooth bulky cotton or cotton-blend cord of about 110 m per 100 g. Cotton holds the oval shape, copes with bathroom humidity, and shows the mesh windows clearly. Avoid soft acrylic, because the baskets will sag under weight.
Yarn (one color):
– Olive green: 550 g total (about 605 m)
– Upper basket: 200 g (about 220 m)
– Lower basket: 300 g (about 330 m)
– Cords: 50 g (about 55 m)
These quantities include a margin of about 20 percent for gauge differences and a test swatch.
Tools and notions:
– 6.0 mm (US J-10) crochet hook
– 1 wooden dowel, 12 in (30.5 cm) long, 0.5 in (1.3 cm) diameter
– 1 wooden dowel, 14 in (35.6 cm) long, 0.5 in (1.3 cm) diameter
– 1 sturdy wall hook
– 2 locking stitch markers
– Tapestry needle
– Scissors and tape measure
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together (decrease)
- inc – 2 sc in the same stitch
- BLO – back loop only
- rev sc – reverse single crochet
- sk – skip
- sp – space
- st(s) – stitch(es)
- rnd(s) – round(s)
- rep – repeat
Reverse single crochet (rev sc): Working left to right (if you are right-handed), insert the hook in the next stitch to the right, yarn over, pull up a loop, yarn over, and pull through both loops. This makes a twisted, corded edge.
Back-bump slip stitch: Insert the hook under the bump on the back of the chain only, then slip stitch.
Gauge and Checkpoints
Gauge: 12 sc and 13 sc rnds = 4 in (10.2 cm). In the mesh, 12 sts = 4 in (10.2 cm) and 7 dc rnds = 4 in (10.2 cm).
Make the upper basket first. It is smaller, so it doubles as your gauge test.
Checkpoints:
– Upper base after Rnd 6: about 8 x 4 in (20.3 x 10.2 cm)
– Lower base after Rnd 8: about 10.5 x 5 in (26.7 x 12.7 cm)
– Wall after the three solid rounds above the base: about 1 in (2.5 cm)
– Upper mesh (5 rnds): about 2.75 in (7.0 cm); lower mesh (7 rnds): about 4 in (10.2 cm)
If your base is too big or it ruffles, switch to a 5.5 mm hook. If it is too small or it cups up before the wall starts, switch to a 6.5 mm hook. Don’t change the stitch counts, because the mesh repeat depends on them.

Upper Basket
Join every round with a sl st to the first st. The beginning ch 1 does not count as a st. A beginning ch 3 counts as 1 dc.
Base
Ch 15.
Rnd 1: 3 sc in 2nd ch from hook, sc in next 12 ch, 3 sc in last ch. Rotate and work along the other side of the chain: sc in next 12 ch. Join. (30 sts: 3 end + 12 side + 3 end + 12 side)
Rnd 2: Ch 1, [inc in next 3 sts, sc in next 12 sts] twice. Join. (36 sts)
Rnds 3–6: Ch 1, [(sc in next N sts, inc) 3 times, sc in next 12 sts] twice. Join. N = 1, 2, 3, 4 on Rnds 3, 4, 5, 6. (Rnd 3: 42 sts; Rnd 4: 48 sts; Rnd 5: 54 sts; Rnd 6: 60 sts)
Wall
Rnd 7: Ch 1, sc BLO in each st around. Join. (60 sts) This makes the crisp ridge where the wall turns up.
Rnd 8 (belly increase): Ch 1, [sc in next 5 sts, inc] 10 times. Join. (70 sts: 60 worked + 10 added)
Rnd 9: Ch 1, sc in each st around. Join. (70 sts)
Rnd 10 (first mesh round): Ch 3 (counts as dc), [ch 1, sk next st, dc in next st] 4 times, dc in next st, dc in next st, [ch 1, sk next st, dc in next st] 4 times, dc in next st; rep from * 5 more times. Join to top of ch-3. (70 sts: 42 dc + 28 ch-1 sps, 7 repeats of 10)*
Each repeat makes four windows. The last 2 dc of one repeat and the first dc of the next form a solid band 3 dc wide.
Rnds 11–14: Ch 3 (counts as dc), [ch 1, sk next ch-1 sp, dc in next dc] 4 times, dc in next dc, dc in next dc, [ch 1, sk next ch-1 sp, dc in next dc] 4 times, dc in next dc; rep from * 5 more times. Join. (70 sts per rnd)*
The windows and bands stack straight up, giving 5 rows of windows.
Rnd 15 (conversion): Ch 1, sc in each dc and in each ch-1 sp around. Join. (70 sts: 42 sc in dc + 28 sc in sps)
Rnd 16 (rim decrease): Ch 1, [sc in next 5 sts, sc2tog] 10 times. Join. (60 sts) This draws the rim in above the belly.
Rnd 17: Ch 1, sc in each st around. Join. (60 sts)
Rnd 18 (eyelets): Flatten the basket and choose which long side is the back. On the back wall, place a marker about 1 in (2.5 cm) in from the left fold. Ch 1, sc in each st to the marked st, ch 2, sk 2 sts (the marked st and the next), sc in next 16 sts, ch 2, sk 2 sts, sc in each remaining st. Join. (60 sts: 56 sc + 2 ch-2 sps of 2)
Before the border, the basket is 5 in (12.7 cm) tall.
Lower Basket
Work as for the upper basket, with a longer base and more mesh.
Ch 19.
Rnd 1: 3 sc in 2nd ch from hook, sc in next 16 ch, 3 sc in last ch; along the other side, sc in next 16 ch. Join. (38 sts)
Rnds 2–8: Ch 1, [(sc in next N sts, inc) 3 times, sc in next 16 sts] twice. Join. On Rnd 2, N = 0 (inc in next 3 sts); on Rnds 3–8, N = 1, 2, 3, 4, 5, 6. Each round adds 6 sts. (Rnd 2: 44 sts; Rnd 3: 50; Rnd 4: 56; Rnd 5: 62; Rnd 6: 68; Rnd 7: 74; Rnd 8: 80)
Rnd 9: Ch 1, sc BLO in each st around. Join. (80 sts)
Rnd 10 (belly increase): Ch 1, [sc in next 7 sts, inc] 10 times. Join. (90 sts: 80 worked + 10 added)
Rnd 11: Ch 1, sc in each st around. Join. (90 sts)
Rnd 12: Work as upper Rnd 10, but rep from * 7 more times. (90 sts: 54 dc + 36 ch-1 sps, 9 repeats of 10)
Rnds 13–18: Work as upper Rnds 11–14, but rep from * 7 more times. (90 sts per rnd; 7 rows of windows)
Rnd 19 (conversion): Ch 1, sc in each dc and each ch-1 sp. Join. (90 sts: 54 + 36)
Rnd 20 (rim decrease): Ch 1, [sc in next 7 sts, sc2tog] 10 times. Join. (80 sts)
Rnd 21: Ch 1, sc in each st around. Join. (80 sts)
Rnd 22 (eyelets): Mark the back as before. Ch 1, sc to marked st, ch 2, sk 2, sc in next 22 sts, ch 2, sk 2, sc in each remaining st. Join. (80 sts: 76 sc + 2 ch-2 sps of 2)
Before the border, the basket is 6.25 in (15.9 cm) tall.
Cords
Top hanging cord: Ch 72, about 24 in (61.0 cm). Sl st in the back bump of the 2nd ch from hook and in each ch across. (71 sl sts) Fasten off, leaving a 12 in (30.5 cm) tail at each end.
Connecting cords (make 2): Ch 30, about 10 in (25.4 cm). Sl st in the back bump of the 2nd ch from hook and in each ch across. (29 sl sts) Fasten off, leaving a 12 in (30.5 cm) tail at each end.
Make All Pieces
All pieces are olive green: 1 upper basket, 1 lower basket, 1 top hanging cord, and 2 connecting cords.
Layout (front view):
[ wall hook ]
/ \
top cord top cord
/ \
o==[ UPPER BASKET 9.5 in ]==o <- 12 in dowel
| |
connecting connecting
cord cord
| |
o===[ LOWER BASKET 12 in ]=====o <- 14 in dowel
Joining
Thread the dowels. Push the 12 in (30.5 cm) dowel in through the first upper eyelet from the outside, run it along the inside of the back wall, and bring it out through the second eyelet. Center it so both ends stick out equally. Repeat with the 14 in (35.6 cm) dowel and the lower basket.
Attach the top cord. Wrap one end of the cord around the upper dowel about 1 in (2.5 cm) from its tip, folding back 1.5 in (3.8 cm) of cord. Whipstitch with the tail through both layers, one stitch for each of the 4–5 sl sts in the overlap. Matching stitch to stitch keeps the join flat. Repeat at the other end.
Attach the connecting cords. Wrap the top of each connecting cord around the upper dowel just outside the top cord’s wrap and stitch it the same way. Wrap and stitch the bottom end around the lower dowel about 1 in (2.5 cm) from its tip.
Tension: Pull each whipstitch snug, but not so tight that the cord bunches. Keep all wraps the same width so both baskets hang level.
Size checkpoint: Hang the unit. You should see about 7 in (17.8 cm) of cord between the dowels, and the unit should measure about 22 in (55.9 cm) from hook to bottom. If a basket tips, re-wrap the cord on the low side.
Border
The border is one round of rev sc, worked 1 per st. It adds 0.25 in (0.6 cm) of height.
Upper Rnd 19: Ch 1, rev sc in each sc and 2 rev sc in each ch-2 sp. Join and fasten off. (60 sts) By section: 16 along the back between the eyelets, 2 over each eyelet, and 40 around the front and both ends. 16 + 2 + 2 + 40 = 60.
Lower Rnd 23: Work the same way. (80 sts) By section: 22 along the back, 2 over each eyelet, and 54 around the front and ends. 22 + 2 + 2 + 54 = 80.
Why the math works: Each ch-2 eyelet stands in for 2 sts and gets 2 rev sc, and every sc gets 1. Nothing is added or lost, so the border matches the 60 and 80 sts of the decrease rounds. The rim stays drawn in and does not ruffle or tighten.
Final Blocking
- Take out the dowels.
- Mist each basket until it is damp, not soaked.
- Fill each basket firmly with rolled towels to round out the belly.
- Press the base flat so the BLO ridge stays crisp.
- Line up the solid bands so they run straight up.
- Let the baskets dry completely, about 24 hours.
- Put the dowels back and hang the unit.
Final Quality-Control Checklist
- Bases: 8 x 4 in (20.3 x 10.2 cm) and 10.5 x 5 in (26.7 x 12.7 cm)
- Rim counts: 60 (upper) and 80 (lower)
- 4 windows per section, with 3-dc solid bands between sections
- 5 window rows (upper) and 7 (lower)
- Eyelets on the back wall, 16 and 22 sts apart
- Dowels centered, cord wraps all the same width
- Both baskets hang level
Troubleshooting
Base cups like a bowl: Your tension is too tight. Go up a hook size.
Base ruffles: Your tension is too loose. Go down a hook size.
Solid bands lean: A dc is missing or in the wrong place. Count 10 sts per repeat on every mesh round.
Windows slant: Work each dc into the top of the dc below it.
Rim flares: Recheck the decrease round count, and keep your rev sc tension even.
Dowel slides: Wrap the cord more tightly, or put a dot of glue under each wrap.
Care
Take out the dowels first. Hand wash in cool water, reshape over a towel, and air dry flat.

Final Notes
The measurement chain is short. Match the gauge of 12 sc = 4 in (10.2 cm), check the 8 x 4 in (20.3 x 10.2 cm) and 10.5 x 5 in (26.7 x 12.7 cm) bases, and keep 10 sts in every mesh repeat. The rims will then close at 60 and 80 sts and finish 5.25 in (13.3 cm) and 6.5 in (16.5 cm) tall. Check the 7 in (17.8 cm) cord span before you hang it for good, and the whole unit will measure about 22 in (55.9 cm).
Happy crocheting!