Neurotoxin Powered Marketing

    calendario

    1.1.4 • Public • Published

    calendario

    Check if a day is a workday or holiday.

    NPM Version Build Status Coverage Status

    Available too: brazilian portuguese.

    Install

    Before anything, you need to have node and npm installed.

    $ npm install calendario

    Usage

    Currently there are only national calendars (except for Brazil and U.S.A). In next release will be added regional support.

    Available for:

    You can set the calendar using use()

    var calendario = require('calendario');
    calendario.use('BR');

    Setting the calendar for a specific state

    var calendario = require('calendario');
    calendario.use('US-NY');

    You can create your owns calendars, passing a array of objects like these:

    var calendario = require('calendario');
     
    calendario.use('MozillaCalendar', [
        {date: new Date('2020-11-25'), workday: true, summary: "Mozilla Summit"},
        {date: new Date('2021-1-20'), workday: true, summary: "Mozilla another event"}
    ]);
     
    calendario.use('GoogleCalendar', function(set) {
        set([
            {date: new Date('2017-6-3'), workday: true, summary: "Google IO"},
            {date: new Date('2018-10-5'), workday: true, summary: "Google another event"},
        ]);
    });

    You can create your own calendar, passing a ics file

    var calendario = require('calendario');
    calendario.use('BR', {file: 'pt-br.ics', parser: 'ics'});

    Methods

    isWorkday

    Verify if the day in question is a working day, based on defined calendar sources:

    var calendario = require('calendario');
    calendario.use('BR');
     
    calendario.isWorkday(new Date('2015-05-01')); // false
    calendario.isWorkday(new Date('2015-05-02')); // true

    aboutDay

    Get all events about specified day:

    var calendario = require('calendario');
    calendario.use('US');
     
    calendario.aboutDay(new Date('2015-12-25'))
    /*
    [ { date: Fri Dec 25 2015 00:00:00 GMT-0200 (BRST),
        summary: 'Christmas Day',
        workday: false } ]
    */

    range

    Get all events from a specified begin to a specified end:

    var calendario = require('calendario');
    calendario.use('US');
     
    var range = calendario.range()
            .begin(new Date('2015-12-20'))
            .end(new Date('2016-01-05'))
            .toArray();
     
    /*
    [ { date: Thu Dec 24 2015 00:00:00 GMT-0200 (BRST),
        summary: 'Christmas Eve (from 2pm)',
        workday: false },
      { date: Fri Dec 25 2015 00:00:00 GMT-0200 (BRST),
        summary: 'Christmas Day',
        workday: false },
      { date: Thu Dec 31 2015 00:00:00 GMT-0200 (BRST),
        summary: 'New Year\'s Eve (from 2pm)',
        workday: false },
      { date: Fri Jan 01 2016 00:00:00 GMT-0200 (BRST),
        summary: 'New Year\'s Day',
        workday: false } ]
    */

    sourceList

    Return all defined calendars as source:

    var calendario = require('calendario');
    calendario.use('US');
    calendario.use('BR');
     
    calendario.sourceList(); // ['US', 'BR']

    eventList

    Return the events from all sources:

    var calendario = require('calendario');
    calendario.use('MozillaCalendar', [
        {date: new Date('2020-11-25'), workday: true, summary: "Mozilla Summit"},
        {date: new Date('2021-1-20'), workday: true, summary: "Mozilla another event"}
    ]);
     
    calendario.eventList();
    /*
    [ { workday: true,
        summary: 'Mozilla Summit',
        date: Tue Nov 24 2020 22:00:00 GMT-0200 (BRST) },
      { workday: true,
        summary: 'Mozilla another event',
        date: Wed Jan 20 2021 00:00:00 GMT-0200 (BRST) } ]
    */

    clear

    Clear and remove all previously defined sources:

    var calendario = require('calendario');
    calendario.use('BR'); // Sources: ['BR']
    calendario.clear(); // Sources: []

    ignoreWeekends

    By default the calendario don't consider weekends as workdays. However you can change this using:

    var calendario = require('calendario');
    calendario.ignoreWeekends();

    Data Source

    Brazil

    • National Events: Google Calendar; ID: pt-br.brazilian#holiday@group.v.calendar.google.com
    • Regional Events: Wikipedia

    United States of America

    • National Events: Google Calendar; ID: en.usa#holiday@group.v.calendar.google.com
    • Regional Events: Wikipedia

    History

    See Changelog for more details.

    Contributing

    Don't be shy, send a Pull Request! Here is how:

    1. Fork it!
    2. Create your feature branch: git checkout -b my-new-feature
    3. Commit your changes: git commit -m 'Add some feature'
    4. Push to the branch: git push origin my-new-feature
    5. Submit a pull request :D

    About

    License: MIT ® Raphael Amorim

    Install

    npm i calendario

    DownloadsWeekly Downloads

    29

    Version

    1.1.4

    License

    MIT

    Last publish

    Collaborators

    • raphamorim