What is the difference between 准备， 预备 and 打算？
So there's two questions here:

1) Difference between 准备 and 预备:


准 (Zhǔn) = accurate, about to, standard, certainly
预 (Yù) = in advance, beforehand, in the future
备 （Bèi） = prepare (among other unrelated meanings, such as "equipment)


So these root differences tell you that 

准备 is more to describe readiness in preparation (accurate, certainty, etc)... 

他正在为招待客人作准备 （Tā zhèngzài wèi zhāodài kèrén zuò zhǔnbèi） = He is preparing (planning how to) entertain guests 


预备 is more to describe "to make ready"

我给你预备了一件礼物 (Wǒ yě gěi nǐ yùbèile yī jiàn lǐwù) =  I prepared a small gift for you


Although subtle, differences do exist.



2) When to use 准备/预备 vs 计划/打算 

打算: 打 (to hit, to do, to make), 算 (calculate, to figure)...

计划: 计划 (to calculate, to count, to plan), 划 (to mark off, to draw a line)

Both 打算 and 计划 are to make calculations/plans, or mark off something. You cannot use them to say you're prepared to do something, or that you've prepared/made something. They're only to say that you've figured/calculated something in the future.

Ex: You cannot say "我打算了一件礼物给你", but you can say "我打算送你一件礼物"

Conversely: 

You cannot say "我预备送你一件礼物" but you can say "我给你预备了一件礼物"