A system for scheduling events for a plurality of satellites, the system comprising: a computing device configured to execute: an event system configured to produce, store, or receive event requests; a constraints system (110, 112) configured to produce, store, or receive characteristics of the plurality of satellites, wherein the characteristics of the plurality of satellites comprise duplication constraints; a prioritization system configured to produce, store, or receive priority information corresponding to the event requests; and a control system operatively coupled to the event system, the constraints system, and the prioritization system, the control system comprising: a scheduling module configured to process the event requests received from the event system, the characteristics of the plurality of satellites received from the constraints system, and the priority information received from the prioritization system and to use a directed acyclic graph to produce a near-optimal schedule of events in near real-time that does not violate constraints of the plurality of satellites, wherein the constraints include the duplication constraints; and a command module configured to receive the near-optimal schedule of events and create control instructions for the plurality of satellites based at least in part on the near-optimal schedule of events. a computing device configured to execute: an event system configured to produce, store, or receive event requests; a constraints system (110, 112) configured to produce, store, or receive characteristics of the plurality of satellites, wherein the characteristics of the plurality of satellites comprise duplication constraints; a prioritization system configured to produce, store, or receive priority information corresponding to the event requests; and a control system operatively coupled to the event system, the constraints system, and the prioritization system, the control system comprising: a scheduling module configured to process the event requests received from the event system, the characteristics of the plurality of satellites received from the constraints system, and the priority information received from the prioritization system and to use a directed acyclic graph to produce a near-optimal schedule of events in near real-time that does not violate constraints of the plurality of satellites, wherein the constraints include the duplication constraints; and a command module configured to receive the near-optimal schedule of events and create control instructions for the plurality of satellites based at least in part on the near-optimal schedule of events. an event system configured to produce, store, or receive event requests; a constraints system (110, 112) configured to produce, store, or receive characteristics of the plurality of satellites, wherein the characteristics of the plurality of satellites comprise duplication constraints; a prioritization system configured to produce, store, or receive priority information corresponding to the event requests; and a control system operatively coupled to the event system, the constraints system, and the prioritization system, the control system comprising: a scheduling module configured to process the event requests received from the event system, the characteristics of the plurality of satellites received from the constraints system, and the priority information received from the prioritization system and to use a directed acyclic graph to produce a near-optimal schedule of events in near real-time that does not violate constraints of the plurality of satellites, wherein the constraints include the duplication constraints; and a command module configured to receive the near-optimal schedule of events and create control instructions for the plurality of satellites based at least in part on the near-optimal schedule of events. a scheduling module configured to process the event requests received from the event system, the characteristics of the plurality of satellites received from the constraints system, and the priority information received from the prioritization system and to use a directed acyclic graph to produce a near-optimal schedule of events in near real-time that does not violate constraints of the plurality of satellites, wherein the constraints include the duplication constraints; and a command module configured to receive the near-optimal schedule of events and create control instructions for the plurality of satellites based at least in part on the near-optimal schedule of events.