dateme
Dates and intervals.
dateme is a recurrence and scheduling engine. Given a schedule JSON object,
it computes occurrence instants with timezone handling, calendar overlays,
makeup rules, bounds, traces, and bindings for Python and JavaScript.
{
"freq": { "type": "weekly", "days": ["mon"], "time": "17:30" },
"timezone": "America/New_York",
"overlays": [{ "calendar": "nyse_holiday", "rule": "exclude" }],
"makeup": "after"
}
Install
pip install dateme
For JavaScript development from this repository:
cd js
pnpm install
pnpm build
Quick Python Example
from datetime import datetime, timezone
from dateme import Schedule
schedule = Schedule({
"freq": {"type": "weekly", "days": ["mon"], "time": "17:30"},
"timezone": "America/New_York",
"overlays": [{"calendar": "nyse_holiday", "rule": "exclude"}],
"makeup": "after",
})
after = datetime(2026, 1, 13, tzinfo=timezone.utc)
schedule.next(after)
# datetime.datetime(2026, 1, 20, 22, 30, tzinfo=datetime.timezone.utc)
Quick JavaScript Example
import init, { Schedule } from "dateme";
await init();
const schedule = new Schedule({
freq: { type: "weekly", days: ["mon"], time: "17:30" },
timezone: "America/New_York",
overlays: [{ calendar: "nyse_holiday", rule: "exclude" }],
makeup: "after",
});
schedule.next(new Date("2026-01-13T00:00:00Z"));
// 2026-01-20T22:30:00.000Z
Documentation
- Getting started: a first working schedule.
- How-to guides: recipes for market calendars, makeup, custom calendars, traces, iteration, and persistence.
- Schedule model: complete JSON reference.
- Python API: constructors, query methods, typed builders, providers, traces, and iteration.
- JavaScript API: WebAssembly initialization, methods, TypeScript types, providers, traces, and iteration.
- How the engine works: background on recurrence generation, overlays, makeup, DST, bounds, and termination.
Supported Schedule Features
- Frequencies:
hourly,daily,weekly,every_n_days,every_n_weeks,monthly_by_day,monthly_by_weekday,yearly,quarterly,custom_cron. - Calendars: US federal holidays/business days, NYSE holidays/trading days, inline date sets, unions, differences, and custom providers.
- Makeup rules:
none,before,after,nearest, weekday maps, cascades, hop limits, failure modes, weekday constraints, same-week constraints, weekend exclusion, and next-occurrence bounds. - Queries:
next,previous,until,since,upcoming, trace variants, occurrence membership, counts, descriptions, and bounded iteration.
Metadata
Release files for dateme 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dateme-0.2.0.tar.gz | 1.7 MB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dateme-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.28+ x86-64 | Details |
| dateme-0.2.0-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| dateme-0.2.0-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 6.6 MB
Release files / dateme-0.2.0.tar.gz
| Download URL | dateme-0.2.0.tar.gz |
|---|---|
| Size | 1.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5b6a3e859c806fca7200e758f150fdab8023778aa5906294553bdf4638a97ecd
|
|
BLAKE2b-256 checksum How to use checksums |
edfe77a3c74e9228c38bea720c08f0e9f26976675b055a1a5b3f40562f71525b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dateme-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl
| Download URL | dateme-0.2.0-cp311-abi3-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 1.6 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
b4a2d5014bd6e1478f9be3ad5503a0b3b8401414034b5ba6d4727354a9abb7e8
|
|
BLAKE2b-256 checksum How to use checksums |
8c2102ca6419b5c0dc488953820e40874afac2c1fbadadb45bfdd1cfb0460e58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dateme-0.2.0-cp310-abi3-win_amd64.whl
| Download URL | dateme-0.2.0-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 1.8 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
9abe47b9783bb7ae5c5e9a0c0c10758b04412794ae7643d28d04283d12a1b20b
|
|
BLAKE2b-256 checksum How to use checksums |
be96e6cc9b6c88c6e5d0eff27cd29c552d76201c51ad78d8440835d14be3d487
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / dateme-0.2.0-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | dateme-0.2.0-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
ee1bb958e88c4493067e6e379ec0ec617a6b7c9fc89bb327f7754ac787376f69
|
|
BLAKE2b-256 checksum How to use checksums |
a76be18edfd4c0dab2e737ca665ed9c5c0cee3498c919e79445da509c0d8894e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|