login

API documentation

Fedocal provides a small read-only API.

The API supports GET and POST requests with the same arguments.

A trailing slash is optional on all API endpoints. There is no difference between using one and not using one.

Responses are always served as application/json (unless JSONP is explicitly requested, in which case fedocal returns the appropriate application/javascript).

Retrieve calendars

The /api/calendars/ endpoint returns the meetings meeting the provided criteria.

Response format

Sample response:

System Message: WARNING/2 (<string>, line 13)

Cannot analyze code. Pygments package not found.

.. code-block:: javascript

    {
        "calendars": [
            {
                "calendar_description": "test",
                "calendar_editor_group": "packager2",
                "calendar_admin_group": "packager",
                "calendar_contact": "test",
                "calendar_name": "test"
            },
            {
                "calendar_description": "asd",
                "calendar_editor_group": "",
                "calendar_admin_group": "",
                "calendar_contact": "asd",
                "calendar_name": "Another test"
            }
        ]
    }

Retrieve meetings

The /api/meetings/ endpoint returns the meetings meeting the provided criteria.

Response format

Sample response:

System Message: WARNING/2 (<string>, line 13)

Cannot analyze code. Pygments package not found.

.. code-block:: javascript

    {
        "meetings": [
            {
                "meeting_time_start": "23:00:00",
                "meeting_information": "",
                "meeting_time_stop": "23:00:00",
                "calendar_name": "test",
                "meeting_date_end": "2013-05-27",
                "meeting_manager": [ "pingou2" ],
                "meeting_date": "2013-05-27",
                "meeting_name": "test1.5",
                "meeting_location": "None",
                "meeting_timezone": "UTC"
            },
            {
                "meeting_time_start": "06:00:00",
                "meeting_information": "",
                "meeting_time_stop": "07:00:00",
                "calendar_name": "test",
                "meeting_date_end": "2013-05-28",
                "meeting_manager": [ "pingou" ],
                "meeting_date": "2013-05-28",
                "meeting_name": "test3",
                "meeting_location": null,
                "meeting_timezone": "UTC"
            }
        ],
        "arguments": {
            "start": "2013-05-04",
            "calendar": "test",
            "end": "2013-11-30",
            "region": null
        }
    }

The meeting_time_start, meeting_time_end, meeting_date and meeting_date_end contain time in "UTC". The meeting_timezone indicates the timezone the meeting is registered with. If the meeting_timezone is not "UTC", the meeting time will change according to DST rules of the specified timezone.

The arguments item in the root dictionary contains all possible arguments, and displays the value used (the default if the argument was not provided).

Time arguments

Below is a table describing what timeframe messages are received from depending on what combination of time options you provide.

start end Message timeframe
no no the last 30 days and the coming 180 days
yes no from start until the coming 180 days
no yes the last 30 days until end
yes yes between start and end
start

Return results starting at date start (prefered format is "+%Y-%m-%d" see date "+%Y-%m-%d").

Default: 30 days ago date "+%Y-%m-%d" -d "30 days ago"

end

Return results ending at date end (prefered format is "+%Y-%m-%d" see date "+%Y-%m-%d").

Default: coming 180 days date "+%Y-%m-%d" -d "180 days"

Filter arguments

calendar

Restrict the meetings to a specific calendar.

Default: all calendars

region

Restrict the meeting to a specific region.

If the calendar does not have support for regions enabled, no meetings will be found matching this criteria and no meetings will be returned.

Default: all regions