Is it possible to begin/end parent relationship with animation or keyframe?
This is one of the main purposes of the "child of" constraint. It's a constraint the transforms an object as though it was parented to the specified target. Like all constraints, you can keyframe the influence:



By default it will move the object to the target's location as well. Clicking "set inverse" will add an offset so the constrained object will "start" from its existing location.

Note that you can also select which transform channels the "parent" applies to, which is also not possible with true parenting. You can also have several child of constraints on the same object with different targets, and just animate which is active at a particular time. This is useful for an object that needs to be handed off from one character to another, or picked up off a conveyor belt or something like that.