BLOOD RUBY by Thomas Cavanagh

BLOOD RUBY

by Thomas Cavanagh

November 30 – December 11, 2026 Virtual Book Tour

Synopsis:

BLOOD RUBY by Thomas Cavanagh

 

Sandy Corrigan is back—smarter, tougher, and in more danger than ever.

What should have been a routine job for a real estate developer explodes into a nightmare when private investigator Sandy Corrigan stumbles on a murdered corpse. The police quickly target someone she loves, and clearing his name becomes her only option.

But this case is no ordinary investigation. To uncover the truth, Sandy must plunge deep into the hidden world of Central Florida’s homeless community—where secrets fester, loyalties are fragile, and every step could be her last.

A gripping sequel to the award-winning Diamond Cut, which was hailed as “fast paced and suspenseful” by #1 NYT bestseller Janet Evanovich.

Praise for Blood Ruby:

“A sympathetic look at the plight of the homeless set against a heart-thumping investigation undertaken by a fearless—often foolhardy—P.I. determined to discover who is murdering the denizens of a homeless camp in the swamps of Central Florida. Gritty, atmospheric, and utterly page-turning, Blood Ruby gallops to a scorching conclusion.”
~ Bonnie Kistler, Edgar-nominated author of Shell Games

“Gripping and propulsive, Cavanagh rips at your heartstrings while shedding light on the complexities of humanity.”
~ Courtney Psak, author of The Tutor and The Hostess

Book Details:

Genre: Thriller
Published by: Level Best Books
Publication Date: October 13, 2026
Number of Pages: 300
ISBN: 979-8-89820-378-8 (pbk)
Series: Sandy Corrigan (Gemstone) series, Book 2
Book Links: Coming Soon

Read an excerpt:

Chapter 1

The first thing I noticed was the acrid smell of urine. Sharp and pungent, it cut through the thick, humid air that hangs over Central Florida in early August. I worked my way carefully along a worn trail through overgrown palmetto scrub and tall, shady trees. Spanish moss dripped like eerie bunting from the thick branches of the overhanging live oaks. I stepped over a sodden blue t-shirt crumpled at my feet. A pile of trash laid nearby. Empty Gatorade bottles. Fast food wrappers. Cigarette butts.

I wasn’t alone. Carmen led the way down the path. Although we had corresponded through email and spoken on the phone, we had not actually met in person until a few minutes ago. Like me, she wore jeans and a t-shirt. As she had suggested, I wore thick-soled sneakers. She wore a pair of scuffed hiking boots. No sandals or open-toed shoes.

Carmen was maybe a few years older than me, mid-thirties, with brown hair pulled back into a ponytail under a baseball cap. My hair wasn’t quite long enough for a ponytail. I never liked them anyway. Carmen seemed nice enough. She had been responsive to my inquiries. She was certainly passionate about her work. And despite the understandable resistance she might have to my reason for being here, so far she had been polite and professional.

“Watch your step,” she said, turning back toward me. “There could be glass or needles.” She continued down the path. I did as instructed and kept pace.

“Any idea,” I asked. “What kind of population we can expect?”

“What do you mean?”

“You know, how many?”

“Ah. I thought you were asking about demographics. I’m not exactly sure how many. It’s been a while since I was out here. That was maybe nine or ten months ago. There were about a dozen back then. Maybe more. Mostly men. I don’t remember any kids.”

“Kids?” I asked. “Homeless kids?”

Carmen paused and gave me a look that denoted her utter disbelief at my ignorance. “Oh yes. More kids than you would believe.” She began moving again. “But I don’t think we’ll find any kids or families here. It’s not what you would call a family friendly location. No services nearby. It isn’t really a safe camp. Not that any are truly safe. But some more than others. And this one, well…We really try to get the kids and families into shelters.”

“What, uh, what do you mean by not safe?”

“You’ll see.”

We stepped out of the thick, shadowed tree line and into a wide, grassy clearing. I have never attended a multi-day outdoor music festival, but I can only imagine that this is what they look like when they are over. Trash was strewn in random piles all across the space. At least ten tents dotted the lawn in no discernible pattern. A half dozen cardboard forts were covered with blue and green nylon tarps. There were several shopping carts—a couple upright and full of stuffed garbage bags and at least two on their sides. I recognized the lime green of the Publix supermarket chain and the bright red from Target among the carts. One of the overturned carts was missing a wheeled caster.

