"""Generate hourly timeslot JSON for use with Crabfit scheduling tool. Produces a list of ISO-format datetime strings covering every hour across the scheduling window. Update the start_date and end_date constants before running. Outputs (written to data/): - crabfit_timeslots.json List of hourly timeslot strings Env vars: - None """ import json from datetime import datetime, timedelta from pathlib import Path DATA_DIR = Path(__file__).parent.parent.parent / "data" # Generate hourly time slots from Feb 1 to March 3, 2026 # 24 hours a day, America/Los_Angeles timezone start_date = datetime(2026, 2, 1, 0, 0) # Feb 1, 2026, midnight end_date = datetime(2026, 3, 3, 23, 0) # March 3, 2026, 11pm times = [] current = start_date while current <= end_date: # Format: YYYY-MM-DDTHH:MM times.append(current.strftime("%Y-%m-%dT%H:%M")) current += timedelta(hours=1) print(f"Generated {len(times)} time slots") print(f"First: {times[0]}") print(f"Last: {times[-1]}") # Save to file for use with open(DATA_DIR / "crabfit_timeslots.json", "w") as f: json.dump(times, f) print("Saved to crabfit_timeslots.json")