Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Core
  3. NCrontab

NCrontab

Apache-2.0C#v3.4.0

A .NET library for parsing, formatting, and calculating occurrences from crontab expressions.

GitHubGitHub
989 stars141 forks0 contributors

What is NCrontab?

NCrontab is a .NET library that parses, formats, and calculates time occurrences from crontab expressions. It allows developers to integrate cron-like scheduling logic into their .NET applications without needing a full cron daemon or scheduler service. The library handles both standard five-part expressions and extended six-part formats that include seconds.

Target Audience

.NET developers who need to implement time-based scheduling, recurring tasks, or cron expression handling within their applications, such as in background job processors or task runners.

Value Proposition

Developers choose NCrontab for its focused, lightweight approach to crontab expression handling, its reliability in calculating occurrences, and its ability to merge multiple schedules—all without the overhead of a full scheduler.

Overview

Crontab for .NET

Use Cases

Best For

  • Implementing cron expression parsing in .NET background services
  • Calculating next run times for scheduled tasks in applications
  • Building custom job schedulers that use crontab syntax
  • Merging multiple cron schedules into a single timeline
  • Validating and formatting crontab expressions in .NET tools
  • Adding cron-like scheduling to .NET console or web applications

Not Ideal For

  • Applications requiring a full-featured job scheduler with execution, retries, and monitoring
  • Projects needing sub-second precision or event-driven triggers not expressible in standard cron syntax
  • Environments where non-technical users must configure schedules through a graphical interface

Pros & Cons

Pros

Accurate Cron Parsing

Supports both standard five-part and extended six-part (with seconds) crontab expressions, as demonstrated in the README with examples like '0 12 * * Mon' for precise time handling.

Flexible Schedule Calculation

Generates occurrences between any start and end dates and merges multiple schedules into a distinct timeline, shown in the merging example with weekday and weekend schedules.

Lightweight Integration

Provides core crontab functionality without scheduler overhead, making it easy to add via NuGet and integrate into .NET projects, as emphasized in its philosophy.

Cons

No Built-in Execution

The library explicitly states it does not include a scheduler, so developers must implement task execution logic separately, adding complexity for full scheduling solutions.

Exclusive Start Time Quirk

GetNextOccurrence uses an exclusive start time, which can be confusing and requires careful handling in loops, as noted in the README, potentially leading to off-by-one errors.

Limited to Cron Syntax

Cannot handle scheduling rules beyond cron expressions, such as complex dependencies or custom time-based triggers, restricting its use in advanced or non-standard scenarios.

Frequently Asked Questions

Quick Stats

Stars989
Forks141
Contributors0
Open Issues16
Last commit10 months ago
CreatedSince 2015

Tags

#parsing#time-calculation#hacktoberfest#library#schedule#dotnet#dotnet-standard#scheduling#crontab#cron#task-scheduling

Built With

.
.NET Standard

Included in

.NET21.2kCore21.2k
Auto-fetched 1 day ago

Related Projects

HangfireHangfire

An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required

Stars10,147
Forks1,753
Last commit13 days ago
QuartzNetQuartzNet

Quartz Enterprise Scheduler .NET

Stars7,091
Forks1,709
Last commit1 day ago
quartznetquartznet

Quartz Enterprise Scheduler .NET

Stars7,091
Forks1,709
Last commit1 day ago
StatelessStateless

A simple library for creating state machines in C# code

Stars6,268
Forks805
Last commit6 months ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub