I've been using Amelia as an annual license user for a couple of years. I like it enough, and think I'll have enough users, that I just stacked 5 codes for unlimited lifetime.
It has a few quirks, and can be frustrating at times, but if you stick to its main purpose then it's a very very good appointment plugin. There are a few things that I wish it would do differently or better (please export custom booking fields into separate columns when exported to a csv file!) but that's the case with every plugin.