Skip to main content

Sync project lead with ical (for on call assignees)

Project description


Jira On Call Assignee

Check an ical url (files not supported yet) for current on call.



pip install joca

Configuration file

The configuration holds 3 sections, local, jira and projects.

  • local is for configuring logging.
  • jira houses the username, password and server url of the Jira instance joca connects to.
  • projects is a list of objects that tell joca what project, what ical and the regex to apply to the event summary to extract the users name.

Here is a basic configuration:

    "local": {
        "logging": {
            "file": "/var/log/joca.log",
            "format": "%(asctime)s %(levelname)s %(message)s",
            "level": "info"
    "jira": {
        "server": "",
        "username": "api-user",
        "password": "hunter2"
    "projects": [
            "key": "PROJ",
            "ical": "",
            "regex": "^(.*)$"
  • local.logging, format is not required.
  • local.logging.level doesn’t need to be uppercase.
  • projects.#.key doesn’t have to be uppercase, joca will handle that.

projects is a list, so feel free to have multiple projects set up, and it will loop over them.

To do

Check out todo.txt for the basic list of to-do’s.

todo.txt follows the syntax rules laid out here.

Version Numbering

joca follows the three major tenets of SemVer.

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format. (Preston-Warner, 2013)

Build metadata MAY be denoted by appending a hyphen and a series of dot separated identifiers immediately following the patch or pre-release version.

Build version follows RFC-1912 section 2.2:

The recommended syntax is YYYYMMDDnn (YYYY=year, MM=month, DD=day, nn=revision number. This won’t overflow until the year 4294” (Barr, 1996)

Example: 1.23.4-2018033000:

  • Major version 1
  • Minor version 23
  • Patch version 4
  • Build number 2018033000 => 2018 03 30 00

Please read the full spec at the link above or in the citations.

Exit codes

Exit/Error codes use the best approximation from errno.h.

Code errno.h joca usage
2 ENOENT The file does not exist.
5 EIO The output was not expected.
13 EACCES Jira returned a 401 Not Authorized.
22 EINVAL Supposed Lead cannot be made Project Lead.
43 EPROTONOSUPPORT File failed schema validation.
78 ENOSYS Required import is not installed.


Preston-Warner, T. (2013). Semantic Versioning 2.0.0. Retrieved November 27, 2017, from

Barr, D. (1996). Common DNS Operational and Configuration Errors. Retrieved on March 30, 2018, from

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for joca, version 1.4.2
Filename, size File type Python version Upload date Hashes
Filename, size joca-1.4.2-py2-none-any.whl (11.3 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size joca-1.4.2.tar.gz (22.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page