Crochet Ornament Patterns

Undyed Lace Heart Sachet Ornament Free Pattern

TrendwireUs • October 27, 2026
Undyed Lace Heart Sachet Ornament - Free Beginner Crochet Pattern

Introduction

Welcome to your very first crochet project! This Undyed Lace Heart Sachet Ornament is the perfect place to begin because it is small, forgiving, and absolutely beautiful when finished. You will make two identical flat heart shapes, join them together with a delicate shell-stitch border, and finish with a tiny hanging loop. The finished ornament is about 3 inches (7.5 cm) wide and 3 inches (7.5 cm) tall, worked in soft natural undyed cotton that looks like a little Victorian keepsake. It feels light and slightly puffed, with a gentle lace edge and a soft matte texture that smells wonderful if you tuck a little dried lavender inside. If you have never held a crochet hook before, do not worry — every single stitch is explained below, one step at a time.

Materials Needed

  • Yarn: DK weight (Category 3) 100% cotton, natural undyed. You need approximately 25–30 yards (23–27 meters) per ornament. This is enough for both heart motifs, the border, and the hanging loop.
  • Crochet hook: US E/4 (3.5 mm).
  • Stitch marker: 1 (to mark the first stitch of each round).
  • Tapestry needle: A blunt-tipped needle with a large eye for weaving in ends.
  • Scissors: Any small sharp pair.
  • Stuffing: A small amount of polyester fiberfill or cotton stuffing.
  • Optional: About 1 teaspoon of dried lavender or your favorite sachet blend, wrapped in a small square of cheesecloth.
  • Finished size: Approximately 3 inches (7.5 cm) wide x 3 inches (7.5 cm) tall, excluding the hanging loop.

Abbreviations and Beginner Glossary

Every abbreviation used in this pattern is listed here in plain English. Read this section first — no prior knowledge is assumed!

  • ch – chain. Make a loop of yarn on your hook, wrap yarn over the hook, and pull it through the loop. That is one chain stitch.
  • sl st – slip stitch. Insert your hook into the stitch, wrap yarn over, and pull it through both the stitch and the loop on your hook at the same time. It makes a nearly invisible joining stitch.
  • sc – single crochet. Insert hook into stitch, wrap yarn over, pull up a loop (2 loops on hook), wrap yarn over again, pull through both loops. One loop remains.
  • hdc – half double crochet. Wrap yarn over hook first, insert hook into stitch, wrap yarn over, pull up a loop (3 loops on hook), wrap yarn over, pull through all 3 loops at once.
  • dc – double crochet. Wrap yarn over hook, insert hook into stitch, wrap yarn over, pull up a loop (3 loops on hook), wrap yarn over, pull through 2 loops, wrap yarn over, pull through remaining 2 loops.
  • tr – treble crochet. Wrap yarn over hook twice, insert hook into stitch, wrap yarn over, pull up a loop (4 loops on hook), then wrap and pull through 2 loops three times total.
  • sc2tog – single crochet 2 together (a decrease). Insert hook into first stitch, wrap yarn over, pull up a loop, insert hook into next stitch, wrap yarn over, pull up a loop (3 loops on hook), wrap yarn over, pull through all 3 loops. Two stitches become one.
  • st(s) – stitch or stitches.
  • sp – space (usually the little gap made by a chain).
  • rnd – round (one complete circle of stitches).
  • Shell – a special stitch: work (2 dc, ch 1, 2 dc) all into the same stitch or space. This creates a fan shape.
  • Picot – a tiny decorative bump: ch 3, then sl st into the third chain from your hook.
  • Join with sl st – finish a round by making a slip stitch into the very first stitch of that round, closing the circle.
  • Fasten off – cut the yarn a few inches from the work, pull the tail all the way through the last loop, and tighten.

Gauge

Gauge: 20 single crochet stitches x 22 rounds = 4 inches (10 cm) in single crochet.

