diff --git a/app/modules/cron.c b/app/modules/cron.c index 6d315c85..4071f47c 100644 --- a/app/modules/cron.c +++ b/app/modules/cron.c @@ -135,10 +135,13 @@ static size_t lcron_findindex(lua_State *L, cronent_ud_t *ud) { static int lcron_schedule(lua_State *L) { cronent_ud_t *ud = luaL_checkudata(L, 1, "cron.entry"); - char *strdesc = (char*)luaL_checkstring(L, 2); - struct cronent_desc desc; - lcron_parsedesc(L, strdesc, &desc); - ud->desc = desc; + char *strdesc = (char*)luaL_optstring(L, 2, NULL); + + if (strdesc != NULL) { + struct cronent_desc desc; + lcron_parsedesc(L, strdesc, &desc); + ud->desc = desc; + } size_t i = lcron_findindex(L, ud); diff --git a/docs/modules/cron.md b/docs/modules/cron.md index 09c2fe91..9568cdee 100644 --- a/docs/modules/cron.md +++ b/docs/modules/cron.md @@ -83,10 +83,10 @@ end) ## cron.entry:schedule() -Sets a new schedule mask. +Sets a new schedule mask and/or restores an unscheduled entry. #### Syntax -`schedule(mask)` +`schedule([mask])` #### Parameters - `mask` - [crontab](https://en.wikipedia.org/wiki/Cron#Overview)-like string mask for schedule