There wasn’t much movement in the camp, although I did see a shirtless man in baggy jeans standing at the tree line on the opposite side of the clearing. He idly scratched the gray stubble on his neck and chin. A woman of some indeterminate age squatted next to a tent sorting through a black plastic garbage bag. Presumably the languid summer sun was keeping the rest of the residents of the encampment in their tents or under the shade of the trees. Some were likely out on their street corners, panhandling, while others were making their daily circuit of stops to churches, restaurants, and convenience stores. The thick, moist air hung heavy over the clearing, softening any noise. It was quiet except for the chittering of cicadas in the grass.

“Looks like more than last time,” Carmen said, scanning her gaze across the camp.

“I’ll need as accurate a count as we can get,” I said.

“I know.” Her voice was tired and tinged with a hint of regret. She didn’t want to be here. Carmen Aguirre was Assistant Director of the Orange County Homeless Coalition. While the Executive Director spent most of his time fundraising and overseeing the main shelter and soup kitchen downtown, Carmen was responsible for primary field operations. This included weekly food distributions at county parks, referring people to emergency services, and helping people into shelters and transitional housing. She was also responsible for keeping as accurate a census of the number of homeless in the county as could be maintained, including the approximate locations of camps.

We were currently on a rural plot of land in east Orange County, not too far from the encroaching suburban sprawl that was creeping east from the Avalon Park neighborhood past the Little Econlockhatchee River, what the locals referred to as the Little Econ. This particular plot of land was owned by my current client, Ben Nolan, CEO of Nolan Brothers Homes, a mid-sized local real estate developer. In preparation for developing the land for a project, Mr. Nolan had hired me—or more precisely, had hired the private investigation firm owned by my brother Billy—to determine the size and impact of the homeless encampment currently occupying his property.

As it had been explained to me, Mr. Nolan would need to arrange the removal of these trespassers. However, having heard rumors of the impending housing development, a local advocacy group called People’s Voice had filed a legal motion to block the development, challenging Mr. Nolan’s authority to remove the encampment. While the motion would most likely eventually be thrown out, the whole process was intended to be an expensive delaying tactic. In that, it was succeeding. Meanwhile, my job was to count the residents.

I had arranged things with Carmen a few days ago and here we now were on a hot, muggy August morning. I pulled out my iPhone and snapped a few pictures.

“You may not want to do that,” Carmen said. “Some folks are touchy about having their pictures taken.”

“That’s the job.” I clicked a few more images, including a slow, wide panorama of the entire clearing. “Mr. Nolan wants to see the extent of the camp.”

“He could just come out here and see for himself.” There was an element of bitterness in her reply. Carmen knew that these people would all soon be displaced in the name of capitalistic progress, scattered into countless other dark corners of the Central Florida landscape.

“That’s what I get paid for,” I said. I increased the camera’s zoom and took closer shots of several of the tents and tarp-covered forts. For no particular reason, I took a picture of a tilted Publix shopping cart. I clicked a picture of the shirtless man on the opposite side of the clearing, feeling a little voyeuristic and guilty. The brush to my left rustled and I lowered my phone.

A man approached. His hair was long and a filthy brown, tied into a ponytail. His beard was unkempt and streaked with gray. His clothes were practically tatters hanging on his bony frame. He wore a black baseball cap with the name and call sign of a naval vessel around an image of an aircraft carrier. USS Carl Vinson CVN-70. As he approached, the sharp tang of his body odor made me involuntarily recoil slightly.

Carmen put her hand on my wrist, a silent signal to let her take the lead here. She took a half step toward him.

“Good morning,” she said.

He narrowed his eyes at us. “Mornin’.” His voice was surprisingly gentle, a deep baritone. When he spoke I noticed several missing teeth in his mouth.

“I’m Carmen, from the Homeless Coalition. What’s your name?”

“Carl.”

I blinked between his smudged face and the USS Carl Vinson hat on his head. Carl? Coincidence?

“You look familiar, Carl,” Carmen said.

“I come to the shelter sometimes. Mostly when it’s cold. Sometimes I sweep floors or whatever for a few bucks.”

“That must be it. Nice to see you again.”

“I could use a few bucks now.”

Carmen nodded. “I have some things in my car. Some clothes, some food and water, toothpaste. I can share them before I leave.”

“No money?”

“Not today. Just the supplies in my car.”

“What about her?” He nodded at me.

“No. Just what’s in my car. See me before I leave.”

He shook his head. “I’ll be long gone before that.” He took a step back, watching us. “Good luck,” he said and disappeared into the trees. The sour stench from his unwashed body lingered, lodged in my sinuses, even after his departure. The whole conversation had only lasted a minute or two. But it seemed so much longer. Good luck? What did that mean? I glanced over at Carmen for some signal whether this encounter was a typical interaction or something to be concerned about. Her expression was unreadable.

“You should just get what you came for,” she said.

