Orthodox Calendar Service

Orthocal-service is an Eastern Orthodox calendar service providing a RESTful api describing commemorations, fasting, scripture readings and other information for each day of the liturgical year. This service is meant to be a tool for mobile developers and parish webmasters to use to provide this information to parishioners and other guests. My primary purpose for building it was to build a service to support a daily scripture reading skill for the Amazon Alexa.

Presently the service is Beta-quality. Use at your own risk. With assistance, I may eventually provide support for other US jurisdictions, but presently only the OCA is fully supported. There is tentative support for ROCOR, but fasting guidelines may not be 100% correct. Source code and a docker image for self-hosting are freely available.

Algorithm

The algorithm and data used in this service are based on the algorithm and data developed by Paul Kachur's orthodox_calendar project. As such, the commemoration data is incomplete. The primary purpose of this service is to provide daily scripture readings for lay persons and not to be an authoritative guide to the feasts and fasts of the Church.

Scriptures

Because this is open-source and free, the service must use a translation of the Bible that is either public domain or has agreeable license terms. At this point I have chosen to stick with the King James Version. While not ideal, many clergy consider this to be one of the best options for Orthodox. Because the rubrics refer to Septuagint versification, a few of the Old Testament readings may be incorrect.

Calendar

An ical feed is available at:

/api/oca/ical/

Or for the Julian calendar:

/api/rocor/ical/

RESTful API

The api supports Cross-Origin Resource Sharing (CORS). Information for a day of the year can be fetched by including the jurisdiction and date in the url as follows:

/api/<jurisdiction>/<year>/<month>/<day>/
/api/<jurisdiction>/<year>/<month>/

For example:

/api/oca/2018/2/20/

Though the month view excludes the text of scriptures due to size and performance, you can fetch information for all of February using the following:

/api/oca/2018/2/

To get information for today, simply leave off the date as follows:

/api/oca/

Tentative support for ROCOR (and other jurisdictions that use the Julian calendar) is available as well. For example:

/api/rocor/2018/1/7/

A very simple example of how to fetch and display this information using jQuery follows.

	<!doctype html>
	<html>
	  <body>
		<h1 id="title"></h1>
		<p id="fast"></p>

		<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
		<script>
		  $(document).ready(function() {
			$.ajax('https://orthocal.info/api/oca/').done(function (data) {
			  $('#title').text(data.titles[0]);
			  $('#fast').text(data.fast_level_desc);
			});
		  });
		</script>
	  </body>
	</html>
		

Bugs

Please report bugs using the Github issue tracker.