Index: src/wp-includes/cron.php
===================================================================
--- src/wp-includes/cron.php	(revision 36626)
+++ src/wp-includes/cron.php	(working copy)
@@ -214,9 +214,11 @@
  * Retrieve the next timestamp for a cron event.
  *
  * @since 2.1.0
+ * @since 4.5.0 The `$args` parameter can now be `false`.
  *
- * @param string $hook Action hook to execute when cron is run.
- * @param array $args Optional. Arguments to pass to the hook's callback function.
+ * @param string      $hook Action hook to execute when cron is run.
+ * @param array|false $args Optional. Arguments to pass to the hook's callback function.
+ *                          Pass false for any arguments. Default empty.
  * @return false|int The UNIX timestamp of the next time the scheduled event will occur.
  */
 function wp_next_scheduled( $hook, $args = array() ) {
@@ -225,7 +227,7 @@
 	if ( empty($crons) )
 		return false;
 	foreach ( $crons as $timestamp => $cron ) {
-		if ( isset( $cron[$hook][$key] ) )
+		if ( false === $args && isset( $cron[ $hook ] ) || isset( $cron[$hook][$key] ) )
 			return $timestamp;
 	}
 	return false;
Index: tests/phpunit/tests/cron.php
===================================================================
--- tests/phpunit/tests/cron.php	(revision 36626)
+++ tests/phpunit/tests/cron.php	(working copy)
@@ -85,6 +85,32 @@
 
 	}
 
+	/**
+	 * @ticket 35491
+	 */
+	function test_wp_next_scheduled_no_args() {
+		$hook = rand_str();
+		$ts1 = strtotime( '+30 minutes' );
+		$ts2 = strtotime( '+2 hours' );
+
+		$this->assertFalse( wp_next_scheduled( $hook, false ) );
+
+		wp_schedule_event( $ts1, 'hourly', $hook, array( 'foo' ) );
+		wp_schedule_event( $ts2, 'daily', $hook, array( 'bar' ) );
+		wp_schedule_event( $ts2, 'twicedaily', $hook, array( 'baz' ) );
+
+		$this->assertSame( $ts1, wp_next_scheduled( $hook, false ) );
+
+		wp_unschedule_event( $ts1, $hook, array( 'foo' ) );
+		$this->assertSame( $ts2, wp_next_scheduled( $hook, false ) );
+
+		wp_unschedule_event( $ts2, $hook, array( 'bar' ) );
+		$this->assertSame( $ts2, wp_next_scheduled( $hook, false  ) );
+
+		wp_unschedule_event( $ts2, $hook, array( 'baz' ) );
+		$this->assertFalse( wp_next_scheduled( $hook, false ) );
+	}
+
 	function test_unschedule_event() {
 		// schedule an event and make sure it's returned by wp_next_scheduled
 		$hook = rand_str();
