This little drawstring bag is made for small surprises. A firm oval base gives it a flat bottom, an open diamond lattice shows off wrapped candies, and a frilly scalloped ruffle finishes the top. A slim cord with tiny tassels cinches the bag closed, and a long loop lets you hang it from a garland, a tree branch, or a door handle.
The sample is shown in soft lavender and in creamy off-white. Both colors look lovely with red and gold candy wrappers inside. Make one in each color, or make a whole row of them for an advent display or party favors.
This pattern uses US crochet terms. The finished bag measures about 3.6 in (9.1 cm) wide when laid flat and 4.75 in (12.1 cm) tall including the ruffle. The base measures about 2.75 in × 1.5 in (7.0 cm × 3.8 cm).
The bag is worked in one piece, in joined rounds, from the bottom up. You start with an oval single crochet base, work straight up through a solid band, an open chain-loop lattice, and an eyelet band, then finish with a two-round ruffle. You add the drawstring, the hanging loop, and the mini tassels at the end.
Finished Size and Construction
- Finished size: 3.6 in (9.1 cm) wide flat × 4.75 in (12.1 cm) tall
- Skill level: Easy / advanced beginner
- Terminology: US crochet terms
- Yarn weight: DK (light, #3), cotton or cotton blend
- Hook: 3.5 mm (E-4)
- Number of pieces: 1 bag, plus 1 drawstring, 1 hanging loop, and 2 mini tassels
- Layout: Single bag worked in the round from the base up
- Base size: 2.75 in × 1.5 in (7.0 cm × 3.8 cm), 36 stitches around
- Size before ruffle: 3.6 in (9.1 cm) wide × 4 in (10.2 cm) tall
- Ruffle depth: 0.75 in (1.9 cm)
Materials
Choose a smooth, mercerized or matte DK cotton. Cotton holds the lattice open and keeps the ruffle crisp. Acrylic also works, but the mesh will be softer and stretchier.
Yarn, per bag (choose one color):
- Color A, Lavender: 20 g (about 46 m)
- Color B, Cream: 20 g (about 46 m)
These amounts cover the bag, the drawstring, the hanging loop, and both tassels, and they include a small safety margin.
Tools:
- 3.5 mm (E-4) crochet hook
- Locking stitch marker
- Tapestry needle
- Scissors
- Small piece of cardboard, 1.25 in (3.2 cm) wide, for tassels
- Pins and a spray bottle for blocking
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- BLO – back loop only
- st(s) – stitch(es)
- sp – space
- sk – skip
- beg – beginning
- rep – repeat
Special stitch: Scallop. Work (5 dc) in the same stitch.
Note: The ch 1 at the start of a round never counts as a stitch. The beg ch 3 or ch 4 does count where stated.
Gauge and Checkpoints
Gauge: 20 sc × 22 rounds = 4 in (10.2 cm) in the round.
Gauge matters here because the lattice and the eyelet band both rely on a round of exactly 36 stitches. Make the base first and measure it before you commit to the whole bag.
Checkpoints:
- After Round 4 (base): The oval measures 2.75 in × 1.5 in (7.0 cm × 3.8 cm), with 36 sts.
- After Round 8 (solid band): The wall is 0.75 in (1.9 cm) tall. The flattened width is 3.6 in (9.1 cm).
- After Round 14 (lattice): The lattice section is 2.25 in (5.7 cm) tall.
- After Round 18 (eyelet band): The bag is 4 in (10.2 cm) tall.
- After Round 20 (ruffle): The bag is 4.75 in (12.1 cm) tall.
If your base is too big, go down one hook size (3.25 mm). If it is too small or feels stiff, go up to 3.75 mm. Don’t change the stitch counts, because every section depends on 36 stitches.

Pattern
Base (worked in rounds)
Foundation: Ch 9. The chain should measure about 1.6 in (4.1 cm).
Round 1: Sc in the 2nd ch from the hook and in the next 6 ch, 3 sc in the last ch. Rotate to work along the other side of the chain. Sc in the next 6 ch, then work 2 sc in the same ch as the first sc. Sl st to the first sc. (18 sts)
Each end now has 3 sts and each long side has 6 sts. Place a marker in the first st of each round.
Round 2: Ch 1, 2 sc in the first st, sc in the next 6 sts, 2 sc in each of the next 3 sts, sc in the next 6 sts, 2 sc in each of the last 2 sts. Sl st to the first sc. (24 sts)
Round 3: Ch 1, sc in the next st, 2 sc in the next st, sc in the next 6 sts, [sc in the next st, 2 sc in the next st] 3 times, sc in the next 6 sts, [sc in the next st, 2 sc in the next st] 2 times. Sl st to the first sc. (30 sts)
Round 4: Ch 1, sc in the next 2 sts, 2 sc in the next st, sc in the next 6 sts, [sc in the next 2 sts, 2 sc in the next st] 3 times, sc in the next 6 sts, [sc in the next 2 sts, 2 sc in the next st] 2 times. Sl st to the first sc. (36 sts)
Each round adds 6 stitches, all on the curved ends, so the long sides stay straight and the base stays oval. Check that your base measures 2.75 in × 1.5 in (7.0 cm × 3.8 cm) and lies flat.
Solid Bottom Band
Round 5: Ch 1, sc in the BLO of each st around. Sl st to the first sc. (36 sts)
Working in the back loops leaves a neat ridge where the base turns up into the wall.
Rounds 6–8: Ch 1, sc in each st around. Sl st to the first sc. (36 sts)
Checkpoint: The wall is 0.75 in (1.9 cm) tall, and the bag measures 3.6 in (9.1 cm) wide when flattened.
Diamond Lattice
The lattice is a net of ch-5 loops. Each round anchors one sc in the center of each loop below it, which forms the diamonds.
Round 9: Ch 1, sc in the first st, [ch 5, sk 2 sts, sc in the next st] 11 times, ch 2, sk 2 sts, dc in the first sc. (12 loops)
The ch 2 plus the dc forms the 12th loop and leaves your hook at the center of that loop, ready for the next round. The math: 1 sc + (11 × 3 sts) + 2 skipped sts = 36 sts used.
Rounds 10–13: Ch 1, sc around the post of the dc just made, [ch 5, sc in the next ch-5 sp] 11 times, ch 2, dc in the first sc. (12 loops in each round)
Round 14: Ch 1, sc around the post of the dc just made, [ch 5, sc in the next ch-5 sp] 11 times, ch 5, sl st to the first sc. (12 full ch-5 loops)
This last lattice round closes with a full ch 5 instead of ch 2 and dc, so all 12 loops are the same size for the next round.
Checkpoint: The lattice measures 2.25 in (5.7 cm) tall when gently stretched lengthwise.
Eyelet Band
Round 15 (conversion round): Sl st into the first ch-5 sp, ch 1, 3 sc in the same sp, 3 sc in each remaining ch-5 sp around. Sl st to the first sc. (12 loops × 3 sc = 36 sts, with 0 extra)
Round 16: Ch 1, sc in each st around. Sl st to the first sc. (36 sts)
Round 17 (eyelets): Ch 4 (counts as dc + ch 1), sk the next st, [dc in the next st, ch 1, sk the next st] 17 times. Sl st to the 3rd ch of the beg ch-4. (18 dc + 18 ch-1 sps = 36 sts)
Round 18: Ch 1, sc in the same st, sc in the next ch-1 sp, [sc in the next dc, sc in the next ch-1 sp] 17 times. Sl st to the first sc. (36 sts)
The 18 eyelets stay open as small holes between the dc posts. That’s where the drawstring goes.
Checkpoint: The bag is 4 in (10.2 cm) tall and 3.6 in (9.1 cm) wide when flattened.
Border
The ruffle is the bag’s border.
Border gauge: The two ruffle rounds add 0.75 in (1.9 cm) of height. Laid flat, each side of the bag (front and back) has 18 sts going into the ruffle.
Round 19 (conversion round): Ch 3 (counts as dc), dc in the same st, 2 dc in each st around. Sl st to the top of the beg ch-3. (36 sts worked into + 36 extra = 72 sts; 36 per flattened side)
Round 20 (scallops): Ch 1, sc in the first st, [sk 1 st, 5 dc in the next st, sk 1 st, sc in the next st] 17 times, sk 1 st, 5 dc in the next st, sk 1 st. Sl st to the first sc. (18 scallops; 18 sc + 90 dc = 108 sts; 9 scallops per flattened side) Fasten off and weave in the ends.
Why the math works: Each scallop repeat uses exactly 4 stitches, and 72 ÷ 4 = 18 repeats with nothing left over. Doubling the stitches in Round 19 makes the fabric too long for its edge, so it ripples into a ruffle. The 5-dc scallops then fan each ripple out. Since 18 is even, you get 9 scallops on the front and 9 on the back.
Drawstring
Ch 75. Starting in the 2nd ch from the hook, sl st in the back bump of each ch across. Fasten off. (74 sl sts) The cord measures about 15 in (38.1 cm).
Thread the cord onto a tapestry needle. Start at one side of the bag and weave it in and out through all 18 eyelets of Round 17, so both ends come out of neighboring eyelets on the same side.
Hanging Loop
Ch 45. Starting in the 2nd ch from the hook, sl st in the back bump of each ch across. Fasten off, leaving a 6 in (15.2 cm) tail. (44 sl sts) The cord measures about 9 in (22.9 cm).
Sew one end to the inside of Round 16 at the left side fold. Sew the other end to Round 16 at the right side fold. The loop then rises about 4 in (10.2 cm) above the ruffle.
Mini Tassels (make 2)
- Wrap the yarn 10 times around the 1.25 in (3.2 cm) cardboard.
- Tie the top of the bundle with a short strand.
- Cut the bottom loops.
- Wrap a strand tightly around the bundle 0.5 in (1.3 cm) below the top and knot it.
- Trim the tassel to 1 in (2.5 cm).
Tie one tassel to each end of the drawstring.
Final Blocking
- Lightly mist the bag with water until it is damp but not wet.
- Stuff it firmly with a rolled washcloth or a small plastic bag of rice. This opens the lattice evenly.
- Shape the base so it sits flat and oval, 2.75 in × 1.5 in (7.0 cm × 3.8 cm).
- Line up the diamonds vertically so the loops don’t spiral.
- Fan the ruffle outward and pin each scallop open on a foam board, or pinch them into shape by hand.
- Let it dry completely, then remove the stuffing.
- Fill the bag with treats, pull the drawstring until the opening is about 1.75 in (4.4 cm) wide, and tie a bow.
Final Quality-Control Checklist
- The base lies flat and measures 2.75 in × 1.5 in (7.0 cm × 3.8 cm).
- There is a clean back-loop ridge where the base meets the wall.
- All 12 lattice loops are even in every round, with no twisted chains.
- Round 15 has exactly 36 sts.
- There are 18 open eyelets, evenly spaced.
- There are 18 scallops: 9 front, 9 back.
- The bag is 3.6 in (9.1 cm) wide flat and 4.75 in (12.1 cm) tall.
- The hanging loop is sewn securely at both side folds.
- The tassels are trimmed evenly to 1 in (2.5 cm).
- All ends are woven in and hidden inside the solid bands.
Troubleshooting
The base curls up like a bowl. You don’t have enough increases, or your tension is too tight. Check that you have 36 sts after Round 4, and go up a hook size if needed.
The base ruffles. Your tension is too loose. Go down one hook size.
The lattice spirals around the bag. Make sure every sc goes into the center of the loop below it, not into the chains on either side.
The candies fall through the lattice. Shorten the loops to ch 4 in Rounds 9–14. The bag will be a little shorter.
The wrong count in Round 15. Count your loops. Each round must have exactly 12, with 3 sc in each.
The ruffle is too floppy. Cotton helps here. You can also work Round 19 as [2 dc in the next st, dc in the next st] around for 54 sts, then work the scallops over 54 sts with the 4-st repeat ending in 2 leftover sts. The simpler fix is to keep 72 sts and use a smaller hook for the ruffle only.
The drawstring won’t slide. The eyelets are too tight. Work Round 17 more loosely, or use a thinner cord.
Care
Hand wash in cool water with mild soap, press out the water in a towel, and reshape to dry flat. Don’t put the bag in the dryer, or the ruffle and lattice will lose their shape.

Final Notes
Everything in this bag follows one measurement chain. The 36-stitch oval base, 2.75 in × 1.5 in (7.0 cm × 3.8 cm), sets the circumference. The solid band raises it 0.75 in (1.9 cm). Twelve lattice loops (36 ÷ 3) add 2.25 in (5.7 cm). Three sc per loop brings the round back to 36 for the eyelet band, which brings the body to 4 in (10.2 cm). The 72-stitch ruffle divides cleanly into 18 scallops, for a finished height of 4.75 in (12.1 cm). If your base matches the first checkpoint, every round after it will fall into place.
Happy crocheting!