Itinerary: Lazy time scheduling toolset for .NET
What does Itinerary do?
- Describe an abstract schedule of timed events as an expression, such as the equivalent of:
"Every Friday at 5:30 pm for 1 hour, except on holidays", for any given time range.
- Parse expressions to an Itinerary
IScheduleobject at runtime.
IEnumerableof timed events within any given time range.
- Perform complex boolean set math on schedules.
IScheduleproperties programmatically, then reserialize back to TDL expression string.
What doesn't Itinerary do?
- Does not actively run tasks on a schedule. That's your job.
For that, check out Quartz.NET and the provided
ScheduleTestsunit test class.
- Does not perform timezone interpretation or computation. All date/times are timezone agnostic.
Why use Itinerary?
- Lightweight, stateless, lazily generate events on demand.
- You need to integrate a cron-like scheduler into your app.
- You already use a scheduler, like Quartz.NET, but need more powerful scheduling logic.
- You need to logically describe arbitrary or complex recurrance patterns.
- You need to forecast scheduled timed events.
- You need to store the recurrance logic (not the events) for later reuse.
How do I get started using Itinerary?
- Learn TDL expression syntax from the Itinerary Wiki on GitHub: https://github.com/spoulson/Itinerary/wiki
- Test TDL expression syntax using the TDL Explorer tool in the solution.
- Check out the example projects.
- Refer to unit tests for usage reference.
- Visual Studio 2013 (Professional edition or better required for unit test execution).
- NUnit to run unit tests. Typically, Visual Studio 2013 Professional + NUnit Test Adapter extension will do the job.
- Java SE JDK (optional, required to recompile ANTLR grammar).
- .NET 4.5.1 Framework.
None reported at time of release.
See GitHub repo for issue tracking.
Itinerary is an open source project licensed under the Creative Commons Attribution license: http://creativecommons.org/licenses/by/3.0/legalcode.