I nodded. I lifted my phone and again selected the camera app. I took photos of the tents, the tarp forts, and the piles of trash. The overturned shopping carts. The prone, sleeping figures on the ground. As I panned across, I again spotted the woman in the center of the clearing who was still sitting on her haunches and rummaging through the black plastic garbage bag. Except she was now no longer looking in the bag. I zoomed in slightly. Through the screen, she stared directly at me through squinted, accusing eyes. Her weather-worn face was framed by colorless, straw-like hair pulled back and held by a band. She pursed her lips into a sour expression and abruptly stood. I quickly slipped the iPhone into my pocket.

The woman stepped around the garbage bag and walked briskly toward us. Her limping gait was purposeful, maybe even aggressive. Her expression didn’t change.

Carmen again placed a hand on my forearm. “Let me talk.”

I nodded. As before, I had no problem with that. The woman limped up to us and stopped two feet away, encroaching in our personal space, a foot closer than seemed polite and customary. She cut her eyes back and forth between us.

“Yeah, who are you?” she asked. Her voice was raspy, as weathered as her lined face.

Carmen smiled at her. “Hi. I’m Carmen. I’m from the Homeless Coalition. What’s your name?”

The woman looked her up and down. “Carmen…” she repeated and turned her gaze on me. “And her?”

“I’m, uh, Sandy,” I said. I tried a smile but it felt more like a grimace.

“You a cop?”

“A cop? Me? No. Not a cop.”

“So,” Carmen said, trying to draw her attention back. “Your name?”

The woman kept her eyes locked on me for another long awkward moment before she finally pulled away and addressed Carmen. “Ruby.”

Carmen repeated her smile. “Nice to meet you, Ruby. I don’t know if you were here about nine months ago, but I came out here back then. We try to come out and visit every so often to check in, offer services or supplies, and try to figure out how many people are living in the camp. That’s why we’re here now. We’re going to spend a few minutes, maybe talk to a few people, and try to figure out how many people live in this camp. Okay?”

Ruby nodded. “Yeah. Okay. Yeah. I kinda remember that. Yeah. I can help.”

“That would be great,” Carmen said.

“You don’t have ten bucks, do you?”

“We’ll talk about that before we leave,” Carmen said. “I have some food and clothes and things in my car.”

“Any cigarettes?”

“Not today.”

“Yeah. Not today.” Ruby gestured behind her at the tent where she had been squatting and said with some level of pride, “So, y’know, this is my spot.” She began walking and we fell into step behind her. “Most everyone is out. There are a few here, though. Paul is over there.” She nodded at the shirtless man with the gray stubble. The man stared at us expressionless. His bare torso was dotted with red spots that might have been insect bites.

“I’m going to take some notes, okay?” Carmen said. She pulled a small notepad and pen from a string bag slung over her shoulder.

Ruby nodded. “Yeah. Notes. Yeah.”

From Ruby’s spot in the general center of the clearing, we took a quick inventory of the tents and forts. There were eleven tents and five tarp forts for a total of sixteen camps. Ruby occasionally pointed at a spot and shared some detail about the occupant.

“Yeah, that’s Speeder. That’s Grace over there. I don’t know that guy. He never talks. His hair is too long. Everyone knows the guys with short hair get more money. That’s Junior. You need to meet Junior. Over in that corner, that’s Derek. And that’s R.C. You already met Carl. He’s pretty new. Of course, you know Paul.” She waved her hand at the shirtless guy with the bug bites. He made no response.

“Is there anyone who doesn’t have a tent or a spot?” Carmen asked. “Who just lives here without shelter?”

“Yeah. A couple. Y’know. They come and go.”

“How many? Two? Three? Maybe more?”

“Yeah. Two or Three. Maybe more.” She tilted her head and pointed at a green and white tent about twenty yards away. “Of course, you can’t count George.”

“Oh?” Carmen said. “Why not?”

“Well, not anymore.”

“Not anymore? Did George leave?”

“Yeah. Kinda. He died.”

Carmen and I exchanged a look. “Died?” Carmen repeated. “I’m so sorry. Were you close?”

“You know. Pretty close. Like I said, that far away.” She nodded at the distance separating her tent from the green and white tent.

“Um, how long has he been gone?”

“Oh, he’s not gone. So, maybe you can count him after all. I dunno. You wanna see?”

Carmen hesitated. Ruby stared at us with wide eyes. I filled the silence with “Uh…”

“See George?” Carmen asked slowly, ensuring we understood what Ruby was saying.

“Yeah. George.”

“Now?”

“Yeah.”

“Okay…” Carmen said. “Is he…close?”

