diff --git a/runtime/syntax/calendar.vim b/runtime/syntax/calendar.vim
new file mode 100644
index 0000000..9834267
--- /dev/null
+++ b/runtime/syntax/calendar.vim
@@ -0,0 +1,104 @@
+" Vim syntax file
+" Language:	    calendar(1) file.
+" Maintainer:	    Nikolai Weibull <source@pcppopper.org>
+" URL:		    http://www.pcppopper.org/vim/syntax/pcp/calendar/
+" Latest Revision:  2004-05-06
+" arch-tag:	    d714127d-469d-43bd-9c79-c2a46ec54535
+
+if version < 600
+  syntax clear
+elseif exists("b:current_syntax")
+  finish
+endif
+
+" Todo
+syn keyword calendarTodo	contained TODO FIXME XXX NOTE
+
+" Comments
+syn region  calendarComment	matchgroup=calendarComment start='/\*' end='\*/' contains=calendarTodo
+
+" Strings
+syn region  calendarCppString	start=+L\="+ skip=+\\\\\|\\"\|\\$+ excludenl end=+"+ end='$' contains=calendarSpecial
+syn match   calendarSpecial	display contained '\\\%(x\x\+\|\o\{1,3}\|.\|$\)'
+syn match   calendarSpecial	display contained "\\\(u\x\{4}\|U\x\{8}\)"
+
+" cpp(1) Preprocessor directives (adapted from syntax/c.vim)
+
+syn region  calendarPreCondit	start='^\s*#\s*\%(if\|ifdef\|ifndef\|elif\)\>' skip='\\$' end='$' contains=calendarComment,calendarCppString
+syn match   calendarPreCondit	display '^\s*#\s*\%(else\|endif\)\>'
+syn region  calendarCppOut	start='^\s*#\s*if\s\+0\+' end='.\@=\|$' contains=calendarCppOut2
+syn region  calendarCppOut2	contained start='0' end='^\s*#\s*\%(endif\|else\|elif\)\>' contains=calendarSpaceError,calendarCppSkip
+syn region  calendarCppSkip	contained start='^\s*#\s*\%(if\|ifdef\|ifndef\)\>' skip='\\$' end='^\s*#\s*endif\>' contains=calendarSpaceError,calendarCppSkip
+syn region  calendarIncluded	display contained start=+"+ skip=+\\\\\|\\"+ end=+"+
+syn match   calendarIncluded	display contained '<[^>]*>'
+syn match   calendarInclude	display '^\s*#\s*include\>\s*["<]' contains=calendarIncluded
+syn cluster calendarPreProcGroup    contains=calendarPreCondit,calendarIncluded,calendarInclude,calendarDefine,calendarCppOut,calendarCppOut2,calendarCppSkip,calendarString,calendarSpecial,calendarTodo
+syn region  calendarDefine	start='^\s*#\s*\%(define\|undef\)\>' skip='\\$' end='$' contains=ALLBUT,@calendarPreProcGroup
+syn region  calendarPreProc	start='^\s*#\s*\%(pragma\|line\|warning\|warn\|error\)\>' skip='\\$' end='$' keepend contains=ALLBUT,@calendarPreProcGroup
+
+" Keywords
+syn keyword calendarKeyword	CHARSET BODUN LANG
+syn case ignore
+syn keyword calendarKeyword	Easter Pashka
+syn case match
+
+" Dates
+syn case ignore
+syn match   calendarNumber	'\<\d\+\>'
+syn keyword calendarMonth	Jan[uary] Feb[ruary] Mar[ch] Apr[il] May Jun[e]
+syn keyword calendarMonth	Jul[y] Aug[ust] Sep[tember] Oct[ober]
+syn keyword calendarMonth	Nov[ember] Dec[ember]
+syn match   calendarMonth	'\<\%(Jan\|Feb\|Mar\|Apr\|May\|Jun\|Jul\|Aug\|Sep\|Oct\|Nov\|Dec\)\.'
+syn keyword calendarWeekday	Mon[day] Tue[sday] Wed[nesday] Thu[rsday]
+syn keyword calendarWeekday	Fri[day] Sat[urday] Sun[day]
+syn match   calendarWeekday	'\<\%(Mon\|Tue\|Wed\|Thu\|Fri\|Sat\|Sun\)\.' nextgroup=calendarWeekdayMod
+syn match   calendarWeekdayMod	'[+-]\d\+\>'
+syn case match
+
+" Times
+syn match   calendarTime	'\<\%([01]\=\d\|2[0-3]\):[0-5]\d\%(:[0-5]\d\)\='
+syn match   calendarTime	'\<\%(0\=[1-9]\|1[0-2]\):[0-5]\d\%(:[0-5]\d\)\=\s*[AaPp][Mm]'
+
+" Variables
+syn match calendarVariable	'\*'
+
+let b:c_minlines = 50		" #if 0 constructs can be long
+exec "syn sync ccomment calendarComment minlines=" . b:c_minlines
+
+" Define the default highlighting.
+" For version 5.7 and earlier: only when not done already
+" For version 5.8 and later: only when an item doesn't have highlighting yet
+if version >= 508 || !exists("did_calendar_syn_inits")
+  if version < 508
+    let did_calendar_syn_inits = 1
+    command -nargs=+ HiLink hi link <args>
+  else
+    command -nargs=+ HiLink hi def link <args>
+  endif
+
+  HiLink calendarTodo		Todo
+  HiLink calendarComment	Comment
+  HiLink calendarCppString	String
+  HiLink calendarSpecial	SpecialChar
+  HiLink calendarPreCondit	PreCondit
+  HiLink calendarCppOut	Comment
+  HiLink calendarCppOut2	calendarCppOut
+  HiLink calendarCppSkip	calendarCppOut
+  HiLink calendarIncluded	String
+  HiLink calendarInclude	Include
+  HiLink calendarDefine	Macro
+  HiLink calendarPreProc	PreProc
+  HiLink calendarKeyword	Keyword
+  HiLink calendarNumber	Number
+  HiLink calendarMonth	String
+  HiLink calendarWeekday	String
+  HiLink calendarWeekdayMod	Special
+  HiLink calendarTime		Number
+  HiLink calendarVariable	Identifier
+
+  delcommand HiLink
+endif
+
+let b:current_syntax = "calendar"
+
+" vim: set sts=2 sw=2:
