2
2
[ ![ License] ( https://img.shields.io/github/license/orltom/on-call-schedule )] ( /LICENSE )
3
3
4
4
# On-Call Schedule
5
- It helps to create or synchronize on-call schedules, allowing users to define custom rules or use
6
- predefined ones. Important factors, such as absences due to holidays or other time off, are automatically considered.
5
+ This tool is a flexible command-line tool designed to simplify the creation and management of on-call schedules
6
+ for on-call teams. It addresses common limitations in existing incident management tools, such as lack of calendar
7
+ syncing, inadequate handling of holidays, and inflexible scheduling rules.
7
8
8
- ## Create on-call schedule plan
9
+ # ✨ Current Features
10
+ - Custom Rule-Based On-Call Scheduling: Create on-call schedules based on your own rules or use default rules, such as holiday checkers.
11
+ - Multiple Export Formats: Generate on-call schedules in various formats, including CSV and JSON
9
12
13
+ # 🛠️ Planned Features
14
+ - iCalender Export
15
+ - Automatically generate on-call schedules by syncing with a shared group calendar.
16
+ - Export schedules directly to popular incident management tools.
10
17
11
- ### Usage
18
+
19
+ # Installation
20
+ To install the latest version of ocsctl:
21
+ ``` shell
22
+ go install github.com/orltom/on-call-schedule@latest
23
+ ```
24
+
25
+ Or clone the repository and build manually:
26
+
27
+ ``` shell
28
+ git clone https://github.com/orltom/on-call-schedule.git
29
+ go build -o ocsctl ./cmd
30
+ ```
31
+
32
+ ## Usage
33
+ ### Create on-call schedule plan
12
34
Here is an example of how to create an on-call duty plan
13
35
``` shell
14
- cat > demo .json << EOL
36
+ cat > team .json << EOL
15
37
{
16
38
"employees": [
17
39
{"id": "joe@example.com", "name": "Joe"},
@@ -22,14 +44,24 @@ cat > demo.json << EOL
22
44
}
23
45
EOL
24
46
25
- ./ ocsctl create \
47
+ ocsctl create \
26
48
--start " 2024-01-01 00:00:00" \
27
49
--end " 2024-03-29 00:00:00" \
28
50
--duration 168 \
29
- --team-file demo.json \
51
+ --team-file team.json \
52
+ --primary-rules=vacation,minimumfourshiftgap
53
+ --secondary-rules=vacation,minimumtwoshiftgap
30
54
--output table
31
55
```
56
+ ## Help Command
57
+ ``` shell
58
+ ocsctl [command] -h
59
+ ```
60
+
32
61
33
62
## Contributing
34
63
Contributions are welcome in any form, be it code, logic, documentation, examples, requests, bug reports, ideas or
35
64
anything else that will help this project move forward.
65
+
66
+ ## License
67
+ This project is licensed under the MIT License. See the LICENSE file for more details.
0 commit comments