“Yeah, pretty close.” We followed behind Ruby’s limping path to the green and white tent. It was a Coleman pop-up, filthy and torn. Trash was strewn in front of the entrance. As we approached I picked up an aroma that I knew could only be one thing. A rotten stench, tinged vaguely sweet. Carmen’s face told me that she smelled it, too. My heart pounded in anticipation of what lay inside. Ruby stopped at the entrance.

“You wanna open it or should I?” Ruby asked.

Carmen took a fortifying breath. “You go ahead.”

“Yeah, okay.” Ruby leaned down and pulled the zipper in a long arc, opening the nylon flap and flinging it aside. A torrent of buzzing flies erupted, filling the inside of the tent in a roiling, black cloud. The full force of the stench of rotten human flesh hit us like a concussive blast. Inside, the bloated body of a man was laying on his back. His open eyes stared up, cracked lips slightly parted. He was laying in a slick pool of drying black blood that filled the basin of the tent floor. His clothes were sliced in multiple places across his torso and legs and dark blood stained everything he wore. Small white maggots wriggled on a gaping incision in the exposed flesh of his belly. I had seen—and smelled—enough. I turned around, put my hands on my knees, and gagged, trying my best not to vomit.

“So, yeah,” Ruby said. “That’s George. Like I said, are you gonna count him or not?”

***

Excerpt from Diamond Cut by Thomas B. Cavanagh. Copyright 2026 by Thomas B. Cavanagh. Reproduced with permission from Thomas B. Cavanagh. All rights reserved.

 

 

Author Bio:

Thomas B. Cavanagh

Thomas B. Cavanagh is an Amazon best-selling, award-winning author of Florida crime thrillers. He has won both Gold and Bronze Florida Book Awards and has been a finalist for a Best Novel Shamus Award by the Private Eye Writers of America. He holds a Ph.D. in Texts & Technology from UCF and is a graduate of the University of Miami Creative Writing program. He is a member of the Mystery Writers of America, International Thriller Writers, Private Eye Writers of America, Sisters in Crime, and the Author’s Guild. Tom lives in Central Florida with his family and two quirky cats.

Catch Up With Thomas B. Cavanagh:

ThomasBCavanagh.com
Amazon Author Profile
Goodreads
BookBub – @tbcavanagh
Instagram – @tbcavanagh
Threads – @tbcavanagh
X – @tbcavanagh
Facebook – @Thomas B. Cavanagh-Author

 

Tour Participants:

 

Tour Host Info:

Book Formats: ePub, Print
Hosting Options: Review
Giveaway: There will be a tour-wide PICT Giveaway
More: According to the author Blood Ruby is considered to be R-level content or less. Readers may still encounter potentially sensitive material. If you have specific trigger or content concerns, please contact Partners in Crime Tours directly for more detailed information.

 

 

Join In:

To sign up for the tour please complete the form below. If you have questions or problems email Wendy at wendy@partnersincrimetours.com. Thank you for your interest in this tour.

Get More Great Reads at Partners In Crime Tours

Sep 25, 2026 | 2026, Current & Open Tours

Current Tours

INVISIBLE JUSTICE by Gary Brown MD BLACKOUT by J. Luke Bennecke MAYBE YOU LIED by Jennifer Sadera THE HARLOT OF ST. CECELIA'S by Darcy Graves DEATH IN LUXOR by M. A. Monnin ALL THAT WAS LEFT UNSAID by Danielle Dragona DARK UGLY PLACES by Ashley Mansour MURPHY AND THE MYSTERY OF THE OUTLAW GOLD MINE by Bradford D. Smith CHARRED by GP Gottlieb THE RESURRECTION OF EVANIA JAMES by Jaime Jo Wright OUTAGE by Mike Trigg THE LOST PHOTOGRAPH by Archana Maniar THE SWAMP GHOST by Christi Keating Sumich SHIFTA by Miles Joyner



 

Open Tours

POINT OF REVENGE by DiAnn Mills BLOOD RUBY by Thomas Cavanagh PAREIDOLIA: ILLUSIONS, DECEPTIONS, AND MURDER by J. Herman Kleiger FAIR WINDS AND FOUL PLAY by M. S. Spencer THE MOGUL by R.G. Belsky LOCKED IN A BOX by Sheila Sharpe BURNING THE RAVEN TREE by Janyre Tromp THE ARCHITECT OF DECEPTION by Debbie Baldwin DEATH OF A DOVE by Eleanor Kuhns TOO MANY STEPS by Bill Gormley THE MEDICI HERESY by Gary McAvoy MURDER IS PERSONAL by BJ Condike WHAT HAPPENED IN BEULAH by Christy Scott Cashman RESURRECTION KILL by Laura Joh Rowland HOW CAN I HELP YOU TODAY? by Julia L. Rule

 
THE AUPAIR'S DECEPTION by C.J. Covino

 

Archives