Skip to content
AstroWay/api v2.325.0 · docs
all systems operational

Hindu calendar: ICS feed of festivals and vrats

GET
/vedic/calendar/ics
request.sh
curl -X GET https://api.astroway.info/v1/vedic/calendar/ics?year=2026&latitude=28.6139&longitude=77.209 \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json"

The festivals and vrats of a year for a place as an iCalendar file (text/calendar, RFC 5545): one all-day event per observance, the rule, tithi window, parana and source in the description, a stable UID per festival, date and place. Query: year, latitude, longitude, timezone (IANA or auto), include (festivals, vrats or single vrat types, comma separated; default festivals,vrats), tradition. The key travels in X-Api-Key, so fetch it from your server and serve the file to calendar apps; it is priced as one festivals call.

year required
integer
>= 1900 <= 2100
Example
2026

Gregorian year; events are those dated in it.

latitude required
number
>= -66 <= 66
Example
28.6139

Latitude in decimal degrees, north positive.

longitude required
number
>= -180 <= 180
Example
77.209

Longitude in decimal degrees, east positive.

timezone
string
default: auto
Example
Asia/Kolkata

IANA zone name, or auto to look it up from the coordinates. Followed day by day, summer time included.

include
string
default: festivals,vrats
Example
festivals,ekadashi

Comma list: festivals, vrats, or single vrat types (ekadashi, pradosh, sankashti, purnima, amavasya, masik-shivaratri).

tradition
string
default: smarta
Allowed values: smarta vaishnava

Whose reckoning decides the day where traditions differ (Rama Navami, Janmashtami).

ayanamsaId
integer
default: 1

Ayanamsa id; 1 is Lahiri.

fields
string

Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.

Example
planets.name,planets.longitude
precision
integer
<= 15

Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.

Example
4

ICalendar (RFC 5545): one all-day VEVENT per festival and vrat, the rule, tithi window, parana and source in DESCRIPTION.

Media type text/calendar
string

Validation error

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Validation failed: date: Date must be YYYY-MM-DD",
"details": [
{
"path": "date",
"message": "Date must be YYYY-MM-DD"
}
]
}
}

Missing or invalid API key

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid API key"
}
}