windmill-6-schedule-management

Sub-skill of windmill: 6. Schedule Management.

5 stars

Best use case

windmill-6-schedule-management is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Sub-skill of windmill: 6. Schedule Management.

Teams using windmill-6-schedule-management should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/6-schedule-management/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/_archive/operations/automation/windmill/6-schedule-management/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/6-schedule-management/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How windmill-6-schedule-management Compares

Feature / Agentwindmill-6-schedule-managementStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Sub-skill of windmill: 6. Schedule Management.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 6. Schedule Management

## 6. Schedule Management


```python
# scripts/scheduling/dynamic_scheduler.py
"""
Dynamically manage schedules based on business rules.
"""

import wmill
from datetime import datetime, timedelta
from typing import List, Optional


def main(
    schedule_configs: List[dict],
    dry_run: bool = True,
):
    """
    Update Windmill schedules based on configuration.

    Args:
        schedule_configs: List of schedule configurations
        dry_run: If True, only report what would change

    Returns:
        Summary of schedule changes
    """
    client = wmill.Client()
    workspace = wmill.get_workspace()

    changes = []

    for config in schedule_configs:
        schedule_path = config["path"]
        enabled = config.get("enabled", True)
        cron = config.get("cron")
        timezone = config.get("timezone", "UTC")

        # Check business hours constraint
        if config.get("business_hours_only", False):
            # Modify cron to only run during business hours (9-17)
            if cron:
                cron_parts = cron.split()
                if len(cron_parts) >= 5:
                    cron_parts[1] = "9-17"  # Hours
                    cron_parts[4] = "1-5"   # Weekdays only
                    cron = " ".join(cron_parts)

        # Check maintenance window constraint
        if config.get("skip_maintenance_windows", False):
            maintenance = get_maintenance_windows()
            now = datetime.now()
            in_maintenance = any(
                m["start"] <= now <= m["end"]
                for m in maintenance
            )
            if in_maintenance:
                enabled = False

        change = {
            "path": schedule_path,
            "cron": cron,
            "timezone": timezone,
            "enabled": enabled,
            "dry_run": dry_run
        }

        if not dry_run:
            # Update schedule via Windmill API
            try:
                client.update_schedule(
                    workspace=workspace,
                    path=schedule_path,
                    schedule={
                        "schedule": cron,
                        "timezone": timezone,
                        "enabled": enabled
                    }
                )
                change["status"] = "updated"
            except Exception as e:
                change["status"] = "error"
                change["error"] = str(e)
        else:
            change["status"] = "would_update"

        changes.append(change)

    return {
        "total_schedules": len(schedule_configs),
        "changes": changes,
        "dry_run": dry_run
    }


def get_maintenance_windows():
    """Fetch maintenance windows from configuration."""
    try:
        config = wmill.get_variable("u/admin/maintenance_windows")
        return config.get("windows", [])
    except:
        return []
```

Related Skills

cron-job-management

5
from vamseeachanta/workspace-hub

Patterns for creating, testing, debugging, and maintaining cron-driven automation in workspace-hub, including log strategy, failure analysis, and safe git-aware job design.

github-repo-management

5
from vamseeachanta/workspace-hub

Clone, create, fork, configure, and manage GitHub repositories. Manage remotes, secrets, releases, and workflows. Works with gh CLI or falls back to git + GitHub REST API via curl.

data-management

5
from vamseeachanta/workspace-hub

Comprehensive DataFrame loading, filtering, transformation, and data pipeline management from Excel, CSV, and multiple sources with YAML-driven configuration.

task-management

5
from vamseeachanta/workspace-hub

Simple task management using a shared TASKS.md file for tracking commitments and action items.

memory-management

5
from vamseeachanta/workspace-hub

Two-tier memory system for decoding workplace shorthand, acronyms, nicknames, and internal language.

close-management

5
from vamseeachanta/workspace-hub

Manage the month-end close process with task sequencing, dependencies, and status tracking.

source-management

5
from vamseeachanta/workspace-hub

Configure and query MCP data sources for enterprise search. Use when checking which sources (chat, email, cloud storage, CRM, knowledge base) are connected, connecting new ones, or tuning query priority and rate limits.

knowledge-management

5
from vamseeachanta/workspace-hub

Create, organize, and maintain support knowledge base content to reduce ticket volume

core-context-management-windows-task-scheduler

5
from vamseeachanta/workspace-hub

Sub-skill of core-context-management: Windows Task Scheduler (+2).

core-context-management-validatecontextsh

5
from vamseeachanta/workspace-hub

Sub-skill of core-context-management: validate_context.sh (+4).

core-context-management-size-limits-mandatory

5
from vamseeachanta/workspace-hub

Sub-skill of core-context-management: Size Limits (MANDATORY) (+3).

core-context-management-response-format-rules

5
from vamseeachanta/workspace-hub

Sub-skill of core-context-management: Response Format Rules (+3).