I haven't used Venti, so I can't comment on it. However, I have tried out both Calendars from Top Shelf Craft and Solspace Calendar on a recent project.
I started out using Top Shelf Craft Calendars (Solspace Calendar hadn't been released at this point). However, during the project, I switched to Solpsace Calendar which has ended up being used on the final build.
In my view, Craft Calendars and Solspace Calendar have distinctly different approaches as to how they work.
Top Shelf Craft Calendars
In Craft Calendars, any element (entries, users, assets, etc.) can be attached to a calendar event. If you want to store custom fields associated with an event, then you would store these on the element you are attaching to the calendar event, not on the event itself.
In this way, you can think of Craft Calendars as creating a specialist fieldtype which enables you to schedule events, either on a one-off basis, or using sophisticated recurring rules. So to create an event, it must be associated with another element, since the event date is set using the Event Dates Fieldtype on the host element, rather than creating an event directly on a calendar element.
Craft Calendars doesn't currently have a nice GUI for the control panel and the front end output and styling are also left to you. This means that there is no native way to see an overview of the events that have been created. This may or may not be important to you.
On the other hand, with Solspace Calendar, events belong to a calendar first and foremost. There is an Events Fieldtype which can be used to relate another element (entries, users, assets, etc.) to a specific event using native Craft relations.
Events can also have their own custom fields. However, at the moment it is is not currently possible to search for Solspace Calendar events based on the contents of their custom fields. You can only search for events based on 'native' Solspace Calendar attributes, such as calendar name, start date, end date and author (see the docs for full details).
The Full Calendar interface, plus the ability to have events that weren't associated with existing elements, were the main factors in my choice of Solspace Calendar for the project I used it on. Though at the time I developed it, Solspace had not yet released their Full Calendar front end templates and there was little support for calling the event creation controllers from the front end, I was able to work through their code to see how they had achieved it in the control panel and create what I needed for the front end of my site.
However, it wasn't an easy choice between the two so I completely understand the motivation behind your question.
Comment on development and coding style
I have spent a lot of time looking through the code for both plugins and Solspace Calendar in particular. From a development and coding point of view (if that matters to you), Craft Calendars seems to me to follow Craft coding conventions more closely.
Solspace seem to have introduced extra levels of complexity and abstraction into Calendar that, in my opinion, for what it's worth, make it more complicated that it perhaps needed to be and lose some of the native behaviour you would get if they had used a more 'Crafty' approach. I have noticed this before with some of their EE add-ons. That said, they were very responsive to all the bug reports and questions I raised with them during the active development of the project.
I started using Solspace a couple weeks ago. The GUI is wonderful for content editors that will make use of it. ICS export so you could use it as the primary calendar manager and import the ICS into gcal or ical. The template integration is super easy and there are a number of bootstrapped demo calendar templates included that make extending, learning and integrating a breeze. You can extend its content type with whatever extra fields you need. It has its own sidebar link and therefore its content is separated from the rest of crafts entries.
Calendars is essentially a field that allows you to extend existing content types. I've only had a few hours to mess around with it but it seems like it has potential. At first I wasn't sure if I'd installed it correctly as it doesn't have a GUI. Venti I haven't tried, but looks a little more 'designy' than the other two plugins, which can be good or bad depending on where your skill set lies.
I am primarily a designer creating a website using craft for a few content editors and therefore will likely stick with Solspace. Given its familiar GUI and easy to follow template code it leaves little to figure out, which I need. If I was more on the developer end of the spectrum, weren't already using bootstrap, and had no use for a GUI for creating events, I'd likely roll with Calendars.
I've recently required a Calendar which worked with Craft Commerce, as in a booking system. It was important to me that the Craft Commerce products could be used as dates for the Calendar, simply with me adding a field to the Product.
Solspace Calendar doesn't work like that, which I feel doesn't offer the flexibility you get elsewhere in Craft CMS. It also took them a few days to let me know that, when I'd have expected a simple request like that answered within 24 hours on a weekday. I'd used them a lot in my ExpressionEngine days, so would have let them off the slow repsonse but the plugin just wasn't right for what I was after.
Top Shelf Craft's Calendar sounded like exactly what I was after. I asked the developer whether it would work with Craft Commerce, got a yes, and bought it immediately. It uses a field-type which you add to your entries, rather than using its own entry type like the Solspace one. Unfortunately, I then found it didn't work with Craft Commerce (depsite being told it would) and found support slower than expected and not very thorough. A week later, to make sure I met the deadline I was working-to, I made the decision to not use it, despite having paid for it. I also felt small details like the font sizes in the field weren't as consistent with the CP as I'd have liked.
I wish I'd seen Venti (has anyone used Venti?), as that looks similar to what I was after, though I haven't tested support nor do I know it works with Craft Commerce.
In the end, I used Boris Jerenec's Multi Date plugin and built my own calendar plugin on top of that. If Venti works with Craft Commerce (and works first time without further work needed) I'll probably try that with another similar project I've got coming up. I'd give Top Shelf Craft's plugin another go as well, but would need to see the support I received was the exception rather than the rule.
Failing that I'll be sticking with the Multi Dates field and my own plugin.
Now that I have tested both, not an exhaustive test by any means. But, overall both are very similar. It really comes down to how much power you need in an event app. If you need front end posting, Solspace. If you need to have a robust location piece to the event plugin, Venti does that very well.
Venti 2: Nice Crafty UI feel. You get a location finder and map for a built in address field, basic calendar view (you cannot input events straight into the calendar), solid sample templates, events field type. Oh and each location has to be saved before it can be used on an event. You can also have a global template that can apply all your custom fields without having to go back and add them each time you make a new calendar.
Not sure about the custom field search piece on the frontend, I have not gotten that far. Overall it's a legit app for events. The support is amazing too!
Solspace Calendar: Beautiful UI. No built in location fields, calendar view gives you 3 distinct views and you can add events right from that screen, frontend event posting, demo templates - a lot of them, amazing support. Searching custom fields is not easy from what I have gathered. No custom field global template functionality.
Each of these plugins have reoccurring event capability, which is always a bit complex to figure out on the fly. It has to come down to do you need frontend event posting, backend functionality UI preference. Also it's a matter of what plugin is going to be code quick. I am not sure which plugin shines there, I have no benchmarks.
I need location and mapping so I like Venti for that but I have overcome that by using other plugins to accomplish that, not sure how much overhead it added. For me, I don't need reoccurring events right now. My question that no one is talking about, is performance. Which of the 3 does that the best.
Both are fast setups, but before you dive in, know what custom fields you want and work that out to save yourself sometime.