Gauge means how big your stitches turn out. It matters because it controls the finished size — if your stitches are too loose, your heart will be bigger than 3 inches; if too tight, it will be smaller. To check your gauge, crochet a small flat swatch of single crochet about 4 inches (10 cm) square, then lay a ruler across the middle and count how many stitches fit in 4 inches. If you have more than 20 stitches, try a larger hook; if fewer, try a smaller hook. For this small ornament, gauge is a gentle guide rather than a strict rule — just aim to be close.

Beginner Tips Before You Start

  • Use your stitch marker. Place it in the first stitch of each round so you always know where the round begins and ends. Move it up as you go.
  • Do not pull the yarn too tight. Keep your tension relaxed and even. Tight stitches make it very hard to insert the hook and make the heart curl.
  • Count every round. The stitch count in parentheses at the end of each round tells you exactly how many stitches you should have. Count before moving on.
  • Work the two hearts identically. Make the first heart completely, then make the second one the same way. Matching them is easier than you think if you follow the same rounds.
  • Keep your joining slip stitch loose. When you join a round, do not yank it tight — a gentle join keeps the edge flat.
  • Do not overstuff. This sachet should stay flat and soft, not round like a ball. A light pinch of stuffing is plenty.

Step-by-Step Instructions

Note: Make 2 identical heart motifs (Front and Back). Do not fasten off after the second motif until instructed.

Heart Motif (make 2)

Rnd 1: Ch 4, join with sl st to form a ring. Ch 1, work 8 sc in the ring, join with sl st to first sc. (8 sc)

Rnd 2: Ch 1, 2 sc in each st around, join with sl st to first sc. (16 sc)

Rnd 3: Ch 1, [2 sc in next st, sc in next st] 8 times, join with sl st to first sc. (24 sc)

Rnd 4: Ch 1, [2 sc in next st, sc in next 2 sts] 8 times, join with sl st to first sc. (32 sc)

Rnd 5: Ch 1, sc in each st around, join with sl st to first sc. (32 sc)

Rnd 6: Ch 1, sc in first 4 sts, hdc in next 2 sts, dc in next 4 sts, tr in next 2 sts, dc in next 4 sts, hdc in next 2 sts, sc in next 4 sts, hdc in next 2 sts, dc in next 4 sts, tr in next 2 sts, dc in next 4 sts, hdc in next 2 sts, join with sl st to first sc. (32 sts)

Rnd 7 (shaping the lobes): Ch 1, sc in first 6 sts, sc2tog over next 2 sts, sc in next 6 sts, sc2tog over next 2 sts, sc in next 6 sts, sc2tog over next 2 sts, sc in next 6 sts, sc2tog over next 2 sts, join with sl st to first sc. (28 sc)

Rnd 8: Ch 1, sc in first 5 sts, sc2tog over next 2 sts, sc in next 5 sts, sc2tog over next 2 sts, sc in next 5 sts, sc2tog over next 2 sts, sc in next 5 sts, sc2tog over next 2 sts, join with sl st to first sc. (24 sc)

Rnd 9 (point): Ch 1, sc in first 4 sts, sc2tog over next 2 sts, sc in next 4 sts, sc2tog over next 2 sts, sc in next 4 sts, sc2tog over next 2 sts, sc in next 4 sts, sc2tog over next 2 sts, join with sl st to first sc. (20 sc)

Rnd 10: Ch 1, sc in first 3 sts, sc2tog over next 2 sts, sc in next 3 sts, sc2tog over next 2 sts, sc in next 3 sts, sc2tog over next 2 sts, sc in next 3 sts, sc2tog over next 2 sts, join with sl st to first sc. (16 sc)

Rnd 11: Ch 1, sc in first 2 sts, sc2tog over next 2 sts, sc in next 2 sts, sc2tog over next 2 sts, sc in next 2 sts, sc2tog over next 2 sts, sc in next 2 sts, sc2tog over next 2 sts, join with sl st to first sc. (12 sc)

