| 
					
				 | 
			
			
				@@ -27,6 +27,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;; Commentary: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (require 'org-exp) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(eval-when-compile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (require 'cl)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (declare-function org-bbdb-anniv-export-ical "org-bbdb" nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -589,22 +591,24 @@ CALSCALE:GREGORIAN\n" name user timezone description)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 KEYWORD is added in front, to make a complete line like DTSTART.... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 When INC is non-nil, increase the hour by two (if time string contains 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 a time), or the day by one (if it does not contain a time)." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (let ((t1 (org-parse-time-string s 'nodefault)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((t1 (ignore-errors (org-parse-time-string s 'nodefault))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	t2 fmt have-time time) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (if (and (car t1) (nth 1 t1) (nth 2 t1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(setq t2 t1 have-time t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (setq t2 (org-parse-time-string s))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (let ((s (car t2))   (mi (nth 1 t2)) (h (nth 2 t2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (d (nth 3 t2)) (m  (nth 4 t2)) (y (nth 5 t2))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (when inc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	(if have-time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	    (if org-agenda-default-appointment-duration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		(setq mi (+ org-agenda-default-appointment-duration mi)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	      (setq h (+ 2 h))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	  (setq d (1+ d)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      (setq time (encode-time s mi h d m y))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (setq fmt (if have-time ":%Y%m%dT%H%M%S" ";VALUE=DATE:%Y%m%d")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (concat keyword (format-time-string fmt time)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (if (not t1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	"" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (if (and (car t1) (nth 1 t1) (nth 2 t1)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (setq t2 t1 have-time t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(setq t2 (org-parse-time-string s))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (let ((s (car t2))   (mi (nth 1 t2)) (h (nth 2 t2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (d (nth 3 t2)) (m  (nth 4 t2)) (y (nth 5 t2))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(when inc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (if have-time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	      (if org-agenda-default-appointment-duration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (setq mi (+ org-agenda-default-appointment-duration mi)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		(setq h (+ 2 h))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (setq d (1+ d)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(setq time (encode-time s mi h d m y))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (setq fmt (if have-time ":%Y%m%dT%H%M%S" ";VALUE=DATE:%Y%m%d")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (concat keyword (format-time-string fmt time))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (provide 'org-icalendar) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |