However, in contrast to higher-order logic, we do not allow variables that stand for predicates themselves. (This distinction can become somewhat confusing when the first-order theory in question is a material set theory, such as ZFC, in which the variables stand for “sets” which behave very much like predicates.)
A predicate calculus is simply a system for describing and working with predicate logic. The precise form of such a calculus (and hence of the logic itself) depends on whether one is using classical logic, intuitionistic logic, linear logic, etc; see those articles for details.
For many (perhaps most?) authors, predicate logic is really predicate logic with equality. However, some forms of predicate logic do not include an equality primitive, such as FOLDS (in whose name ‘FOL’ stands for ‘first-order logic’). In some first-order theories, such as ZFC, equality can be defined and so is not needed in the logic itself.
Lindström's theorems give important abstract characterizations of classical untyped first-order logic.
The syntax - semantics duality in first order logic is discussed in
On the historical development: