This grocery bag holder is a tall, open-mesh tube in warm coral cotton. It has a solid cream band at the top, a cream strap for hanging, and a round cream ring near the bottom where you pull the bags out. Two small cream daisies with yellow centers and two green leaves dress up the front.
The diamond mesh is quick to work, and it lets you see how many bags are left. The base is closed and solid, so nothing falls out. Bags go in at the top and come out through the ring on the front.
The finished holder measures about 5 in (12.7 cm) across when filled and 16.75 in (42.5 cm) tall from base to rim. Laid flat, it is 8 in (20.3 cm) wide. With the strap, it hangs about 21.75 in (55.2 cm) from the hook. This pattern uses US crochet terms.
Construction is simple. You crochet a flat single crochet base, turn the wall up, and work 20 rounds of chain mesh. The bag opening is built into Mesh Round 3. Then you add a cream band, a ring around the opening, a separate strap, and the appliqués.
Finished Size and Construction
- Finished size: 5 in (12.7 cm) diameter, 16.75 in (42.5 cm) tall; about 21.75 in (55.2 cm) total hanging length
- Skill level: Easy–Intermediate
- Terminology: US
- Yarn weight: worsted (#4) cotton
- Hook: 5.0 mm (US H-8)
- Number of pieces: 1 main holder, plus 1 strap, 2 flowers and 2 leaves sewn on
- Layout: one closed tube, worked in the round from the base up
- Base diameter: 5 in (12.7 cm); circumference 16 in (40.6 cm)
- Size before border: 15.25 in (38.7 cm) tall after Mesh Round 20
- Border (top band) depth: about 1.5 in (3.8 cm)
- Dispensing ring: 2.5 in (6.4 cm) opening, about 3.75 in (9.5 cm) outside
Materials
Use a smooth, firm 100% cotton or cotton blend in worsted weight. Cotton holds the mesh open and doesn’t stretch out much under the weight of the bags. Avoid splitty or very soft yarns, because the mesh will sag.
- Coral (main color): 100 g / 155 m (170 yd)
- Cream (band, ring, strap, petals): 50 g / 78 m (85 yd)
- Yellow (flower centers): 5 g / 8 m (9 yd)
- Green (leaves): 5 g / 8 m (9 yd)
Tools:
- 5.0 mm (US H-8) crochet hook
- Tapestry needle
- 4 stitch markers
- Scissors
- Measuring tape
- Blocking pins and spray bottle
- Optional: a wooden ring 2.5 in (6.4 cm) across for hanging
All yarn quantities include a margin of about 15% for gauge swatching and tension differences.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- BLO – back loop only
- MR – magic ring
- sk – skip
- st(s) – stitch(es)
Special stitch – mesh loop: a ch-5 that runs from one sc to the next sc. Each round, you place 1 sc into the center of every loop from the round before. This is what makes the diamond pattern.
Closing loop: at the end of each mesh round, work ch 2, dc in first sc. This takes the place of the last ch-5 and puts your hook at the center of that loop, ready for the next round. Every round starts with sc around this dc post.
Gauge and Checkpoints
Single crochet gauge: 16 sts x 18 rnds = 4 in (10.2 cm).
Mesh gauge: 4 loops = 4 in (10.2 cm) wide; 4 mesh rounds = 3 in (7.6 cm) tall, measured lightly stretched.
Test first. Work the base (Rounds 1–12) and Mesh Rounds 1–4 as your swatch. If the measurements match, keep going on the same piece.
Checkpoints:
- After Base Round 11: 5 in (12.7 cm) across, lying flat
- After Mesh Round 4: 3.25 in (8.3 cm) from the base edge
- After Mesh Round 12: 9.25 in (23.5 cm) from the base edge
- After Mesh Round 20: 15.25 in (38.7 cm) from the base edge
- After the top band: 16.75 in (42.5 cm)
If your base is too big, go down to a 4.5 mm hook. If it is too small, go up to a 5.5 mm hook. A base that cups means your stitches are too tight. A base that ruffles means they are too loose. If only the mesh height is off, add or remove mesh rounds in the middle. Don’t change the loop count.

Base (Coral)
Work in joined rounds. Join each round with a sl st to the first sc, and ch 1 to begin the next. The ch 1 doesn’t count as a stitch.
Rnd 1: MR, 6 sc in ring. (6 sts)
Rnd 2: 2 sc in each st around. (12 sts)
Rnd 3: [sc in next st, 2 sc in next st] 6 times. (18 sts)
Rnd 4: [sc in next 2 sts, 2 sc in next st] 6 times. (24 sts)
Rnd 5: [sc in next 3 sts, 2 sc in next st] 6 times. (30 sts)
Rnd 6: [sc in next 4 sts, 2 sc in next st] 6 times. (36 sts)
Rnd 7: [sc in next 5 sts, 2 sc in next st] 6 times. (42 sts)
Rnd 8: [sc in next 6 sts, 2 sc in next st] 6 times. (48 sts)
Rnd 9: [sc in next 7 sts, 2 sc in next st] 6 times. (54 sts)
Rnd 10: [sc in next 8 sts, 2 sc in next st] 6 times. (60 sts)
Rnd 11 (conversion): [sc in next 14 sts, 2 sc in next st] 4 times. 60 sts worked once each + 4 extra = 64 sts.
Checkpoint: the base should measure 5 in (12.7 cm) across.
Rnd 12 (turning round): sc in BLO of each st around. (64 sts)
The unworked front loops make a sharp fold so the wall can stand up. The new edge measures 16 in (40.6 cm) around, at 4 sts per inch.
Mesh Body (Coral)
Mesh Rnd 1: ch 1, sc in same st as join, [ch 5, sk 3 sts, sc in next st] 15 times, ch 2, sk last 3 sts, dc in first sc. (16 sc, 16 loops)
That’s 16 repeats of 4 sts each, which uses all 64 base stitches.
Mesh Rnd 2: ch 1, sc around dc post, [ch 5, sc in next ch-5 loop] 15 times, ch 2, dc in first sc. (16 sc, 16 loops)
Mesh Rnd 3 (window round): ch 1, sc around dc post, [ch 5, sc in next loop] 5 times, ch 20, sk next 3 loops, sc in next loop, [ch 5, sc in next loop] 6 times, ch 2, dc in first sc. (12 sc, 12 loops + one ch-20 bar)
Put a marker in each of the 3 skipped loops. The spot where you skip them becomes the front of the holder. The ch-20 bar spans the width of 4 normal loops (4 x 5 = 20 ch) and forms the top edge of the bag opening. The 3 skipped loops form the bottom edge.
Mesh Rnd 4 (restore round): ch 1, sc around dc post, [ch 5, sc in next loop] 5 times, [ch 5, sc into bar] 4 times, placing them in the 3rd, 8th, 13th and 18th ch of the bar, [ch 5, sc in next loop] 6 times, ch 2, dc in first sc. (16 sc, 16 loops)
That’s 1 + 5 + 4 + 6 = 16 sc, so the mesh is back to its full count. Checkpoint: 3.25 in (8.3 cm) from the base edge.
Mesh Rnds 5–19: repeat Mesh Rnd 2. (16 sc, 16 loops each round)
Checkpoint after Mesh Rnd 12: 9.25 in (23.5 cm).
Mesh Rnd 20: ch 1, sc around dc post, [ch 5, sc in next loop] 15 times, ch 5, sl st in first sc. (16 sc, 16 ch-5 loops)
The last round ends with a full ch-5 so the band has 16 complete loops to work into. Fasten off coral. Checkpoint: 15.25 in (38.7 cm).
Dispensing Ring (Cream)
The opening is about 4 in (10.2 cm) wide and 1 in (2.5 cm) tall to start. The ring gathers it into a circle and gives it a firm, rounded edge.
Ring Rnd 1: With the outside facing, join cream in the sc just after the bar. Ch 1, sc in same sc. Work 5 sc in each of the 3 skipped Round 2 loops, sc in the sc just before the bar, then sc in the underside of each of the 20 bar chains. Sl st to first sc. 15 + 2 + 20 = 37 sts.
Ring Rnd 2: ch 1, [sc in next 4 sts, sc2tog] 6 times, sc in last st. (31 sts)
Ring Rnd 3: ch 1, sc in each st around. (31 sts)
Ring Rnd 4: sl st loosely in each st around. (31 sts)
Fasten off and weave in the ends. At 4 sts per inch, 31 sts make an opening about 7.75 in (19.7 cm) around. That’s 2.5 in (6.4 cm) across. The ring sits about 1.75 in (4.4 cm) above the base edge.
Strap (Cream)
Row 1: ch 6, sc in 2nd ch from hook and each ch across. (5 sts)
Rows 2–63: ch 1, turn, sc in each st across. (5 sts)
Fasten off and leave a 12 in (30.5 cm) tail. The strap measures 1.25 in (3.2 cm) wide and 14 in (35.6 cm) long.
Large Flower
Rnd 1 (yellow): MR, 10 sc in ring, sl st to first sc. (10 sts) Fasten off.
Rnd 2 (cream): Join in any st. [In next st work (hdc, 3 dc, hdc), sl st in next st] 5 times. (5 petals)
This gives you 5 petals over 10 sts. The flower measures about 2.25 in (5.7 cm). Leave a long tail.
Small Flower
Rnd 1 (yellow): MR, 5 sc in ring, sl st to first sc. (5 sts) Fasten off.
Rnd 2 (cream): Join in any st. [In next st work (ch 2, 2 dc, ch 2, sl st)] 5 times. (5 petals)
The small flower measures about 1.5 in (3.8 cm).
Leaves (Make 2, Green)
Ch 9. Starting in the 2nd ch from hook: sc, hdc, dc, dc, dc, hdc, sc (7 sts). Work 3 sc in the last ch for the tip. Then work along the other side of the chain: sc, hdc, dc, dc, dc, hdc, sc (7 sts). Sl st to first sc. That’s 7 + 3 + 7 = 17 sts. Each leaf is about 2 in (5.1 cm) long.
Border: Top Band (Cream)
Border gauge: 16 sc = 4 in (10.2 cm), the same as the base.
Band Rnd 1 (conversion): Join cream in any mesh sc of Rnd 20. Ch 1, sc in same st, 3 sc in next ch-5 loop, [sc in next sc, 3 sc in next loop] 15 times, sl st to first sc. 16 sts worked 1 per mesh sc + 48 sts worked into the loops = 64 sts.
Band Rnds 2–7: ch 1, sc in each st around, sl st to first sc. (64 sts)
Laid flat, the band has 32 sts across the front and 32 across the back.
Why the math works: 64 sts at 4 sts per inch is 16 in (40.6 cm). That matches the 64-st base and the 16 mesh loops at 1 in (2.5 cm) each. The band sits straight and doesn’t flare or pull in. Seven rounds give about 1.5 in (3.8 cm) of depth. Fasten off.
Attach the Strap and Appliqués
Place 2 markers at the sides of the band, 32 sts apart, with the ring centered on the front. Lay each strap end inside the band at a marker, overlapping 1.5 in (3.8 cm). Whipstitch it securely around all 4 edges. That leaves 11 in (27.9 cm) of free strap, which rises about 5 in (12.7 cm) above the rim.
Sew the large flower about 3 in (7.6 cm) above the ring, slightly left of center. Tuck one leaf under its upper left edge and one under its lower left edge, then stitch through the mesh crossings. Sew the small flower about 2 in (5.1 cm) below the band, slightly right of center.
Final Blocking
- Mist the whole holder with water until it is damp but not dripping.
- Slide a rolled towel or a 5 in (12.7 cm) cylinder inside the tube.
- Ease the mesh evenly so the diamonds line up in straight vertical columns.
- Shape the ring into a circle and pin it open around a 2.5 in (6.4 cm) form.
- Press the base flat and pin the petals and leaves into shape.
- Let it dry completely, then measure: 5 in (12.7 cm) across and 16.75 in (42.5 cm) tall.
Final Quality-Control Checklist
- Base is flat, 64 sts around, 5 in (12.7 cm) across
- Every mesh round has 16 loops, except Mesh Rnd 3 (12 loops + bar)
- Diamonds stack evenly with no twist in the columns
- Ring is round, firm and centered on the front
- Band has 64 sts and lies straight
- Strap ends are sewn securely and sit opposite each other
- Appliqués are stitched at several points and don’t flap
- All ends are woven in
Troubleshooting
- Mesh columns twist into a spiral: You are missing the closing loop. Always finish with ch 2, dc in first sc, and always start with sc around the dc post.
- Base cups upward: Your tension is too tight. Go up a hook size for the base.
- Ring opening is too tight: In Ring Rnd 2, work only 5 sc2tog for 32 sts.
- Ring ripples: Work Ring Rnd 4 a little tighter.
- Band flares: Go down one hook size for the band.
- Strap stretches: Add a row of sl st along both long edges.
Care
Hand wash in cool water and lay flat to dry, reshaping the ring and mesh while damp. Don’t tumble dry, because the mesh may stretch.

Final Notes
Everything follows from one chain of measurements. You work 16 sc per 4 in (10.2 cm) to get a 64-st base, 5 in (12.7 cm) across and 16 in (40.6 cm) around. That divides into 16 mesh loops of 1 in (2.5 cm) each. Then 20 mesh rounds at 0.75 in (1.9 cm) each add 15 in (38.1 cm). The 64-st band brings the holder to 16.75 in (42.5 cm), and the 14 in (35.6 cm) strap finishes the hang. Check each step as you go, and the holder will come out at the right size.
Happy crocheting!