Xcalak has a small private airport that can accomodate small, Lear-size jets. The nearest city with available commercial flights is Cancun. Plan on renting a car for the trip to Xcalak. Xcalak is approximately a 5-hour drive from Cancun.
There are two Caribe buses from Chetumal daily:
The bus goes from Chetumal to Mahahual, and then along the beach road for around 10km towards XCalak. At this point it turns off onto the surfaced interior road for the rest of the trip to Mahahual. It's the bus to take if you're staying at one of the hotels between Mahahual and XCalak.
There's a great reef offshore and it's also close to the Chinchorro Banks, which is a great dive spot some 30km offshore. There are a couple of dive operators north of Xcalak:
Snorkeling is excellent and opportunity to have the reef virtually to yourself make Xcalak a great destination. Local fishermen will provide a boat trip out to the reef for a few dollars. Escorted snorkeling tours are available from the XTC Dive Centre - 
The main snorkeling areas are to the south of the town and about 300 meters off shore. In the places the reef breaks the surface and so is easily located. Inside the reef there is abundant sea life in 1 to 3 meters of water with many tropical fish and the occasional ray and small shark.
On the ocean side of the reef, easily accessed through numerous channels, the reef extends from the surface down 5 to 10 meters to a sandy bottom. There are a wide variety of larger reef fish.
The restaurant at Costa De Cocos is the best restaurant in Xcalak. The fish is always fresh, and be sure to try the pizza.
The outbound Caribe buses leave from beside the lighthouse at 0500 and 1400, and return to the second class bus station only. You can also board the bus from the south end of town just before the Tourist Information Office.
By Boat to Belize
You can arrange a boat to Caye Caulker' in Belize at one of the dive shops or with one of the "Captain"s in town. The crossing is smooth and relatively quick. Immigration can however by a problem. There are no banks in XCalak (the nearest is in Chetumal) and so you would need to pay your Tourist Card (FMT) before arriving in XCalak. There also appears not to be an active (as of March 2009) immigration office in XCalak, the closest is in Mahahual.