1) send and receive is built in API
2) just keep a db log - simple
3) omg - set an int(12) of time() when you want it sent in DB... run a cron script, check if currentTime>sendTime... send!
4) meh - simple enough
I don't get how companies like this get funding - so simple and do nothing imo except provide another point of failure.