We describe a scheduling technique in which estimated job runtimes and estimated resource availability are used to efficiently distribute workloads across a homogeneous grid of resources with variable availability. The objective is to increase efficiency by minimizing job failure caused by resources becoming unavailable. Optimal scheduling will be accomplished by mapping jobs onto resources with sufficient availability. Both the scheduling technique and the implementation called PGS (Prediction based Grid Scheduling) are described in detail. Results are presented for a set of sleep jobs, and compared with a first come, first serve scheduling approach.