diff --git a/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/api/SchedulerControl.java b/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/api/SchedulerControl.java
new file mode 100644
index 0000000..be098a5
--- /dev/null
+++ b/deltaspike/modules/scheduler/api/src/main/java/org/apache/deltaspike/scheduler/api/SchedulerControl.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.deltaspike.scheduler.api;
+
+public interface SchedulerControl
+{
+    boolean isSchedulerEnabled();
+
+    boolean shouldJobBeStarted(Class<?> jobClass);
+}
diff --git a/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/DefaultSchedulerControl.java b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/DefaultSchedulerControl.java
new file mode 100644
index 0000000..72f4e0c
--- /dev/null
+++ b/deltaspike/modules/scheduler/impl/src/main/java/org/apache/deltaspike/scheduler/impl/DefaultSchedulerControl.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.deltaspike.scheduler.impl;
+
+import org.apache.deltaspike.scheduler.api.SchedulerControl;
+
+import javax.enterprise.context.ApplicationScoped;
+
+@ApplicationScoped
+public class DefaultSchedulerControl implements SchedulerControl
+{
+    @Override
+    public boolean isSchedulerEnabled()
+    {
+        return true;
+    }
+
+    @Override
+    public boolean shouldJobBeStarted(Class<?> jobClass)
+    {
+        return true;
+    }
+}
