Repeating Schedules

Repeating Schedules Guide

This guide explains how schedule data is structured in Timeero and how to create repeating schedules using the Public API.Repeating schedules are useful for shifts that occur on a regular basis, such as daily, weekly, or monthly work schedules.


🔁 Repeating Schedule Concept

Repeating schedules are defined using a repeat rule that specifies:

  • Frequency (daily, weekly, monthly)
  • Interval (every X days/weeks)
  • Days of week (for weekly schedules)
  • End condition (end date or number of occurrences)
ℹ️

Timeero follows a simplified recurrence model similar to calendar systems, but optimized for workforce scheduling.


🧩 Repeat Rule Structure

The repeat object controls how a schedule repeats.

Repeat Object Fields

FieldTypeDescription
repeatstringRepeating rule configuration, holds boolean value either trueor false
repeat_typeintegerDefines how the schedule repeats. possible values are weekly, bi-weekly, tri-weekly, quad-weekly
weeksarrayDays of the week on which the schedule repeats (required when repeat_type is weekly). Value should be a comma-separated of weekdays . e.g sunday,monday,tuesday
repeat_end_datedateThe date on which the repeating schedule ends. Format: MM/DD/YYYY

🛠 Creating a Repeating Schedule

Example: Weekly Schedule (Monday–Friday)

Scenario:
Create a schedule that repeats every week from Monday to Friday, starting on September 1st.

Request

curl --request POST \
     --url https://api.timeero.com/api/public/schedules \
     --header 'Authorization: API KEY' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "user_ids": [
    123,
    680
  ],
  "assigned_by": "10",
  "title": "Daily Standup Meetup",
  "description": "Prepare your daily updates.",
  "start_date": "01/01/2026",
  "end_date": "01/01/2026",
  "start_time": "10:00",
  "end_time": "12:00",
  "timezone": "America/Phoenix",
  "job_id": 5118,
  "all_day": false,
  "color": "bloomy_plum",
  "publish": true,
  "repeat": true,
  "repeat_type": "weekly",
  "repeat_end_date": "05/29/2026",
  "weeks": "monday,tuesday,wednesday,thursday,friday"
}
'

Response

{
  "items": {
    "id": 17735,
    "title": "Daily Standup Meetup",
    "description": "Prepare your daily updates.",
    "start_date": "2026-05-28T19:00:00",
    "end_date": "2026-05-28T21:00:00",
    "color": "#6A5E72",
    "event_pid": "853c3c54d93333b53d8001491e67559c",
    "repeat": true,
    "job_name": "11444_170 Palo Alto",
    "assign_by": "Michael Scott",
    "is_published": true,
    "employee": "",
    "accepted_employees": "",
    "notaccepted_employees": "",
    "job_id": 5118,
    "repeat_date": "2026-05-29T00:00:00",
    "user_ids": [
      661,
      662
    ],
    "utc_dateinfo": {
      "start_date": "2026-05-28T17:00:00",
      "end_date": "2026-05-28T19:00:00",
      "start_time": "17:00:00",
      "end_time": "19:00:00"
    },
    "timezone": "America/Phoenix",
    "timezone_dateinfo": {
      "start_date": "2026-05-28T10:00:00",
      "end_date": "2026-05-28T12:00:00",
      "start_time": "10:00:00",
      "end_time": "12:00:00"
    }
  },
  "message": "Schedule added successfully."
}