ഉള്ളടക്കത്തിലേക്ക് പോവുക

ഘടകം:Add to Calendar

Schoolwiki സംരംഭത്തിൽ നിന്ന്
14:10, 14 ഓഗസ്റ്റ് 2025-നു ഉണ്ടായിരുന്ന രൂപം സൃഷ്ടിച്ചത്:- Jinoytommanjaly (സംവാദം | സംഭാവനകൾ) ('local function google_calendar_link(args, date_txt) return '[https://calendar.google.com/calendar/render?action=TEMPLATE' .. '&text=' .. mw.uri.encode(args.text or '') .. '&dates=' .. date_txt .. '&details=' .. mw.uri.encode(args.details or '') .. '&location=' .. mw.uri.encode(args.location or '') .. ' Google]' end local function outlook_calendar_link(args, date_t, end_date_...' താൾ സൃഷ്ടിച്ചിരിക്കുന്നു)

ഈ ഘടകത്തിന്റെ വിവരണം ഘടകം:Add to Calendar/വിവരണം എന്ന താളിൽ നിർമ്മിക്കാവുന്നതാണ്

local function google_calendar_link(args, date_txt)
    return '[https://calendar.google.com/calendar/render?action=TEMPLATE' ..
        '&text=' .. mw.uri.encode(args.text or '') ..
        '&dates=' .. date_txt ..
        '&details=' .. mw.uri.encode(args.details or '') ..
        '&location=' .. mw.uri.encode(args.location or '') ..
        ' Google]'
end

local function outlook_calendar_link(args, date_t, end_date_t)
    return '[https://outlook.live.com/calendar/0/deeplink/compose?path=/calendar/action/compose' ..
        '&rru=addevent' ..
        '&subject=' .. mw.uri.encode(args.text or '') ..
        '&startdt=' .. os.date('!%Y-%m-%dT%H:%M:%SZ', os.time(date_t)) ..
        '&enddt=' .. os.date('!%Y-%m-%dT%H:%M:%SZ', os.time(end_date_t)) ..
        '&body=' .. mw.uri.encode(args.details or '') ..
        '&location=' .. mw.uri.encode(args.location or '') ..
        ' Outlook]'
end

local function yahoo_calendar_link(args, date_t, end_date_t)
    return '[https://calendar.yahoo.com/?v=60' ..
        '&TITLE=' .. mw.uri.encode(args.text or '') ..
        '&ST=' .. os.date('!%Y%m%dT%H%M%SZ', os.time(date_t)) ..
        '&ET=' .. os.date('!%Y%m%dT%H%M%SZ', os.time(end_date_t)) ..
        '&DESC=' .. mw.uri.encode(args.details or '') ..
        '&in_loc=' .. mw.uri.encode(args.location or '') ..
        ' Yahoo]'
end

local function ics_file_link(args, date_t, end_date_t)
    local ics = table.concat({
        'BEGIN:VCALENDAR',
        'VERSION:2.0',
        'BEGIN:VEVENT',
        'SUMMARY:' .. args.text or '',
        'DTSTART:' .. os.date('!%Y%m%dT%H%M%SZ', os.time(date_t)),
        'DTEND:' .. os.date('!%Y%m%dT%H%M%SZ', os.time(end_date_t)),
        'DESCRIPTION:' .. args.details or '',
        'LOCATION:' .. args.location or '',
        'END:VEVENT',
        'END:VCALENDAR'
    }, '\r\n')
    local encoded_ics = mw.uri.encode(ics)
    return '[data:text/calendar;charset=utf8,' .. encoded_ics .. ' iCal]'
end

local function main(frame)
    local getArgs = require('Module:Arguments with aliases').getArgs
    local arg_aliases = { text={'text','title'}, date={'date','start'}, end_date={'end_date','end'}, details={'details','description'}, location={'location','venue'}, timezone={'timezone','tz'} }
    local args = getArgs(frame, { aliases = arg_aliases })

    local date_t = get_date(args.date)
    local end_date_t = get_date(args.end_date) or date_t
    local tz_offset = (args.timezone and get_utc_offset(args.timezone)) or 0
    local date_u = os.time(date_t) + tz_offset
    local end_date_u = os.time(end_date_t) + tz_offset
    local date_txt = os.date('%Y%m%dT%H%M%SZ', date_u) .. '/' .. os.date('%Y%m%dT%H%M%SZ', end_date_u)

    return '<span class="add-to-calendar">' ..
        google_calendar_link(args, date_txt) .. ' | ' ..
        outlook_calendar_link(args, date_t, end_date_t) .. ' | ' ..
        yahoo_calendar_link(args, date_t, end_date_t) .. ' | ' ..
        ics_file_link(args, date_t, end_date_t) ..
        '</span>'
end

return { main = main }
"https://schoolwiki.in/index.php?title=ഘടകം:Add_to_Calendar&oldid=2804816" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്