%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/calendar/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/calendar/icalendar.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@33 Version number of icalendar.el.
(defconst icalendar-version "0.19" (#$ . 408))
(byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314DD\315\316\317\306\301&\210\310\320\312\313\321DD\322\316\323\306\301&\210\310\324\312\313\325DD\326\316\323\306\301&\210\310\327\312\313\330DD\331\316\323\306\301&\210\310\332\312\313\333DD\334\316\323\306\301&\210\310\335\312\313\336DD\337\316\323\306\301&\210\310\340\312\313\341DD\342\316\323\343\344\306\301&	\210\310\345\312\313\346DD\347\316\323\306\301&\210\310\350\312\313\351DD\352\316\323\306\301&\210\310\353\312\313\354DD\355\316\356\306\301&\210\310\357\312\313\360DD\361\316\362\306\301&\210\310\363\312\313\364DD\365\316\323\306\301&\210\310\366\312\313\367DD\370\343\371\316\356\306\301&	\210\310\372\312\313\373DD\374\343\371\316\362\306\301&	\210\310\375\312\313\376DD\377\343\371\316\201@\306\301&	\207" [custom-declare-group icalendar nil "iCalendar support." :prefix "icalendar-" :group calendar custom-declare-variable icalendar-import-format funcall function #[0 "\300\207" [#1="%s%d%l%o"] 1 #1#] "Format for importing events from iCalendar into Emacs diary.\nIt defines how iCalendar events are inserted into diary file.\nThis may either be a string or a function.\n\nIn case of a formatting STRING the following specifiers can be used:\n%c Class, see `icalendar-import-format-class'\n%d Description, see `icalendar-import-format-description'\n%l Location, see `icalendar-import-format-location'\n%o Organizer, see `icalendar-import-format-organizer'\n%s Summary, see `icalendar-import-format-summary'\n%t Status, see `icalendar-import-format-status'\n%u URL, see `icalendar-import-format-url'\n%U UID, see `icalendar-import-format-uid'\n\nA formatting FUNCTION will be called with a VEVENT as its only\nargument.  It must return a string.  See\n`icalendar-import-format-sample' for an example." :type (choice (string :tag "String") (function :tag "Function")) icalendar-import-format-summary #[0 "\300\207" [#2="%s"] 1 #2#] "Format string defining how the summary element is formatted.\nThis applies only if the summary is not empty! `%s' is replaced\nby the summary." string icalendar-import-format-description #[0 "\300\207" [#3="\n Desc: %s"] 1 #3#] "Format string defining how the description element is formatted.\nThis applies only if the description is not empty! `%s' is\nreplaced by the description." icalendar-import-format-location #[0 "\300\207" [#4="\n Location: %s"] 1 #4#] "Format string defining how the location element is formatted.\nThis applies only if the location is not empty! `%s' is replaced\nby the location." icalendar-import-format-organizer #[0 "\300\207" [#5="\n Organizer: %s"] 1 #5#] "Format string defining how the organizer element is formatted.\nThis applies only if the organizer is not empty! `%s' is\nreplaced by the organizer." icalendar-import-format-url #[0 "\300\207" [#6="\n URL: %s"] 1 #6#] "Format string defining how the URL element is formatted.\nThis applies only if the URL is not empty! `%s' is replaced by\nthe URL." icalendar-import-format-uid #[0 "\300\207" [#7="\n UID: %s"] 1 #7#] "Format string defining how the UID element is formatted.\nThis applies only if the UID is not empty! `%s' is replaced by\nthe UID." :version "24.3" icalendar-import-format-status #[0 "\300\207" [#8="\n Status: %s"] 1 #8#] "Format string defining how the status element is formatted.\nThis applies only if the status is not empty! `%s' is replaced by\nthe status." icalendar-import-format-class #[0 "\300\207" [#9="\n Class: %s"] 1 #9#] "Format string defining how the class element is formatted.\nThis applies only if the class is not empty! `%s' is replaced by\nthe class." icalendar-recurring-start-year #[0 "\300\207" [2005] 1] "Start year for recurring events.\nSome calendar browsers only propagate recurring events for\nseveral years beyond the start time.  Set this string to a year\njust before the start of your personal calendar." integer icalendar-export-hidden-diary-entries #[0 "\300\207" [t] 1] "Determines whether hidden diary entries are exported.\nIf non-nil hidden diary entries (starting with `&') get exported,\nif nil they are ignored." boolean icalendar-uid-format #[0 "\300\207" [#10="emacs%t%c"] 1 #10#] "Format of unique ID code (UID) for each iCalendar object.\nThe following specifiers are available:\n%c COUNTER, an integer value that is increased each time a uid is\n   generated.  This may be necessary for systems which do not\n   provide time-resolution finer than a second.\n%h HASH, a hash value of the diary entry,\n%s DTSTART, the start date (excluding time) of the diary entry,\n%t TIMESTAMP, a unique creation timestamp,\n%u USERNAME, the variable `user-login-name'.\n\nFor example, a value of \"%s_%h@mydomain.com\" will generate a\nUID code for each entry composed of the time of the event, a hash\ncode for the event, and your personal domain name." icalendar-export-sexp-enumeration-days #[0 "\300\207" [14] 1] "Number of days over which a sexp diary entry is enumerated.\nIn general sexp entries cannot be translated to icalendar format.\nThey are therefore enumerated, i.e. explicitly evaluated for a\ncertain number of days, and then exported.  The enumeration starts\non the current day and continues for the number of days given here.\n\nSee `icalendar-export-sexp-enumerate-all' for a list of sexp\nentries which by default are NOT enumerated." "25.1" icalendar-export-sexp-enumerate-all #[0 "\300\207" [nil] 1] "Determines whether ALL sexp diary entries are enumerated.\nIf non-nil all sexp diary entries are enumerated for\n`icalendar-export-sexp-enumeration-days' days instead of\ntranslating into an icalendar equivalent.  This affects the\nfollowing sexp diary entries: `diary-anniversary',\n`diary-cyclic', `diary-date', `diary-float', `diary-block'.  All\nother sexp entries are enumerated in any case." icalendar-export-alarms #[0 "\300\207" [nil] 1] "Determine if and how alarms are included in exported diary events." (choice (const :tag "Do not include alarms in export" nil) (list :tag "Create alarms in exported diary entries" (integer :tag "Advance time (minutes)" :value 10) (set :tag "Alarm type" (list :tag "Audio" (const audio :tag "Audio")) (list :tag "Display" (const display :tag "Display")) (list :tag "Email" (const email) (repeat :tag "Attendees" (string :tag "Email"))))))] 10)
#@34 Enable icalendar debug messages.
(defvar icalendar-debug nil (#$ . 6789))
(defconst icalendar--weekday-array ["SU" "MO" "TU" "WE" "TH" "FR" "SA"])
(byte-code "\300\301!\210\300\302!\207" [require calendar diary-lib] 2)
#@70 Print message ARGS if `icalendar-debug' is non-nil.

(fn &rest ARGS)
(defalias 'icalendar--dmsg #[128 "\205\301\302\"\207" [icalendar-debug apply message] 4 (#$ . 7014)])
#@290 Return a new buffer containing the unfolded contents of a buffer.
Folding is the iCalendar way of wrapping long lines.  In the
created buffer all occurrences of CR LF BLANK are replaced by the
empty string.  Argument FOLDED-ICAL-BUFFER is the folded input
buffer.

(fn FOLDED-ICAL-BUFFER)
(defalias 'icalendar--get-unfolded-buffer #[257 "\300\301!r\211q\210\302 \210\303!\210\304 \210eb\210\305\306\307\310#\203%\311\312\307\211#\210\202)\211\207" [get-buffer-create " *icalendar-work*" erase-buffer insert-buffer-substring icalendar--clean-up-line-endings re-search-forward "
?\n[ 	]" nil t replace-match ""] 6 (#$ . 7196)])
#@224 Replace DOS- and MAC-like line endings with unix line endings.
All occurrences of (CR LF) and (LF CF) are replaced with LF in
the current buffer.  This is necessary in buffers which contain a
mix of different line endings.
(defalias 'icalendar--clean-up-line-endings #[0 "\212eb\210\300\301\302\303#\205\304\305\302\211#\210\202)\207" [re-search-forward "
\n\\|\n
" nil t replace-match "\n"] 4 (#$ . 7833)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias icalendar--rris replace-regexp-in-string nil make-obsolete "27.1"] 4)
#@376 Recursively read the next iCalendar element in the current buffer.
INVALUE gives the current iCalendar element we are reading.
INPARAMS gives the current parameters.....
This function calls itself recursively for each nested calendar element
it finds.  The current buffer should be an unfolded buffer as returned
from `icalendar--get-unfolded-buffer'.

(fn INVALUE INPARAMS)
(defalias 'icalendar--read-element #[514 "\300\211\211\211\211\211\211\211\211\301\300\262	\211\203\321\302\303\300\301#\203\321\304\305\306!!\262\307u\210\300\262\300\262\310\311!\203\210\302\312\300\211#\210\304\305\306!!\262\302\313\300\301#\210\307u\210\305\314!\206N\305\315!\262D\262\310\316!\203}\302\317\300\301#\210\305\314!\203o\305\314!\262\202t\305\315!\262\320\"\262\202U\320\"\262\202)\310\321!\204\222\322\323!\210\306u\210`\300\210\211`{\262\210E\262\324\267\202\305\320	\325\304!	\"C\"\262	\202
\300\262\202
\320\n	C\"\262\n\202
\203\342F\202\344\207" [nil t re-search-forward "^\\([A-Za-z0-9-]+\\)[;:]" intern match-string 1 -1 looking-at ";" ";\\([A-Za-z0-9-]+\\)=" "\\(\\([^;,:\"]+\\)\\|\"\\([^\"]+\\)\"\\)[;:]" 2 3 "," "\\(\\([^;,:]+\\)\\|\"\\([^\"]+\\)\"\\)" append ":" error "Oops" #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (BEGIN 174 END 191)) icalendar--read-element] 17 (#$ . 8388)])
#@88 For the given EVENT return the value of the first occurrence of PROP.

(fn EVENT PROP)
(defalias 'icalendar--get-event-property #[514 "\3002+AA@\301\203'@\262\211@=\203 \302\300AA@\"\210A\262\202	\266\3010\207" [found nil throw] 7 (#$ . 9784)])
#@89 For the given EVENT return attributes of the first occurrence of PROP.

(fn EVENT PROP)
(defalias 'icalendar--get-event-property-attributes #[514 "\3002*AA@\301\203&@\262\211@=\203\302\300A@\"\210A\262\202	\266\3010\207" [found nil throw] 7 (#$ . 10048)])
#@88 For the given EVENT return a list of all values of the property PROP.

(fn EVENT PROP)
(defalias 'icalendar--get-event-properties #[514 "AA@\300\211\203(@\262@=\203!\301\302AA@\303\"\"\262A\262\202\207" [nil append split-string ","] 9 (#$ . 10324)])
#@163 Return all children of the given NODE which have a name NAME.
For instance the VCALENDAR node can have VEVENT children as well as VTODO
children.

(fn NODE NAME)
(defalias 'icalendar--get-children #[514 "\300AAA@@=\203\262\211\203<\301\300\302\303\304\305\306\307\n!\310\"\311\312%\"\"\211\203;\2038\313\"\262\202;\211\262\210\207" [nil delq mapcar make-byte-code 257 "\301\300\"\207" vconcat vector [icalendar--get-children] 4 "\n\n(fn N)" append] 13 (#$ . 10596)])
#@80 Return the list of all existing events in the given ICALENDAR.

(fn ICALENDAR)
(defalias 'icalendar--all-events #[257 "\300C\301\302\303\304\305\306!\307\"\310\311%\237\"\210\211\242\207" [nil mapc make-byte-code 257 "\300\301\302\303\"\300\242\"\240\207" vconcat vector [append icalendar--get-children VEVENT] 6 "\n\n(fn ELT)"] 9 (#$ . 11089)])
#@48 Split VALUE-STRING at `;='.

(fn VALUE-STRING)
(defalias 'icalendar--split-value #[257 "\300\211\211\203;r\301\302!q\210\303\300!\210\304 \210c\210eb\210\305\306\300\307#\203:\310\311\312!!\262\311\313!\262\314DC\"\262\202)\207" [nil get-buffer-create " *icalendar-work*" set-buffer-modified-p erase-buffer re-search-forward "\\([A-Za-z0-9-]+\\)=\\(\\([^;:]+\\)\\|\"\\([^\"]+\\)\"\\);?" t intern match-string 1 2 append] 8 (#$ . 11445)])
#@251 Return a cons of two strings representing a timezone start.
ALIST is an alist entry from a VTIMEZONE, like STANDARD.
DST-P is non-nil if this is for daylight savings time.
The strings are suitable for assembling into a TZ variable.

(fn ALIST DST-P)
(defalias 'icalendar--convert-tz-offset #[514 "\300\236AA@\301\236AA@\302\236AA@\303\236AA@\232\205\330\205\330\204+\211\205\330\304!\305\236A@\306\236A@\307\236A@\204K\310\230\205\326\205\326	\203T\311\202U\312	\313H\314=\203b\315\202c\316\317\320\321#\322\317
\321\323#\260\203z\320\202\200\324\317\325\"!\203\211\326\202\230\211\327=\203\223\202\230\317\313\325#\211\330\230\203\241\331\262\203\251\326\262\332\333\333\327=\203\271\334\202\275\335!\336\317\337\340#\322\317\340\325#\322\317\325\"\260\f\266\202B\266\204\207" [TZOFFSETTO TZOFFSETFROM RRULE DTSTART icalendar--split-value FREQ BYMONTH BYDAY "YEARLY" "DST" "STD" 0 45 "+" "-" substring 1 3 ":" 5 icalendar--get-weekday-number -2 "1" -1 "-1" "5" "M" "." "0" int-to-string "/" -6 -4] 28 (#$ . 11903)])
#@107 Turn a VTIMEZONE ALIST into a cons (ID . TZ-STRING).
Return nil if timezone cannot be parsed.

(fn ALIST)
(defalias 'icalendar--parse-vtimezone #[257 "\300\301\302\"!\303\304\"@AA@\211\205\305\306\"\303\307\"@AA@\211\205&\305\310\"\205G\211\205G\203D@@\311A\311A\260\202F@B\207" [icalendar--convert-string-for-import icalendar--get-event-property TZID icalendar--get-children DAYLIGHT icalendar--convert-tz-offset t STANDARD nil ","] 13 (#$ . 12992)])
#@160 Convert all timezones in the ICALENDAR into an alist.
Each element of the alist is a cons (ID . TZ-STRING),
like `icalendar--parse-vtimezone'.

(fn ICALENDAR)
(defalias 'icalendar--convert-all-timezones #[257 "\300\301@\302\"\211\203!\211@\303!\262\211\203\211B\262A\266\202\202\210\211\207" [nil icalendar--get-children VTIMEZONE icalendar--parse-vtimezone] 6 (#$ . 13474)])
#@179 Return a timezone string for the time zone in PROP-LIST, or nil if none.
ZONE-MAP is a timezone alist as returned by `icalendar--convert-all-timezones'.

(fn PROP-LIST ZONE-MAP)
(defalias 'icalendar--find-time-zone #[514 "\300\301\"\211\205
\302\"A\207" [plist-get TZID assoc] 6 (#$ . 13868)])
#@487 Return ISODATETIMESTRING in format like `decode-time'.
Converts from ISO-8601 to Emacs representation.  If
ISODATETIMESTRING specifies UTC time (trailing letter Z) the
decoded time is given in the local time zone!  If optional
parameter DAY-SHIFT is non-nil the result is shifted by DAY-SHIFT
days.
ZONE, if provided, is the timezone, in any format understood by `encode-time'.

FIXME: multiple comma-separated values should be allowed!

(fn ISODATETIMESTRING &optional DAY-SHIFT ZONE)
(defalias 'icalendar--decode-isodatetime #[769 "\300!\210\205\371\301\302\303\304#!\301\302\304\305#!\301\302\305\306#!\303\211\211G\307V\203=\301\302\n\310\311#!\262\301\302\n\311\312#!\262G\313V\203O\301\302\n\312\314#!\262G\314V\203d\315\316\n\314H\"\203d\317\262\203\321\320E\211\3218\262\322\303U\203\202\323\324!\202\274\303V\203\366S\262\325\211\211@\262\211A@\262\3218\262\326S_\\\321V\203\343\211\327\304_\\\330\245Z\262\211\303W\203\304\331!S\262\211\304\246\303U\205\332\211\332\246\303U?\206\332\211\333\246\303U\262\203\343\211T\262\266\204\334_\304\245\332\245[\333\245%\202\274\331T!\262\335\211\211@\262\211A@\262\3218\262\326S_\\\321V\203S\211\327\304_\\\330\245Z\262\211\303W\2034\331!S\262\211\304\246\303U\205J\211\332\246\303U?\206J\211\333\246\303U\262\203S\211T\262\266\204\334_\304\245\332\245[\333\245\336\211\211@\262\211A@\262\3218\262\326S_\\\321V\203\270\211\327\304_\\\330\245Z\262\211\303W\203\231\331!S\262\211\304\246\303U\205\257\211\332\246\303U?\206\257\211\333\246\303U\262\203\270\211T\262\266\204&\266\203	\\!\211@\262\211A@\262\3218\262\210\211\n\322\337\257	\3401\355\341\342!!0\202\365\210\343\344\"\210\211\262\266\206\207" [icalendar--dmsg read substring 0 4 6 8 12 9 11 13 14 15 char-equal 90 t calendar-gregorian-from-absolute 2 nil user-error "There was no year zero" + 31 23 10 abs 100 400 365 - (12 31 -1) -1 (error) decode-time encode-time message "Cannot decode \"%s\""] 28 (#$ . 14173)])
#@445 Convert ISODURATIONSTRING into format provided by `decode-time'.
Converts from ISO-8601 to Emacs representation.  If ISODURATIONSTRING
specifies UTC time (trailing letter Z) the decoded time is given in
the local time zone!

Optional argument DURATION-CORRECTION shortens result by one day.

FIXME: TZID-attributes are ignored....!
FIXME: multiple comma-separated values should be allowed!

(fn ISODURATIONSTRING &optional DURATION-CORRECTION)
(defalias 'icalendar--decode-isoduration #[513 "\205\250\300 \301\302\303\304\305!\306\"\307$\216\310\311\"\210\302\211\211\211\211\211\312\224\203:\313\314\n\307\224\307\225#!\262\203\233S\262\202\233\315\224\203\210\316\224\203R\317\313\314\320\224\320\225#!_\262\317\224\203c\313\314\n\321\224\321\225#!\262\322\224\203t\313\314\n\323\224\323\225#!\262\324\224\203\233\313\314\n\325\224\325\225#!\262\202\233\326\224\203\233\317\313\314\327\224\327\225#!_\262\257\266\206)\262\207" [match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 string-match "^P[+-]?\\(\\(\\([0-9]+\\)D\\)\\|\\(\\(\\([0-9]+\\)D\\)?T\\(\\([0-9]+\\)H\\)?\\(\\([0-9]+\\)M\\)?\\(\\([0-9]+\\)S\\)?\\)\\|\\(\\([0-9]+\\)W\\)\\)$" 2 read substring 4 5 7 6 8 9 10 11 12 13 14] 15 (#$ . 16247)])
#@143 Add TIME1 to TIME2.
Both times must be given in decoded form.  One of these times must be
valid (year > 1900 or something).

(fn TIME1 TIME2)
(defalias 'icalendar--add-decoded-times #[514 "\300\301\302\303@@\"\304\"A@A@\\\3058\3058\\\3068\3068\\\3078\3078\\\310	8\310	8\\\311\211&!\207" [decode-time encode-time time-convert time-add integer 2 3 4 5 nil] 12 (#$ . 17541)])
#@252 Convert the decoded DATETIME to American-style format.
Optional argument SEPARATOR gives the separator between month,
day, and year.  If nil a blank character is used as separator.
American format: "month day year".

(fn DATETIME &optional SEPARATOR)
(defalias 'icalendar--datetime-to-american-date #[513 "\205\300\301\3028\206\303\3048\206\303\3058&\207" [format "%d%s%d%s%d" 4 " " 3 5] 10 (#$ . 17940)])
(byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias icalendar--datetime-to-noneuropean-date icalendar--datetime-to-american-date nil make-obsolete "icalendar 0.19"] 4)
#@252 Convert the decoded DATETIME to European format.
Optional argument SEPARATOR gives the separator between month,
day, and year.  If nil a blank character is used as separator.
European format: (day month year).
FIXME

(fn DATETIME &optional SEPARATOR)
(defalias 'icalendar--datetime-to-european-date #[513 "\205\300\301\3028\206\303\3048\206\303\3058&\207" [format "%d%s%d%s%d" 3 " " 4 5] 10 (#$ . 18550)])
#@236 Convert the decoded DATETIME to ISO format.
Optional argument SEPARATOR gives the separator between month,
day, and year.  If nil a blank character is used as separator.
ISO format: (year month day).

(fn DATETIME &optional SEPARATOR)
(defalias 'icalendar--datetime-to-iso-date #[513 "\205\300\301\3028\206\303\3048\206\303\3058&\207" [format "%d%s%d%s%d" 5 " " 4 3] 10 (#$ . 18978)])
#@289 Convert the decoded DATETIME to diary format.
Optional argument SEPARATOR gives the separator between month,
day, and year.  If nil a blank character is used as separator.
Call icalendar--datetime-to-*-date according to the current
calendar date style.

(fn DATETIME &optional SEPARATOR)
(defalias 'icalendar--datetime-to-diary-date #[513 "\301\302\303\"!\"\207" [calendar-date-style intern-soft format "icalendar--datetime-to-%s-date"] 6 (#$ . 19385)])
#@122 Extract the time part of a decoded DATETIME into 24-hour format.
Note that this silently ignores seconds.

(fn DATETIME)
(defalias 'icalendar--datetime-to-colontime #[257 "\300\301\3028A@#\207" [format "%02d:%02d" 2] 5 (#$ . 19849)])
#@66 Return the month number for the given MONTHNAME.

(fn MONTHNAME)
(defalias 'icalendar--get-month-number #[257 "\3012\302C\227\303\304\305\306\307\310\"\311\"\312\313%\"\266\3140\207" [calendar-month-name-array found 1 mapc make-byte-code 257 "\211\227\211\301\230\204\302\303\304#\301\230\203\305\306\300\242\"\210\300\211\242T\240\207" vconcat vector [substring 0 3 throw found] 6 "\n\n(fn MONTH)" -1] 11 (#$ . 20091)])
#@62 Return the number for the ABBREVWEEKDAY.

(fn ABBREVWEEKDAY)
(defalias 'icalendar--get-weekday-number #[257 "\211\203\"\3012#\302C\227\303\304\305\306\307\310\"\311\"\312\313%\"\266\2020\207\314\207" [icalendar--weekday-array found 0 mapc make-byte-code 257 "\211\227\211\301\230\203\302\303\300\242\"\210\300\211\242T\240\207" vconcat vector [throw found] 5 "\n\n(fn DAY)" -1] 11 (#$ . 20532)])
#@89 Return the list of numbers for the comma-separated ABBREVWEEKDAYS.

(fn ABBREVWEEKDAYS)
(defalias 'icalendar--get-weekday-numbers #[257 "\211\2050\301C\302\303\304\305\306\307!\310\"\311\312%\"\313\314\302\303\304\315\306\307!\316\"\317\320%\321\227\322\"\"\"\266\202\207" [icalendar--weekday-array -1 mapcar make-byte-code 257 "\300\211\242T\240\210\211\227\300\242B\207" vconcat vector [] 3 "\n\n(fn DAY)" delq nil "\301\300\"A\207" [assoc] 4 "\n\n(fn ABBREVDAY)" split-string ","] 12 (#$ . 20944)])
#@47 Return the abbreviated WEEKDAY.

(fn WEEKDAY)
(defalias 'icalendar--get-weekday-abbrev #[257 "\3012\302C\227\303\304\305\306\307\310\"\311\"\312\313%\"\266\3140\207" [calendar-day-name-array found 0 mapc make-byte-code 257 "\211\227\211\301\230\204\303\304\305#\301\230\203\306\307\n\300\242H\"\210\300\211\242T\240\207" vconcat vector [icalendar--weekday-array substring 0 3 throw found] 6 "\n\n(fn DAY)" nil] 11 (#$ . 21461)])
#@180 Convert DATE to iso-style date.
DATE must be a list of the form (month day year).
If DAY-SHIFT is non-nil, the result is shifted by DAY-SHIFT days.

(fn DATE &optional DAY-SHIFT)
(defalias 'icalendar--date-to-isodate #[513 "\300\211\3018\262\302\303U\203\304\305!\202O\303V\203\211S\262\306\211\211@\262\211A@\262\3018\262\307S_\\\301V\203v\211\310\311_\\\312\245Z\262\211\303W\203W\313!S\262\211\311\246\303U\205m\211\314\246\303U?\206m\211\315\246\303U\262\203v\211T\262\266\204\316_\311\245\314\245[\315\245%\202O\313T!\262\317\211\211@\262\211A@\262\3018\262\307S_\\\301V\203\346\211\310\311_\\\312\245Z\262\211\303W\203\307\313!S\262\211\311\246\303U\205\335\211\314\246\303U?\206\335\211\315\246\303U\262\203\346\211T\262\266\204\316_\311\245\314\245[\315\245\320\211\211@\262\211A@\262\3018\262\307S_\\\301V\203K\211\310\311_\\\312\245Z\262\211\303W\203,\313!S\262\211\311\246\303U\205B\211\314\246\303U?\206B\211\315\246\303U\262\203K\211T\262\266\204&\266\203\206V\303\\!\321\322\3018@A@$\207" [calendar-gregorian-from-absolute 2 nil 0 user-error "There was no year zero" + 31 23 4 10 abs 100 400 365 - (12 31 -1) format "%04d%02d%02d"] 21 (#$ . 21911)])
#@336 Convert diary-style DATESTRING to iso-style date.
If DAY-SHIFT is non-nil, the result is shifted by DAY-SHIFT days
-- DAY-SHIFT must be either nil or an integer.  This function
tries to figure the date style from DATESTRING itself.  If that
is not possible it uses the current calendar date style.

(fn DATESTRING &optional DAY-SHIFT)
(defalias 'icalendar--datestring-to-isodate #[513 "\301\302\211\303 \304\305\306\307\310!\311\"\312$\216\313\314\"\203@\315\316\317\224\317\225#!\262\315\316\320\224\320\225#!\262\315\316\312\224\312\225#!\262\202\313\321\"\203{\315\316\317\224\317\225#!\262\315\316\320\224\320\225#!\262\315\316\312\224\312\225#!\262\322=\203\262\262\202\313\323\"\203\252\315\316\317\224\317\225#!\262\324\316\320\224\320\225#!\262\315\316\312\224\312\225#!\262\202\313\325\"\203\331\315\316\317\224\317\225#!\262\324\316\320\224\320\225#!\262\315\316\312\224\312\225#!\262\202\313\326\"\203\315\316\320\224\320\225#!\262\324\316\317\224\317\225#!\262\315\316\312\224\312\225#!\262)\210\305V\205\203\327E\211\3208\262\302\305U\203%\330\331!\202_\305V\203\231S\262\332\211\211@\262\211A@\262\3208\262\333S_\\\320V\203\206\211\334\335_\\\336\245Z\262\211\305W\203g\337!S\262\211\335\246\305U\205}\211\340\246\305U?\206}\211\341\246\305U\262\203\206\211T\262\266\204\342_\335\245\340\245[\341\245%\202_\337T!\262\343\211\211@\262\211A@\262\3208\262\333S_\\\320V\203\366\211\334\335_\\\336\245Z\262\211\305W\203\327\337!S\262\211\335\246\305U\205\355\211\340\246\305U?\206\355\211\341\246\305U\262\203\366\211T\262\266\204\342_\335\245\340\245[\341\245\344\211\211@\262\211A@\262\3208\262\333S_\\\320V\203[\211\334\335_\\\336\245Z\262\211\305W\203<\337!S\262\211\335\246\305U\205R\211\340\246\305U?\206R\211\341\246\305U\262\203[\211T\262\266\204&\266\203\206f\305\\!\345\346\347\3208@A@$!\210\346\347\3208@A@$\262\207" [calendar-date-style -1 nil match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 string-match "\\s-*\\([0-9]\\{4\\}\\)[ 	/]\\s-*0?\\([1-9][0-9]?\\)[ 	/]\\s-*0?\\([1-9][0-9]?\\)" read substring 1 2 "\\s-*0?\\([1-9][0-9]?\\)[ 	/]\\s-*0?\\([1-9][0-9]?\\),?[ 	/]\\s-*\\([0-9]\\{4\\}\\)" american "\\s-*\\([0-9]\\{4\\}\\)[ 	/]\\s-*\\([A-Za-z][^ ]+\\)[ 	/]\\s-*0?\\([123]?[0-9]\\)" icalendar--get-month-number "\\s-*0?\\([123]?[0-9]\\)[ 	/]\\s-*\\([A-Za-z][^ ]+\\)[ 	/]\\s-*\\([0-9]\\{4\\}\\)" "\\s-*\\([A-Za-z][^ ]+\\)[ 	/]\\s-*0?\\([123]?[0-9]\\),?[ 	/]\\s-*\\([0-9]\\{4\\}\\)" calendar-gregorian-from-absolute user-error "There was no year zero" + 31 23 4 10 abs 100 400 365 - (12 31 -1) icalendar--dmsg format "%04d%02d%02d"] 24 (#$ . 23178)])
#@314 Convert a time like 9:30pm to an iso-conform string like T213000.
In this example the TIMESTRING would be "9:30" and the
AMPMSTRING would be "pm".  The minutes may be missing as long
as the colon is missing as well, i.e. "9" is allowed as
TIMESTRING and has the same result as "9:00".

(fn TIMESTRING AMPMSTRING)
(defalias 'icalendar--diarytime-to-isotime #[514 "\205g\300 \301\302\303\304\305!\306\"\307$\216\310\311\")\262\211@A\203&A@\2022\211G\312V\2031\313\2022\314\315P!\203L\316\230\203L\211\317W\203L\211\317\\\262\203a\320\230\203a\211\317Y\203a\211\317Z\262\321\322\"\266\204\207" [match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 split-string ":" 2 "" "00" read "pm" 1200 "am" format "T%04d00"] 9 (#$ . 25984)])
#@68 Escape comma and other critical characters in STRING.

(fn STRING)
(defalias 'icalendar--convert-string-for-export #[257 "\300\301\302#\207" [replace-regexp-in-string "," "\\\\,"] 5 (#$ . 26783)])
#@73 Remove escape chars for comma, semicolon etc. from STRING.

(fn STRING)
(defalias 'icalendar--convert-string-for-import #[257 "\300\301\302\300\303\304\300\305\306\300\307\310\f####\207" [replace-regexp-in-string "\\\\n" "\n " "\\\\\"" "\"" "\\\\;" ";" "\\\\," ","] 14 (#$ . 26987)])
#@206 Export diary file to iCalendar format.
All diary entries in the file DIARY-FILENAME are converted to iCalendar
format.  The result is appended to the file ICAL-FILENAME.

(fn DIARY-FILENAME ICAL-FILENAME)
(defalias 'icalendar-export-file #[514 "r\300!q\210\301ed#)\207" [find-file icalendar-export-region] 6 (#$ . 27279) "FExport diary data from file: \nFinto iCalendar file: "])
#@44 Auxiliary counter for creating unique ids.
(defvar icalendar--uid-count 0 (#$ . 27667))
#@237 Construct a unique iCalendar UID for a diary entry.
ENTRY-FULL is the full diary entry string.  CONTENTS is the
current iCalendar object, as a string.  Increase
`icalendar--uid-count'.  Returns the UID string.

(fn ENTRY-FULL CONTENTS)
(defalias 'icalendar--create-uid #[514 "\303\304\305#\203\303\304\305#\262\202f\306\307\310\311	\"\312\211%\262	T\306\313\314\315!\312\211%\262\306\316\310\311\317\320!!\"\312\211%\262\306\321\n\206E\322\312\211%\262\323\324\"\203\\\325\326\224\326\225#\202]\327\306\330\312\211%\266\202\211\207" [icalendar-uid-format icalendar--uid-count user-login-name get-text-property 0 uid replace-regexp-in-string "%c" format "%d" t "%t" format-time-string "%s%N" "%h" abs sxhash "%u" "UNKNOWN_USER" string-match "^DTSTART[^:]*:\\([0-9]*\\)" substring 1 "DTSTART" "%s"] 10 (#$ . 27762)])
#@417 Export region in diary file to iCalendar format.
All diary entries in the region from MIN to MAX in the current buffer are
converted to iCalendar format.  The result is appended to the file
ICAL-FILENAME.
This function attempts to return t if something goes wrong.  In this
case an error string which describes all the errors and problems is
written into the buffer `*icalendar-errors*'.

(fn MIN MAX ICAL-FILENAME)
(defalias 'icalendar-export-region #[771 "\303C\303\211\211C\303C\304C\304C\304\305\306!\307Q\304C\304r\310\311!q\210\312 \210)\212
b\210\313	\203.\314\202/\315\316#\203\253\317\320!\262\n\321\224\203H\317\321!\262	\202K\303\262	\n\nP\240\210\3221\220\323\"\262\324	\242!\240\210\325\326\327\330\331\332\f&\333\"\334\335%:\203\212C\202\213\"0\202\247\316\262r\310\311!q\210\336\337\340e`\"$c)\262\210\202%r\341\342\f!q\210db\210\343c\210\344c\210\345c\210\n\242c\210\346c\210\347 \210\204\322\350 \210+\207" [diary-nonmarking-symbol icalendar-export-hidden-diary-entries coding-system-for-write "" nil "^" regexp-quote "?" get-buffer-create "*icalendar-errors*" erase-buffer re-search-forward "^\\([^ 	\n#].+\\)\\(\\(\n[ 	].*\\)*\\)" "^\\([^ 	\n&#].+\\)\\(\\(\n[ 	].*\\)*\\)" t match-string 1 2 (error) icalendar--convert-to-ical icalendar--parse-summary-and-rest mapc make-byte-code 257 "\303@\306AQ\240\210\307\310\305\242\"A\307\311\305\242\"A\307\312\305\242\"A\307\313\305\242\"A\307\314\305\242\"A\307\315\305\242\"A\307\316\305\242\"A\203A\303\211\242\317	Q\240\210\203N\303\211\242\320Q\240\210\203[\303\211\242\321Q\240\210\203h\303\211\242\322Q\240\210\203t\303\211\242\323Q\240\210\203\200\303\211\242\324Q\240\210\302\325\206\214\326\301\242\303\242\"P\240\210\304\327	A!\240\266\300\211\242\302\242\303\242\304\242\330\260\240\207" vconcat vector ["\nSUMMARY:" assoc cla des loc org sta url uid "\nCLASS:" "\nDESCRIPTION:" "\nLOCATION:" "\nORGANIZER:" "\nSTATUS:" "\nURL:" "\nBEGIN:VEVENT\nUID:" icalendar--create-uid icalendar--create-ical-alarm "\nEND:VEVENT"] 13 "\n\n(fn CONTENTS-N-SUMMARY)" format-message "Error in line %d -- %s: `%s'\n" count-lines utf-8 find-file "BEGIN:VCALENDAR" "\nPRODID:-//Emacs//NONSGML icalendar.el//EN" "\nVERSION:2.0" "\nEND:VCALENDAR\n" save-buffer bury-buffer] 26 (#$ . 28609) "r\nFExport diary data into iCalendar file: "])
#@198 Convert a diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-to-ical #[514 "\204'\301\"\206F\302\"\206F\303\"\206F\304\"\206F\305\"\206F\306\"\206F\307\"\206F\310\"\206F\311\"\206F\312\313!\207" [icalendar-export-sexp-enumerate-all icalendar--convert-anniversary-to-ical icalendar--convert-cyclic-to-ical icalendar--convert-date-to-ical icalendar--convert-float-to-ical icalendar--convert-block-to-ical icalendar--convert-sexp-to-ical icalendar--convert-weekly-to-ical icalendar--convert-yearly-to-ical icalendar--convert-ordinary-to-ical error "Could not parse entry"] 5 (#$ . 30985)])
#@108 Parse SUMMARY-AND-REST from a diary to fill iCalendar properties.
Returns an alist.

(fn SUMMARY-AND-REST)
(defalias 'icalendar--parse-summary-and-rest #[257 "\306 \307\310\311\312\313!\314\"\315$\216\316!?\205\310\317C\320\321\"\206!\322\320\323\"\206)\322\320\324\"\2061\322\320\325\"\2069\322\320\326\"\206A\322\320\327\"\206I\322\320\330\"\206Q\322\320\331\"\206Y\322\332	\257\333\"\310\317\211\211\211\211\211\211G\310\211W\203x\211\310Y\203\240\211\f8U\203\240\nT\262\334_\262\n\202p\310Y\203\277\211\f8U\203\277\nT\262\334_\262	\202p\310Y\203\336\211\f8U\203\336\nT\262\334_\262\202p\310Y\203\375\211\f8U\203\375\nT\262\334_\262\202p\310Y\203\211\f8U\203\nT\262\334_\262\202p\310Y\2035\211\f8U\2035\nT\262\202p
\310Y\203T\211\f8U\203T\nT\262\334_\262\202p\f\310Y\203p\211\f8
U\203p\nT\262\334_\262\210\211T\262\202z\266\335\307\336\337\312\313!\340\"\341\342%\326\343\n\344QD\321\343\344QD\323\343\f\344QD\324\343
\344QD\325\3432\344QD\327\3433\344QD\330\3434\344QD\331\3435\344QD\257\"\210\345\346\326\347\242\317\350%\351Q\240\210\320\242\"\205\305\317\211\211\211\211\211\211
\203\370
\224\203\370\352\224\225#\262\f\203\f\224\203\352\224\225#\262\203&\224\203&\352
\224\225#\262\n\203=\n\224\203=\352\f\224
\225#\262	\203T	\224\203T\352\224\f\225#\262\203k\224\203k\352\n\224\225#\262\203\202\224\203\202\352	\224\n\225#\262\205\213\353B\205\224\354B\205\235\355B\205\246\356B\205\257\357B\205\270\360B\205\301\361B\257\266\207)\266\222)\207" [icalendar-import-format case-fold-search icalendar-import-format-summary icalendar-import-format-class icalendar-import-format-description icalendar-import-format-location match-data make-byte-code 0 "\301\300\302\"\207" vconcat vector [set-match-data evaporate] 3 functionp nil string-match "%c" -1 "%d" "%l" "%o" "%s" "%t" "%u" "%U" sort < 2 mapc 257 "\300\301@A@\300\242\302\211%\240\207" [replace-regexp-in-string t] 8 "\n\n(fn IJ)" "\\(" "\\)??" "\\`" replace-regexp-in-string "\\(.*?\\)" t "\\'" substring cla des loc org sta url uid icalendar-import-format-organizer icalendar-import-format-status icalendar-import-format-url icalendar-import-format-uid] 35 (#$ . 31774)])
#@59 Return VALARM blocks for the given SUMMARY.

(fn SUMMARY)
(defalias 'icalendar--create-ical-alarm #[257 "\205@A@\301\302\303\304\305\"\306\"\307\310%\311\312#\266\203\207" [icalendar-export-alarms make-byte-code 257 "\302\301\300#\207" vconcat vector [icalendar--do-create-ical-alarm] 5 "\n\n(fn SPEC)" mapconcat ""] 10 (#$ . 34189)])
#@381 Return a VALARM block.
Argument ADVANCE-TIME is a number giving the time when the alarm
fires (minutes before the respective event).  Argument ALARM-SPEC
is a list which must be one of (audio), (display) or
(email (ADDRESS1 ...)), see `icalendar-export-alarms'.  Argument
SUMMARY is a string which contains a short description for the
alarm.

(fn ADVANCE-TIME ALARM-SPEC SUMMARY)
(defalias 'icalendar--do-create-ical-alarm #[771 "@\300\301\302\303\"A\"\300\304\"\305>\203\300\306\"\202\307\310=\203+\300\311\"\202,\307\310=\203=\312\313A@\307#\202>\307\314\315\260\207" [format "\nACTION:%s" assoc ((audio . "AUDIO") (display . "DISPLAY") (email . "EMAIL")) "\nTRIGGER:-PT%dM" (display email) "\nDESCRIPTION:%s" "" email "\nSUMMARY:%s" mapconcat #[257 "\300\301\"\207" [format "\nATTENDEE:MAILTO:%s"] 4 "\n\n(fn I)"] "\nBEGIN:VALARM" "\nEND:VALARM"] 16 (#$ . 34543)])
#@207 Convert "ordinary" diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-ordinary-to-ical #[514 "\300\301P\"\205\312\302\303\224\303\225#\304!\304\303\"\305\306\307\224\205&\302\307\224\307\225#\310\224\2053\302\310\224\310\225#\"\306\311\224\205B\302\311\224\311\225#\312\224\205O\302\312\224\312\225#\"\313\302\314\224\314\225#!\315\316	\"\210\204h\317\320!\210\203p\202q\262\203\240\204\240\321\322\323\324#!\211\325W\203\224\326\327\330\\\"\262\202\237\326\327\325Z\"\262\262\210\331\203\251\332\202\252\333\206\261\324\334\203\273\332\202\274\333	\206\304\324\260B\266\207\207" [string-match "\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\)\\s-*\\(\\([0-9][0-9]?\\(:[0-9][0-9]\\)?\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?\\(:[0-9][0-9]\\)?\\)\\([ap]m\\)?\\)?\\)?\\s-*\\(.*?\\) ?$" substring 1 icalendar--datestring-to-isodate nil icalendar--diarytime-to-isotime 3 5 7 9 icalendar--convert-string-for-export 10 icalendar--dmsg "ordinary %s" error "Could not parse date" read replace-regexp-in-string "^T0?" "" 230000 format "T%06d" 10000 "\nDTSTART;" "VALUE=DATE-TIME:" "VALUE=DATE:" "\nDTEND;"] 17 (#$ . 35445)])
#@92 Find the first ABBREVWEEKDAY in a given YEAR.
Returns day number.

(fn ABBREVWEEKDAY YEAR)
(defalias 'icalendar-first-weekday-of-year #[514 "\300\301\211E!\302!ZT\211\303X\203\211\304\\\262\202%\211\304V\203%\211\304Z\262\207" [calendar-day-of-week 1 icalendar--get-weekday-number 0 7] 6 (#$ . 36770)])
#@203 Convert weekly diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-weekly-to-ical #[514 "\301\302P\"\205\302\303\304\305\224\305\225#!\205\302\303\304\305\224\305\225#!\306\307\224\205+\304\307\224\307\225#\310\224\2057\304\310\224\310\225#\"\306\311\224\205E\304\311\224\311\225#\312\224\205Q\304\312\224\312\225#\"\313\304\314\224\314\225#!\315\316\"\210\203z\204z\317\320\321\322#!\323\324\325\\\"\262\210\326\203\203\327\202\204\330\323\331\305\332\n\"$\206\223\322\333\203\235\327\202\236\330\323\331\305\332\"\f\203\260\334\202\261\305\\$\206\271\322\335\f\260\nB\266\204\207" [icalendar-recurring-start-year string-match "\\([a-z]+\\)\\s-+\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?\\)?\\s-*\\(.*?\\) ?$" icalendar--get-weekday-abbrev substring 1 icalendar--diarytime-to-isotime 3 4 6 7 icalendar--convert-string-for-export 8 icalendar--dmsg "weekly %s" read replace-regexp-in-string "^T0?" "" format "T%06d" 10000 "\nDTSTART;" "VALUE=DATE-TIME:" "VALUE=DATE:" "%04d%02d%02d" icalendar-first-weekday-of-year "\nDTEND;" 0 "\nRRULE:FREQ=WEEKLY;INTERVAL=1;BYDAY="] 19 (#$ . 37089)])
#@203 Convert yearly diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-yearly-to-ical #[514 "\301\302=\203\f\303\202
\304\305Q\"\205\350\302=\203\306\202\307\302=\203)\307\202*\306\310\311\224\225#!\312\311\224\225#!\313\314\224\205J\311\314\224\314\225#\315\224\205W\311\315\224\315\225#\"\313\316\224\205f\311\316\224\316\225#\317\224\205s\311\317\224\317\225#\"\320\311\321\224\321\225#!\322\323	\"\210\203\235\204\235\310\324\325\326#!\327\330\331\\\"\262\210\332\203\246\333\202\247\334\327\335	#\206\263\326\336\203\275\333\202\276\334\337\n\f\340E	\203\316\341\202\317\306\"\206\326\326\342\327\343\"\344\327\343\"\260\fB\266\207\207" [calendar-date-style string-match european "\\([0-9]+[0-9]?\\)\\s-+\\([a-z]+\\)\\s-+" "\\([a-z]+\\)\\s-+\\([0-9]+[0-9]?\\)\\s-+" "\\*?\\s-*\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?\\)?\\s-*\\([^0-9]+.*?\\) ?$" 1 2 read substring icalendar--get-month-number icalendar--diarytime-to-isotime 4 5 7 8 icalendar--convert-string-for-export 9 icalendar--dmsg "yearly %s" replace-regexp-in-string "^T0?" "" format "T%06d" 10000 "\nDTSTART;" "VALUE=DATE-TIME:" "VALUE=DATE:" "1900%02d%02d" "\nDTEND;" icalendar--date-to-isodate 1900 0 "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=" "%d" ";BYMONTHDAY="] 23 (#$ . 38445)])
#@436 Convert sexp diary entry to iCalendar format.
Enumerate the evaluated sexp entry for the next
`icalendar-export-sexp-enumeration-days' days.  NONMARKER is a
regular expression matching the start of non-marking entries.
ENTRY-MAIN is the first line of the diary entry.

Optional argument START determines the first day of the
enumeration, given as a Lisp time value -- used for test purposes.

(fn NONMARKER ENTRY-MAIN &optional START)
(defalias 'icalendar--convert-sexp-to-ical #[770 "\301\302P\"\203#\303\304\"\210\305\306\307\310\224\310\225#\307\311\224\311\225#Q\"\207\301\312P\"\203e\303\313\"\210\307\310\224\310\225#\307\311\224\311\225#\206E\314 \315\316\317\320\321\322\323\324

\f\f\f%\325\"\326\327%\330\331S\"\"\"\207\316\207" [icalendar-export-sexp-enumeration-days string-match "%%(and \\(([^)]+)\\))\\(\\s-*.*?\\) ?$" icalendar--dmsg "diary-sexp from icalendar.el %s" icalendar--convert-to-ical "%%" substring 1 2 "%%\\(([^)]+)\\)\\s-*\\(.*\\)" "diary-sexp %s" current-time delete nil mapcar make-byte-code 257 "\306\307\304\310_\"!\3118\3128\3138\314\302\303E#\211;\203#\211\202.\211:\203-\211A\202.\315\211\2046\315\202S\211;\203O\316\317\300\320\321\n%\")\202S\322\323\301\"\207" vconcat vector [calendar-date-style decode-time time-add 86400 3 4 5 diary-sexp-entry nil iso icalendar--convert-ordinary-to-ical format "%4d/%02d/%02d %s" error "Unsupported Sexp-entry: %s"] 15 "\n\n(fn OFFSET)" number-sequence 0] 19 (#$ . 39980)])
#@202 Convert block diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-block-to-ical #[514 "\300\301P\"\205\244\302\303\224\303\225#\302\304\224\304\225#\305!\305!\305\303\"\306\307\224\205/\302\307\224\307\225#\310\224\205<\302\310\224\310\225#\"\306\311\224\205K\302\311\224\311\225#\312\224\205X\302	\312\224\312\225#\"\313\302	\314\224\314\225#!\315\316\n\"\210\203\202\204\202\317\320\321\322#!\323\324\325\\\"\262\210\203\231\326\327	\330\260B\202\242\331\332RB\266\210\207" [string-match "%%(diary-block \\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\) +\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?\\)?\\s-*\\(.*?\\) ?$" substring 1 2 icalendar--datestring-to-isodate icalendar--diarytime-to-isotime 4 5 7 8 icalendar--convert-string-for-export 9 icalendar--dmsg "diary-block %s" read replace-regexp-in-string "^T0?" "" format "T%06d" 10000 "\nDTSTART;VALUE=DATE-TIME:" "\nDTEND;VALUE=DATE-TIME:" "\nRRULE:FREQ=DAILY;INTERVAL=1;UNTIL=" "\nDTSTART;VALUE=DATE:" "\nDTEND;VALUE=DATE:"] 18 (#$ . 41481)])
#@282 Convert float diary entry to iCalendar format -- partially unsupported!

  FIXME! DAY from diary-float yet unimplemented.

  NONMARKER is a regular expression matching the start of non-marking
  entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-float-to-ical #[514 "\303\304P\"\205\241\305\306!r\211q\210\307\310\311\312\313!\314\"\315$\216\316\317\"c\210eb\210\320p!\211A@\3158\3218\3228\323\324\325`d{#\203I\326\327	\"\210\330\331!\210\332\333\334!\335 	\336#*?\205e\337\333\334!P\340\247\204r<\203v\341\202w\342	<\205\205\343\344A@\345#\n\247\205\217\346!\347\346!\n
H\260\nB\266\206*\262\207" [date entry icalendar--weekday-array string-match "%%\\((diary-float .+\\) ?$" generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 match-string 1 read 3 4 replace-regexp-in-string "\\(^ +\\| +$\\)" "" icalendar--dmsg "diary-float %s" error "Don't know if or how to implement day in `diary-float'" "\nDTSTART;VALUE=DATE:" format-time-string "%Y%m%d" calendar-current-date diary-float "\nEXDATE;VALUE=DATE:" "\nRRULE:" "FREQ=YEARLY;BYMONTH=" "FREQ=MONTHLY" mapconcat #[257 "\300!\207" [number-to-string] 3 "\n\n(fn M)"] "," number-to-string ";BYDAY="] 20 (#$ . 42774)])
#@233 Convert `diary-date' diary entry to iCalendar format -- unsupported!

FIXME!

NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-date-to-ical #[514 "\300\301P\"\205\302\303\"\210\304\305!\207" [string-match "%%(diary-date \\([^)]+\\))\\s-*\\(.*?\\) ?$" icalendar--dmsg "diary-date %s" error "`diary-date' is not supported yet"] 5 (#$ . 44123)])
#@211 Convert `diary-cyclic' diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-cyclic-to-ical #[514 "\300\301P\"\205\271\302\303\224\303\225#\302\304\224\304\225#\305!\305!\305\303\"\306\307\224\205/\302\307\224\307\225#\310\224\205<\302\310\224\310\225#\"\306\311\224\205K\302\311\224\311\225#\312\224\205X\302	\312\224\312\225#\"\313\302	\314\224\314\225#!\315\316\n\"\210\203\202\204\202\317\320\321\322#!\323\324\325\\\"\262\210\326\203\213\327\202\214\330\206\223\322\331\203\235\327\202\236\330\203\250\n\202\252	\206\260\322\332\260\nB\266\210\207" [string-match "%%(diary-cyclic \\([^ ]+\\) +\\([^ /]+[ /]+[^ /]+[ /]+[^ ]+\\))\\s-*\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?\\)?\\s-*\\(.*?\\) ?$" substring 1 2 icalendar--datestring-to-isodate icalendar--diarytime-to-isotime 4 5 7 8 icalendar--convert-string-for-export 9 icalendar--dmsg "diary-cyclic %s" read replace-regexp-in-string "^T0?" "" format "T%06d" 10000 "\nDTSTART;" "VALUE=DATE-TIME:" "VALUE=DATE:" "\nDTEND;" "\nRRULE:FREQ=DAILY;INTERVAL="] 20 (#$ . 44613)])
#@216 Convert `diary-anniversary' diary entry to iCalendar format.
NONMARKER is a regular expression matching the start of non-marking
entries.  ENTRY-MAIN is the first line of the diary entry.

(fn NONMARKER ENTRY-MAIN)
(defalias 'icalendar--convert-anniversary-to-ical #[514 "\300\301P\"\205\257\302\303\224\303\225#\304!\304\303\"\305\306\224\205$\302\306\224\306\225#\307\224\2051\302\307\224\307\225#\"\305\310\224\205@\302\310\224\310\225#\311\224\205M\302\311\224\311\225#\"\312\302\313\224\313\225#!\314\315\"\210\203w\204w\316\317\320\321#!\322\323\324\\\"\262\210\325\203\200\326\202\201\327\206\210\321\330\203\222\326\202\223\327	\206\233\321\331\302\307\310#\332\302\310\313#\260\fB\266\206\207" [string-match "%%(diary-anniversary \\([^)]+\\))\\s-*\\(\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\(-\\([0-9][0-9]?:[0-9][0-9]\\)\\([ap]m\\)?\\)?\\)?\\s-*\\(.*?\\) ?$" substring 1 icalendar--datestring-to-isodate icalendar--diarytime-to-isotime 3 4 6 7 icalendar--convert-string-for-export 8 icalendar--dmsg "diary-anniversary %s" read replace-regexp-in-string "^T0?" "" format "T%06d" 10000 "\nDTSTART;" "VALUE=DATE-TIME:" "VALUE=DATE:" "\nDTEND;" "\nRRULE:FREQ=YEARLY;INTERVAL=1;BYMONTH=" ";BYMONTHDAY="] 23 (#$ . 45914)])
#@292 Import an iCalendar file and append to a diary file.
Argument ICAL-FILENAME output iCalendar file.
Argument DIARY-FILENAME input `diary-file'.
Optional argument NON-MARKING determines whether events are created as
non-marking or not.

(fn ICAL-FILENAME DIARY-FILENAME &optional NON-MARKING)
(defalias 'icalendar-import-file #[770 "r\300!q\210\301\302#)\207" [find-file icalendar-import-buffer t] 7 (#$ . 47197) "fImport iCalendar data from file: \nFinto diary file:\nP"])
#@655 Extract iCalendar events from current buffer.

This function searches the current buffer for the first iCalendar
object, reads it and adds all VEVENT elements to the diary
DIARY-FILENAME.

It will ask for each appointment whether to add it to the diary
unless DO-NOT-ASK is non-nil.  When called interactively,
DO-NOT-ASK is nil, so that you are asked for each event.

NON-MARKING determines whether diary events are created as
non-marking.

Return code t means that importing worked well, return code nil
means that an error has occurred.  Error messages will be in the
buffer `*icalendar-errors*'.

(fn &optional DIARY-FILENAME DO-NOT-ASK NON-MARKING)
(defalias 'icalendar-import-buffer #[768 "r\300\301!\210\302p!q\210eb\210\300\303!\210\304\305\306\307#\203Z\306\211\300\310!\210\311 \210\312\306\211\"\262\300\313!\210\300\314!\210\315$\262\203O\316!\211\203Nr\211q\210\317 \210)\210\300\320!\210\211?\266\202\202_\300\321!\210\306)\207" [message "Preparing iCalendar..." icalendar--get-unfolded-buffer "Preparing iCalendar...done" re-search-forward "^BEGIN:VCALENDAR\\s-*$" nil t "Reading iCalendar..." beginning-of-line icalendar--read-element "Reading iCalendar...done" "Converting iCalendar..." icalendar--convert-ical-to-diary find-buffer-visiting save-buffer "Converting iCalendar...done" "Current buffer does not contain iCalendar contents!"] 10 (#$ . 47679) nil])
#@67 Create a string representation of an iCalendar EVENT.

(fn EVENT)
(defalias 'icalendar--format-ical-event #[257 "\302!\203\n!\207C\303\304\305\306\307\310\311\312		\"\313\"\314\315%\"\210\242)\207" [icalendar-import-format case-fold-search functionp nil (("%c" CLASS icalendar-import-format-class) ("%d" DESCRIPTION icalendar-import-format-description) ("%l" LOCATION icalendar-import-format-location) ("%o" ORGANIZER icalendar-import-format-organizer) ("%s" SUMMARY icalendar-import-format-summary) ("%t" STATUS icalendar-import-format-status) ("%u" URL icalendar-import-format-url) ("%U" UID icalendar-import-format-uid)) mapc make-byte-code 257 "\211@A@AA@\302\300\"\303\203%G\304V\203%\305\306\307!J\310\211%\262\301\305\301\242\310\211%\240\207" vconcat vector [icalendar--get-event-property "" 0 replace-regexp-in-string "%s" icalendar--convert-string-for-import t] 13 "\n\n(fn I)"] 12 (#$ . 49077)])
#@541 Convert iCalendar data to an Emacs diary file.
Import VEVENTS from the iCalendar object ICAL-LIST and saves them to a
DIARY-FILENAME.  If DO-NOT-ASK is nil the user is asked for each event
whether to actually import it.  NON-MARKING determines whether diary
events are created as non-marking.
This function attempts to return t if something goes wrong.  In this
case an error string which describes all the errors and problems is
written into the buffer `*icalendar-errors*'.

(fn ICAL-LIST DIARY-FILENAME &optional DO-NOT-ASK NON-MARKING)
(defalias 'icalendar--convert-ical-to-diary #[1026 "\300!\301\302\303\304!\303\211C\203\337@\262A\262\303\262\3051\302\306\307\"\310\311\307\"\"\312\303#\313!\205DG\314V\205D\315!\306\316\"\310\311	\316\"\n\"\312\303#\312\317#\303\211\211\320\306\321\"\206i\322!\306\323\"\306\324\"\306\325\"\326\327#\210\203\225\311\307\"A@\330\230\203\225\303\262\f\211\203\300\331\332!\"\331\332\302\"\"\n\203\272\n=\204\272\333\334\"\210\262\262	\210\203\314\313	!\202\316\f\262\203\334\313!\202\336\f\262\205\366\311\316\"A@\330\230?\205\366\315	!\262\326\335	#\210\203\336	$\240\210\302\262\202\205\203;\326\337!\210\301\240\210\340\341\342\343\344\345!\346\"\347\350%\351!\"\210\202\205\f\230\204S\352\"\240\210\302\262\202\205\203u\203c\230\204u\353#\240\210\302\262\202\205\326\354!\210\313\355\"\240\210\302\262\203\257\211\242\356\357!Q\240\210\203\236\303\262\360\242$\211\262\202\274\302\262\361\362#\211\262\266\2200\202\333\333\363\"\210\302\262\361\364	$\262\333\365\"\262\210\202
	\203\370\366\n!\211\203\367r\211q\210db\210\367c\210)\210\203	r\370\371!q\210\372 \210c\210)\333\373!\210\207" [icalendar--all-events "" t nil icalendar--convert-all-timezones (error) icalendar--get-event-property DTSTART icalendar--find-time-zone icalendar--get-event-property-attributes icalendar--decode-isodatetime icalendar--datetime-to-diary-date 8 icalendar--datetime-to-colontime DTEND -1 icalendar--convert-string-for-import SUMMARY "No summary" RRULE RDATE DURATION icalendar--dmsg "%s: `%s'" "DATE" icalendar--add-decoded-times icalendar--decode-isoduration message "Inconsistent endtime and duration for %s" "start-d: %s, end-d: %s" icalendar--convert-recurring-to-diary "rdate event" mapc make-byte-code 257 "\300\211\242\301\302!P\240\207" vconcat vector [format "......"] 5 "\n\n(fn DATESTRING)" icalendar--split-value icalendar--convert-non-recurring-all-day-to-diary icalendar--convert-non-recurring-not-all-day-to-diary "all day event" "/" " " icalendar--format-ical-event icalendar--add-diary-entry format "%s\nCannot handle this event:%s" "Ignoring event \"%s\"" "%s\n%s\nCannot handle this event: %s" "%s" find-buffer-visiting "\n" get-buffer-create "*icalendar-errors*" erase-buffer "Converting iCalendar...done"] 34 (#$ . 50015)])
#@229 Convert recurring iCalendar event E to diary format.

DTSTART-DEC is the DTSTART property of E.
START-T is the event's start time in diary format.
END-T is the event's end time in diary format.

(fn E DTSTART-DEC START-T END-T)
(defalias 'icalendar--convert-recurring-to-diary #[1028 "\301\302!\210\303\304\"\305!\306\307\"A@\306\310\"A@\306\311\"A@\312\306\313\"A@\206)\314!\315	!\315\316!!\315\316\317\"!\320\2030\203K\321\322!\210\2020\323\324\230\203\325\323\211\211\312\f!_\323\211\257\"\262\325\323\211\211\312\f!S_\323\211\257\"\262\202$\326\230\203\266\325\323\211\211\327\312
!\330
#\323\211\257\"\262\325\323\211\211\327\312
!S\330
#\323\211\257\"\262\202$\331\230\203\352\325\323\211\211\211\312
!S\f_\323\257\"\262\325\323\211\211\211\312
!S\f_\323\257\"\262\202$\332\230\203\325\323\211\211\211\211\312!S
_\257\"\262\325\323\211\211\211\211\312!S
_\257\"\262\202$\321\333\n\"\210\315!\262\315!\262\210\326\230\203\306\334\n\"A@\335!\211G\336V\205L\337\340\"\204\230\301\341!\210	\203}\337\342\206i\337\343\330_#	\f\203u\202w	$\262\202\337\344\206\204\320\203\214\336\202\220\n\330_\n$\262\202\301\345!\210	\203\321\337\346\206\260\337\343\330_#		\206\272\320\203\303\347\202\304\320\206\312\320&\262\202\337\350\206\330\320\203\340\336\202\344\n\330_\n\206\354\320\203\365\347\202\366\320\206\374\320&\262\266\202\243\332\230\203\200\301\351!\210\203a\352
8\3538\354\355\267\202<\337\356#\202=\337\357#\202=\337\357#\202=\360\361\362	\363\206J\320\203S\347\202T\320\206Z\320\260\n\266\203\202\243\337\364\206j\320\203s\347\202t\320\206z\320%\262\202\243\331\230\203C\301\365!\210\306\334\n\"A@\211\205\275\366 \367\323\370\371\372!\373\"\352$\216\374\375\"\205\272\376\336\224\336\225#\376\377\224\377\225#B)\262\211\203\325\211@\201@A!\337\201A#\266\202\202\337\201B\3528\201C\267\202\337\201D\"\202\337\201E\"\202\337\201F\"\202\360\262\"\337\201G	
\203	\202&\201H=\203#\201I\202&\201J\206,\320\2035\347\2026\320\206<\320&\266\204\202\243\324\230\203\243\203\201\337\201K\211\n\203b\202d\206j\320\203s\347\202t\320\206z\320&\262\202\243\337\201L\206\217\320\203\230\347\202\231\320\206\237\320&\262\201M\201N\"\211\203\321\316@!\315!\201O\201P\337\201Q\"#\262\266\211A\262\202\254\210\303\201R\"\203\354\211\201S\201M\201R\"Q\262\207" [calendar-date-style icalendar--dmsg "recurring event" icalendar--get-event-property RRULE icalendar--split-value assoc FREQ UNTIL COUNT read INTERVAL "1" icalendar--datetime-to-diary-date icalendar--decode-isodatetime -1 "" message "Must not have UNTIL and COUNT -- ignoring COUNT element!" 0 "DAILY" icalendar--add-decoded-times "WEEKLY" * 7 "MONTHLY" "YEARLY" "Cannot handle COUNT attribute for `%s' events." BYDAY icalendar--get-weekday-numbers 1 format "(memq (calendar-day-of-week date) '%s) " "weekly all-day" "%%%%(and %s(diary-block %s %s))" "(diary-cyclic %d %s) " "%%%%(and %s(diary-cyclic %d %s))" "weekly not-all-day" "%%%%(and %s(diary-block %s %s)) %s%s%s" "-" "%%%%(and %s(diary-cyclic %d %s)) %s%s%s" "yearly" 3 4 "%%(and (diary-date " #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (iso 548 european 556 american 564)) "t %d %d" "%d %d t" nil ") (diary-block " " " ")) " "%%%%(and (diary-anniversary %s)) %s%s%s" "monthly" match-data make-byte-code "\301\300\302\"\207" vconcat vector [set-match-data evaporate] string-match "\\(-?[0-9]+\\)\\([A-Z][A-Z]\\)" substring 2 icalendar--get-weekday-number "(diary-float t %s %s)" "(diary-date %s)" #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (iso 741 european 750 american 759)) "t t %d" "%d t t" "t %d t" "%%%%(and %s (diary-block %s %s)) %s%s%s" iso "9999 1 1" "1 1 9999" "%%%%(and (diary-cyclic %s %s) (diary-block %s %s)) %s%s%s" "%%%%(and (diary-cyclic %s %s)) %s%s%s" icalendar--get-event-properties EXDATE replace-regexp-in-string "^%%(\\(and \\)?" "%%%%(and (not (diary-date %s)) " EXRULE "\n Exception rules: "] 26 (#$ . 52997)])
#@196 Convert non-recurring iCalendar EVENT to diary format.

DTSTART is the decoded DTSTART property of E.
Argument START-D gives the first day.
Argument END-D gives the last day.

(fn START-D END-D)
(defalias 'icalendar--convert-non-recurring-all-day-to-diary #[514 "\300\301!\210\302\303#\207" [icalendar--dmsg "non-recurring all-day event" format "%%%%(and (diary-block %s %s))"] 6 (#$ . 57299)])
#@233 Convert recurring icalendar EVENT to diary format.

DTSTART-DEC is the decoded DTSTART property of E.
START-T is the event's start time in diary format.
END-T is the event's end time in diary format.

(fn DTSTART-DEC START-T END-T)
(defalias 'icalendar--convert-non-recurring-not-all-day-to-diary #[771 "\300\301!\210\211\203\302\303\304\305\"$\207\302\306\304\305\"#\207" [icalendar--dmsg "not all day event" format "%s %s-%s" icalendar--datetime-to-diary-date "/" "%s %s"] 8 (#$ . 57703)])
#@387 Add STRING to the diary file DIARY-FILENAME.
STRING must be a properly formatted valid diary entry.  NON-MARKING
determines whether diary events are created as non-marking.  If
SUMMARY is not nil it must be a string that gives the summary of the
entry.  In this case the user will be asked whether he wants to insert
the entry.

(fn STRING DIARY-FILENAME NON-MARKING &optional SUMMARY)
(defalias 'icalendar--add-diary-entry #[1027 "\211\203
\300\301\302\"!\203)\211\203\300\303\304!!\262\204!\305\306!\262\307\310\211%\210\207" [y-or-n-p format-message "Add appointment for `%s' to diary? " format "Make appointment non-marking? " read-file-name "Add appointment to this diary file: " diary-make-entry t] 10 (#$ . 58209)])
#@65 Example function for formatting an iCalendar EVENT.

(fn EVENT)
(defalias 'icalendar-import-format-sample #[257 "\300\301\302\303\"\206\n\304\302\305\"\206\304\302\306\"\206\304\302\307\"\206#\304\302\310\"\206,\304\302\311\"\2065\304\302	\312\"\206>\304&\207" [format "SUMMARY='%s' DESCRIPTION='%s' LOCATION='%s' ORGANIZER='%s' STATUS='%s' URL='%s' CLASS='%s'" icalendar--get-event-property SUMMARY "" DESCRIPTION LOCATION ORGANIZER STATUS URL CLASS] 12 (#$ . 58951)])
(provide 'icalendar)

Zerion Mini Shell 1.0