agentsclimarketplace

Run3 pdf calendar parser

Skill cxcscmu/SkillLearnBench/skills/b3-teacher-feedback-gemini-3.1-flash-lite-preview/schedule-planning/run3_pdf_calendar_parser

[COLM'26] SkillLearnBench is the first benchmark for evaluating continual learning methods that automatically generate agent skills.

Install
npx -y skills add cxcscmu/SkillLearnBench --skill run3_pdf_calendar_parser

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

What its author says it does

Copied from the file, not written here

Parses /root/calendar.pdf to extract appointment timings, color-coded blocks, and time-axis mappings using pdfplumber.

SKILL.md

1.4 KB, as published. Nobody here has run it

  1. Initialize PDF Analysis: Use pdfplumber to open /root/calendar.pdf. Iterate through pages to extract both text objects (to locate time labels) and graphical shapes (to identify rectangles).
  2. Calculate Scaling: Identify horizontal lines in the PDF. Calculate pixels_per_15min by measuring the vertical distance between two consecutive horizontal time-marker lines.
  3. Map Coordinates to Time:
    • Extract the text timestamps (e.g., "09:00 AM", "09:15 AM") and their corresponding Y-coordinates.
    • Create a reference dictionary mapping Y-offsets to absolute time.
    • Calculate the start time of the calendar grid based on the top-most time label.
  4. Identify Appointments and Colors:
    • Extract rectangles from page.rects. Access rect['non_stroking_color'] or rect['stroking_color'] to identify color properties.
    • Classify rectangles: if color is blue (check for specific RGB/CMYK values representing the "low-priority" color), tag as flexible. Otherwise, tag as busy.
    • Convert rectangle Y-coordinates into start_time and end_time using the pixels_per_15min ratio.
  5. Output: Return a list of objects containing start, end, and is_flexible (boolean) for each block.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.