I can’t say I am a carver, but I am familiar with the methods. You want to make a heart shaped hole in a rock slab or cabochon. The most generic way would be to use a diamond drill tool to make a hole in the stone and, using various diamond bits, enlarge the hole until it looks like you want it to. You will need to use water or oil to lube the carrving tool and oil is usually best as there is less wear on the tool. Baby oil is good and smells nice. I assume you will be using these tools in a flexshaft, although a drill press would also work.
One good way to make a heart that I can think of would be to get an appropriate sized hole saw and use it to make two holes that touch. These are the (top) lobes of the heart. Then make another hole below these two with its center on a vertical line drawn through the point where the first two touch. The top of this hole defines the depth of the notch in the top of the heart if it is set high, but could be lower, depending on how long your heart is. Once the three holes are made, you can probably cut out the two sides of the heart that lead to the point with a small diamond saw blade. From this point you will use various small diamond drums or sanding drums with silicon carbide paper to smooth the sides of the heart and to establish any curve you wish to make on the edges. By using various diamond grits on bonded tools or embedded in wooden dowels or even copper wire, you can proceed to polish the sides of the heart. In SiC grit drums you would normally go 220 to 600 and maybe to polish from there. Cerium oxide would work for agates, jaspers and may other rocks. Without knowing more about your material or available tools, I’ll stop here. You might look on youtube for rock carving videos. Your local library might have a book on lapidary carving. That’s all I got for now. I guess you know that carving rock doesn’t go real fast, but if it’s avg agate or jasper or softer, with the hole saw and small saw blade, it shouldn’t be too bad to create the heart shape.