That should be quite easy with a PIC.
Servos are controlled with a variable width pulse at 5 V. I think that 1ms is one end of travel and 2ms is the other end of travel, repeated every 20 ms. The pulse needs to be there every 20 ms if the servo is to hold its position.
You can get any PIC to output a pulse by turning the output on, waiting for 1 - 2 ms, turning off the output, and waiting 20 ms. So the connection is just a PIC output to the servo input, with 5V and 0V to the supplies on both servo and PIC, and lots of capacitors across the power lines.
To do what you want you need to work out several timing loops, for the 3 second delay, for the 20s delay, for the 20ms delay and for the 1 - 2 ms delay.