NBSchedule Documentation

(Release 0.5.0)



NBSchedule is a program designed to add support for time related options to Newsbin. There has been discussion about this facility possibly being built into a future Newsbin release, but in the meantime I have developed NBSchedule to fill that gap.

This type of automation is one that Newsbin users have been requesting for some time. The need for such facilities has become more urgent as many ISP's (mine included) are starting to introduce monthly download caps. Some of them allow unrestricted downloads at certain times of day but apply download caps at other times. NBSchedule allows you to set up Newsbin to work well within such constraints.

The prime purpose of NBSchedule is to enable you to cause pre-defined actions to happen within Newsbin at specific times. You can set actions to occur once at a specified time, or to repeat at user defined intervals. In normal use, NBSchedule runs in the background and only manifests itself as an icon in the Windows System Tray in the area next to the clock, so it is very unobtrusive. NBSchedule will (optionally) write a log of what it has carried out on your behalf if you want to be able to find out what it has done on your behalf.

Options currently supported are:

NBSchedule is primarily intended for working with Newsbin 5.
It will also work with Newsbin 4.33B6 and NB4.33B8 which are still available for those who have not moved on to Newsbin 5. These releases are available for download by registered uses from the Newsbin web site. A few of the features (such as Hide/Show Newsbin and Start Newsbin) work with any Newsbin release as they do not need the TCP/IP Command Interface.


The software is provided in two formats:

The following files will be created while NBSchedule is running:

If you want to remove the NBSchedule program from your system, then the best way is to do it via the Add/Remove Programs option within the Control Panel.   However if you want to be lazy then as NBSchedule software make no use of the Windows registry to store information, you can also get away with simply deleting the NBSchedule program and its associated files.


When you first install NBSchedule it will be set to run in the foreground. This will result in a screen that looks like the following being displayed.

This screen shows the current list of tasks that have been configured, giving details of when they are next scheduled to run (if ever); when they were last run; and the result of the last run. When NBSchedule is first launched there will be no tasks defined, so the main dialog will look as shown above.

A more complex example with some tasks defined might look like the following:

This case is set up to allow for the a case where the ISP applies download caps between 10:00-15:00 and then from 16:00-21:00. During those periods Newsbin has been set to be paused, and is also hidden from view. There are also 2 tasks defined that are set as inactive so will not be run automatically. It also illustrates that the size of the main window can be changed to show a bit more information, and this change is then remembered as the default for future runs of NBSchedule.

By default the tasks are in the order they will next be run, but you can click on any of the column headers to define the sort column. Clicking the same header again reverses the sort. The current sort order will be remembered across a NBSchedule closedown and restart.

Note that if you untick the task in the main screen then its details will be remembered but it will no longer be automatically run.

The buttons on the main screen are:


This is where settings relating to how NBSchedule should operate when it first starts up are specified.

Most of the options on the Configuration screens have accompanying Tooltip texts that are popped up if you place your mouse over the label for option. The Tooltips give a more detailed explanation of the prupoes of the configuration option.

Note that you can switch between two different methods of showing the list of options. I would be interested in feedback of which style users prefer.

Tabbed Dialog

Console mode


These options control what NBSchedule does when it is started up


This is where various Auto Close options are specified.


This is where the details of the Newsbin TCP Command Interface are specified.


This is where security options are specified. They are used to control what options are available when NBSchedule is running in the System Tray, and are really only relevant in environments where more than one user is likely to be using the PC running NBSchedule. They stop NBSchedule settings from being tampered with very easily.

Note that the passwords are stored in a non-obvious format in the configuration file. The algorithm will withstand casual inspection but is not intended to be proof against a serious attempt to crack the passwords.


NBSchedule has some extensive logging facilities built in. The level of detail that is to be logged can be specified, and this is where this is done..


NBSchedule uses the term Tasks to derfine an action that is to be performed at a specified time and optionally repeated at set intervals. If you select the New button from the main screen you will be presented with the Task Settings dialog with default initial values. If you press the Aapply button then this new task will be created and added to those displayed in the Main NBSchedule window.

If you highlight a task in the main Window and select Edit then the Task Settigns dialog will be presented, but this time with any existing values pre-filled.

The Task Settings dialog for defining a task looks like the following:

Any fields that are not currently relevant will be greyed out (or hidden).

The meaning of the various settings are:

The Repeat options allow you to specify at what frequency the task you have specified should be repeated. This does require NBSchedule to be running at the time when the task becomes due/

The Range options allow to put a limit on the number of times that any repeat options should be carried out.


This section provides a reference of what features are available when NBSchedule is used in conjunction with different versions of Newsbin.

Facility Newsbin 5.0
(or later)
Newsbin 4.3B6/8 Other versions
Minimize to Systray x x x
Start Newsbin x x x
Close Newsbin x x  
Hide/Show Newsbin x x x
Bandwidth Limiter ON/OFF x x  
Pause File Download ON/OFF x x  
Update Enabled Group Headers x    
Update a Specified Group's Headers x    
Start Header Download   x  
Stop Header Download   x  
Compress Stored Headers   x  
Clear Post List x x  
Load File



Copy Folder x  
x = supported

For more details of the TCP/IP command syntax supported by Newsbin please refer to the Newsbin TCP Interface Reference documentation

Facilities that do not use TCP/IP Interface features are described in more detail below:



The NBSchedule program supports a number of command line options. They are intended primarily to help with debugging so it is unlikely that they will be used by the average user, but they are documented here for completeness.
Logging=true   Enable diagnostic logging.  Takes precedence over any configuration file settings
LogFile=filename   Set the log file name. This will take precedence over any configuration file settings
LogClass=class1,class2   Only log the class names supplied.  You will only know what are valid class names to you use with this option if you either have access to the source, or have been advised what value to use by someone who has access to the source.
LogExcludeClass=class1,class2   Exclude the class names supplied from logging. Excludes take precedence over includes
LogExcludeEntryExit=true   Excludes logging of function entry / exit points

* Trouble Shooting Problems

NBSchedule is designed to be as easy to use a spossible. However PC's vary tremendously in the way they are set up and the exact software they are running. This section therfore covers how you might proceed to try and isolate problems in using NBSchedule.


This section contains ideas that I have had for future enhancements to the facilities offered in this library. I would welcome any feedback on features that existing users would find useful.


This library and associated documentation has been produced by:

Dave Walker
22 Kimptons Mead
Potters Bar,
United Kingdom

Web: http://www.itimpi.com

This software and its associated documentation are copyright 2005-2009 by D.J.Walker. All rights are reserved.

Every effort has been made to ensure that the software operates correctly as specified in this document. However no guarantee of any kind is given that the software is reliable or that the descriptions contained in this document is accurate. It is up to the user of the software to satisfy himself that it is suitable for the use to which it will be put.


Not Yet released: Release 0.5.1

The following are planned or already under development

January 2010: Release 0.5.0

October 2009: Release 0.4.7

January 2005: Release 0.4.6

December 2005: Release 0.4.5

June 2005: Release 0.4.4

June 2005: Release 0.4.3

 June 2005: Release 0.4.2

June 2005: Release 0.4.1

May 2005: Release 0.4

April 2005: Release 0.3

March 2005: Release 0.2

February 2005: Release 0.1