Rnd 12: Ch 1, sc in first st, sc2tog over next 2 sts, sc in next st, sc2tog over next 2 sts, sc in next st, sc2tog over next 2 sts, sc in next st, sc2tog over next 2 sts, join with sl st to first sc. (8 sc)

Rnd 13: Ch 1, sc2tog over next 2 sts 4 times, join with sl st to first sc. (4 sc)

Fasten off, leaving a 6 inch (15 cm) tail. Weave the tail through the remaining 4 stitches and pull closed. Weave in the ends on the wrong side. Repeat all 13 rounds to make the second identical heart.

Joining and Shell Border

Hold the two hearts with wrong sides together (the flatter, smoother sides facing out), matching all stitches and the bottom point. You will now work through both layers at once.

Join yarn with a sl st at the bottom point.

Rnd 1 (joining): Ch 1, sc evenly around the entire outer edge, working through both layers (approximately 48–52 sc). Work 3 sc in the bottom point and 3 sc in the top center dip to keep the shape flat. Join with sl st to first sc. (approx. 48–52 sc)

Rnd 2 (shell border): Ch 1, sc in first st, *skip next 2 sts, work Shell in next st, skip next 2 sts, sc in next st; repeat from * around, adjusting the final repeat to end with a sc. Join with sl st to first sc. (approx. 8–9 shells)

Rnd 3 (picot edge): Ch 1, sc in each st and ch-1 sp around, working a Picot in the center ch-1 sp of each shell. Join with sl st to first sc. Fasten off and weave in ends.

Stuffing and Sachet Filling

Before you close the final border round, lightly stuff the heart with polyester fiberfill through a small opening, or insert about 1 teaspoon of dried lavender wrapped in a small square of cheesecloth. Do not overstuff — the heart should remain flat and soft. Close the opening with the remaining border stitches.

Hanging Loop

Join yarn with a sl st at the top center dip of the heart.

Loop: Ch 18 (or your desired loop length), sl st in the same st to form a loop. Work 18 sc around the chain loop, join with sl st to first sc. Fasten off and weave in ends securely.

Assembly and Finishing

Seaming: There is no separate seaming step — the two hearts are joined as you work Round 1 of the border through both layers. Make sure every stitch of the front heart lines up with a stitch of the back heart so the edges stay even.

Weaving in ends: Thread each yarn tail onto your tapestry needle. Turn the work to the wrong side and weave the tail in and out through the backs of several stitches, changing direction once so it cannot pull loose. Trim the yarn close to the work.

Blocking: Lightly wet the finished ornament with cool water (a spray bottle works well). Pin it flat to a towel or blocking mat, gently shaping the lobes and the bottom point with your fingers. Allow it to dry completely — usually several hours or overnight. This opens up the lace border and helps the heart hold its shape.

Final touches: Trim any loose ends. If you used lavender, gently squeeze the sachet to release the scent.

Pro Tips and Variations

  • Change the color: This pattern is lovely in any DK cotton — try soft blush pink, sage green, or classic white for a different mood. You can also make the border in a contrasting color for extra charm.
  • Adjust the size: To make a larger heart, use a thicker yarn (worsted or aran weight) with a larger hook, such as a US H/8 (5 mm). To make a tiny heart, use fine cotton thread with a small steel hook. Always check your gauge first.
  • Substitute the yarn: Any DK weight cotton or cotton-blend yarn will work beautifully. Avoid fluffy or fuzzy yarns for your first attempt, as they make it harder to see your stitches.
  • Make it a gift set: Crochet several hearts in different colors, fill them with lavender, and tie them together with a ribbon for a handmade gift that smells as good as it looks.

Also Check Out: We think you'd love this beautiful pattern on our sister site: Crochet Textured Diagonal Basketweave Scarf Free Pattern